1.讲一下Servlet的执行过程,doGet和doPost的区别。
执行过程:
比如注解配置版本,先继承httpServlet,一旦发送get请求
调用,再执行post方法。
doGet和doPost的区别:
功能上:doGet是处理get请求,doPost是处理post请求。
表现上:doGet用于地址栏的提交,doPost用于表单的提交,且不
在地址栏上显示,所以更安全。
数据上:页面提交数据的时候,get的数据大小是4K,post没有限制。
说明:
Servlet的执行过程也是Servlet的生命周期,当服务器启动的时候生命周期开始。
先初始化(init),再加载web.xml文件,再按不同要求调用doGet或doPost方
法,最后用destroy销毁。
2.当service有一个实例变量,doGet和doPost去调用这个变量,会出现什么问题?
出现线程不安全问题,无论是doGet和doPost去调用,服务器处理都是
一样的过程,那么可以把处理过程单独写一个handle里,让这两个方法调用
handle,根据不同请求调用不同的方法。
3.如何处理servlet的线程不安全的问题?(网络)
servlet是一个单例(在堆中),在请求的情况下去共享一个servlet,就会
出现线程不安全的情况,所以最好不要定义全局