Don't run dæmons from an interactive shell connected to a terminal.
Configure dæmons to be run properly, managed by whatever dæmon supervisor(s) your system comes with, be that anything from
launchd. Use the management interface to bring the dæmons up and down.
When your SSH connection is lost, the SSH server process closes the master side of the pseudo-terminal that it opens. This causes a
SIGHUP to be sent to the session leader process, the top level shell, and to all of the processes in the foreground process group. When
bash receives a
SIGHUP, it sends
SIGHUP to all of the child processes that it has not been told to
disown. That of course includes the
tomcat process that you ran from that interactive shell.
Dæmons should have no controlling TTY, and should not belong to any process group or session that is known to any TTY, lest unprivileged users be able to send them random and possibly unexpected signals. Running them from your system's dæmon supervisor(s) will ensure that this, and indeed all other aspects of the dæmon's process state, are all set appropriately for a dæmon process. Many dæmon supervisors will handle logging automatically for the dæmon, too.
tomcat dæmon properly.