tomcat在运行的过程中如果修改web项目的代码后,tomcat会自动检查到代码被修改
因此tomcat自动重新加载项目并且部署,如果程序用到了session,则之前的tomcat中
当前项目的session对象会因为当前项目的reload deploy后出现session失效的情况。
原因:
因为tomcat重新加载项目时重新加载项目web.xml,也就是重新新建web的context上下文,
所以所有内容重新新建,对象实例重新创建。
下面为Spring+SpringMVC+Hibernate项目在tomcat上reload,tomcat输出的信息
六月 09, 2018 10:57:45 上午 org.apache.catalina.core.StandardContext reload 信息: Reloading Context with name [/HomeWorkNow3] has started 六月 09, 2018 10:57:45 上午 org.apache.catalina.core.ApplicationContext log 信息: Destroying Spring FrameworkServlet 'springMVC' //销毁SpringMVC 六月 09, 2018 10:57:45 上午 org.springframework.context.support.AbstractApplicationContext doClose 信息: Closing WebApplicationContext for namespace 'springMVC-servlet': startup date [Sat Jun 09 10:53:14 CST 2018]; parent: Root WebApplicationContext 六月 09, 2018 10:57:45 上午 org.apache.catalina.core.ApplicationContext log 信息: Closing Spring root WebApplicationContext //销毁web应用上下文,session被销毁 六月 09, 2018 10:57:45 上午 org.springframework.context.support.AbstractApplicationContext doClose 信息: Closing Root WebApplicationContext: startup date [Sat Jun 09 10:53:14 CST 2018]; root of context hierarchy 六月 09, 2018 10:57:47 上午 org.apache.jasper.servlet.TldScanner scanJars 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 六月 09, 2018 10:57:47 上午 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplicationInitializer types detected on classpath 六月 09, 2018 10:57:47 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext //web应用上下文重新初始化 六月 09, 2018 10:57:47 上午 org.springframework.web.context.ContextLoader initWebApplicationContext 信息: Root WebApplicationContext: initialization started 六月 09, 2018 10:57:47 上午 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing Root WebApplicationContext: startup date [Sat Jun 09 10:57:47 CST 2018]; root of context hierarchy 六月 09, 2018 10:57:47 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from file [E:\JavaWorkStations\jeefile\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\src_HomeWorkNow3\WEB-INF\classes\config\spring\spring-beans.xml] 六月 09, 2018 10:57:47 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from file [E:\JavaWorkStations\jeefile\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\src_HomeWorkNow3\WEB-INF\classes\config\spring\spring-hibernate-cfg.xml] 六月 09, 2018 10:57:47 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from file [E:\JavaWorkStations\jeefile\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\src_HomeWorkNow3\WEB-INF\classes\config\spring\spring-mvc.xml] 六月 09, 2018 10:57:47 上午 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName 信息: Loaded JDBC driver: com.mysql.jdbc.Driver 六月 09, 2018 10:57:47 上午 org.hibernate.mapping.RootClass checkCompositeIdentifier WARN: HHH000038: Composite-id class does not override equals(): com.yyc.entity.Choose 六月 09, 2018 10:57:47 上午 org.hibernate.mapping.RootClass checkCompositeIdentifier WARN: HHH000039: Composite-id class does not override hashCode(): com.yyc.entity.Choose Sat Jun 09 10:57:47 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 六月 09, 2018 10:57:47 上午 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 六月 09, 2018 10:57:47 上午 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000399: Using default transaction strategy (direct JDBC transactions) 六月 09, 2018 10:57:47 上午 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init> INFO: HHH000397: Using ASTQueryTranslatorFactory 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000228: Running hbm2ddl schema update 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000102: Fetching database metadata Sat Jun 09 10:57:47 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000396: Updating schema 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: jdbcstudy.choose 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [courseid, userid] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: jdbcstudy.course 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [begindate, enddate, coursename, grade, courseid] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: jdbcstudy.courseinfo 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [courseinfo, courseinfoid, location, time, courseid] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [courseid] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [courseid, primary] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: jdbcstudy.user 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [password, grade, userid, age, username] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary] 六月 09, 2018 10:57:47 上午 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000232: Schema update complete 六月 09, 2018 10:57:47 上午 org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet 信息: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@669b239a] of Hibernate SessionFactory for HibernateTransactionManager 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signIn],methods=[GET]}" onto public java.lang.String com.yyc.controller.IndexController.signInPage(javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signUp],methods=[POST]}" onto public java.lang.String com.yyc.controller.IndexController.signUp(org.springframework.ui.Model,com.yyc.entity.User,javax.servlet.http.HttpServletRequest) throws java.io.UnsupportedEncodingException 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signIn],methods=[POST]}" onto public java.lang.String com.yyc.controller.IndexController.signIn(org.springframework.ui.Model,com.yyc.entity.User,javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signUp],methods=[GET]}" onto public java.lang.String com.yyc.controller.IndexController.signUpPage(com.yyc.entity.User,org.springframework.ui.Model) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.index(org.springframework.ui.Model,javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.getUserInfo(com.yyc.entity.User,org.springframework.ui.Model) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[POST]}" onto public java.lang.String com.yyc.controller.UserController.chooseCourse(java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[DELETE]}" onto public java.lang.String com.yyc.controller.UserController.deleteCourse(java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses/{courseId}],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.getCourseInfo(org.springframework.ui.Model,java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users],methods=[PUT]}" onto public java.lang.String com.yyc.controller.UserController.editUser(com.yyc.entity.User) throws java.io.UnsupportedEncodingException 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 信息: Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Sat Jun 09 10:57:47 CST 2018]; root of context hierarchy 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 信息: Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Sat Jun 09 10:57:47 CST 2018]; root of context hierarchy 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler 信息: Mapped URL path [/js/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0' 六月 09, 2018 10:57:47 上午 org.springframework.web.context.ContextLoader initWebApplicationContext 信息: Root WebApplicationContext: initialization completed in 357 ms 六月 09, 2018 10:57:47 上午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring FrameworkServlet 'springMVC' 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.FrameworkServlet initServletBean 信息: FrameworkServlet 'springMVC': initialization started 六月 09, 2018 10:57:47 上午 org.springframework.context.support.AbstractApplicationContext prepareRefresh 信息: Refreshing WebApplicationContext for namespace 'springMVC-servlet': startup date [Sat Jun 09 10:57:47 CST 2018]; parent: Root WebApplicationContext 六月 09, 2018 10:57:47 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from URL [file:/E:/JavaWorkStations/jeefile/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/src_HomeWorkNow3/WEB-INF/classes/config/spring/spring-mvc.xml] 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signIn],methods=[GET]}" onto public java.lang.String com.yyc.controller.IndexController.signInPage(javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signUp],methods=[POST]}" onto public java.lang.String com.yyc.controller.IndexController.signUp(org.springframework.ui.Model,com.yyc.entity.User,javax.servlet.http.HttpServletRequest) throws java.io.UnsupportedEncodingException 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signIn],methods=[POST]}" onto public java.lang.String com.yyc.controller.IndexController.signIn(org.springframework.ui.Model,com.yyc.entity.User,javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/signUp],methods=[GET]}" onto public java.lang.String com.yyc.controller.IndexController.signUpPage(com.yyc.entity.User,org.springframework.ui.Model) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.index(org.springframework.ui.Model,javax.servlet.http.HttpServletRequest) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.getUserInfo(com.yyc.entity.User,org.springframework.ui.Model) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[POST]}" onto public java.lang.String com.yyc.controller.UserController.chooseCourse(java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses],methods=[DELETE]}" onto public java.lang.String com.yyc.controller.UserController.deleteCourse(java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users/{userId}/courses/{courseId}],methods=[GET]}" onto public java.lang.String com.yyc.controller.UserController.getCourseInfo(org.springframework.ui.Model,java.lang.Integer,java.lang.Integer) 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register 信息: Mapped "{[/users],methods=[PUT]}" onto public java.lang.String com.yyc.controller.UserController.editUser(com.yyc.entity.User) throws java.io.UnsupportedEncodingException 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'springMVC-servlet': startup date [Sat Jun 09 10:57:47 CST 2018]; parent: Root WebApplicationContext 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache 信息: Looking for @ControllerAdvice: WebApplicationContext for namespace 'springMVC-servlet': startup date [Sat Jun 09 10:57:47 CST 2018]; parent: Root WebApplicationContext 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler 信息: Mapped URL path [/js/**] onto handler 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0' 六月 09, 2018 10:57:47 上午 org.springframework.web.servlet.FrameworkServlet initServletBean 信息: FrameworkServlet 'springMVC': initialization completed in 181 ms 六月 09, 2018 10:57:47 上午 org.apache.catalina.core.StandardContext reload 信息: Reloading Context with name [/HomeWorkNow3] is completed