个人网站 审批,网站优化怎么样,企业酒店的网站建设,网站界面ui设计国家开放大学答案上一节我们学习了快速入门#xff0c;
但是里面的问题是ServletDemo1里面既没有创建对象#xff0c;又没有写方法#xff0c;竟然就被执行了#xff0c;为什么呢#xff1f;
我们来分析一下Sevlet的执行原理 1.当服务器接收到客户端浏览器的请求后#xff0c;会解析请求…上一节我们学习了快速入门
但是里面的问题是ServletDemo1里面既没有创建对象又没有写方法竟然就被执行了为什么呢
我们来分析一下Sevlet的执行原理 1.当服务器接收到客户端浏览器的请求后会解析请求URL路径获取访问的Servlet的资源路径
2.查找web.xml文件是否有对应的url-pattern标签体内容
3.如果有则再找到对应的servlet-class全类名
4.tomcat服务器第一步将字节码文件加载进内存并且创建其对象
5.调用其方法
至于里面的servlet-name只是为了对应名字可以互相匹配 Servlet中的生命周期
1.被创建执行init方法只执行一次
疑问默认情况下第一次被访问时Servlet被创建 可以配置执行Servlet的创建时机 在servlet标签下配置 修改为-5这时候再次启动服务器服务器并没有init.....出现这说明
Servlet的init方法只执行一次说明一个Servlet在内存中只存在一个对象 说明Servlet是单例的
多个用户同时访问时可能存在线程安全问题
解决尽量不要在Servlet中定义成员变量。即使定义了成员变量也不要对其修改值(赋值) 2.提供服务执行service方法执行多次
每次访问Servlet时Service方法都会被调用一次
3.被销毁执行destroy方法执行一次
Servlet被销毁时执行。服务器关闭时Servlet被销毁
只有服务器正常关闭时才会执行destroy方法
那么问题来了Servlet先销毁还是destroy先执行呢
结论是先执行destroy方法一般用于释放资源