The java classes you're editing are compiled into class files, which are loaded by the Tomcat class loader when Tomcat starts up your app. But the class loader doesn't try to load new versions of the class after Tomcat starts up your application.
Eclipse does have a neat feature called "hot code replace" but it only works while you're debugging your application. In this case, Eclipse compiles your code as you're editing (whether or not your debugging), and then Eclipse attempts to load in the newly edited classes that it compiled. But it only works while debugging your app.
Another option is try a JVM plugin like JRebel that hot-swaps your classes regardless of whether or not your debugging.