Servlet实例化当用户通过浏览器输入一个路径,这个路径对应的servlet被调用的时候,该Servlet就会被实例化。初始化用户定义Servlet 继承了HttpServlet,同时也继承了init(ServletConfig) 方法。init 方法是一个实例方法,所以会在构造方法执行后执行。提供服务接下来就是执行service()方法,然后通过浏览器传递过来的信息进行判断,是调用doGet()还是doPost()方法。销毁在如下几种情况下,会调用 destroy()1. 该 Servlet 所在的 web 应用重新启动,并且在 server.xml 中配置了<Context path="/" docBase="…" debug="0" reloadable="false" />
如果把 reloadable="false" 改为reloadable="true" 就表示有任何类发生的更新,web应用会自动重启当web应用自动重启的时候,destroy()方法就会被调用。2. 关闭tomcat的时候 destroy()方法会被调用,但是这个一般都发生的很快,不易被发现。被回收当该Servlet被销毁后,就满足垃圾回收的条件了。 当下一次垃圾回收GC来临的时候,就有可能被回收。HttpSession创建在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存中创建一个session并返回。javaee7 Api销毁当一段时间内session没有被使用(默认为30分钟),则服务器会销毁该session。如果服务器非正常关闭(强行关闭),没有到期的session也会跟着销毁。如果调用session提供的invalidate(),可以立即销毁session。javaee7 invalidate()注意:服务器正常关闭,再启动,Session对象会进行钝化和活化操作。同时如果服务器钝化的时间在session 默认销毁时间之内,则活化后session还是存在的。否则Session不存在。 如果JavaBean 数据在session钝化时,没有实现Serializable 则当Session活化时,会消失。Cookie通过setMaxAge(int expiry)来设置cookie的生存时间,单位秒,负数-表示浏览器退出时销毁;0-表示删除cookie。文档如下:expiry – an integer specifying the maximum age of the cookie in seconds; if negative, means the cookie is not stored; if zero, deletes the cookie.javaee7JavaScript 存储对象localStorage 用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。参考https://www.cnblogs.com/skjsg/p/4707032.htmlhttps://how2j.cn/stage/13.htmlhttps://docs.oracle.com/javaee/7/api/toc.htmhttps://www.runoob.com/jsref/prop-win-sessionstorage.html
本文出自快速备案,转载时请注明出处及相应链接。