读书人

servlet生命周期-二

发布时间: 2012-11-25 11:44:31 作者: rapoo

servlet生命周期--2
2.2 初始化次数
Servlet的初始化只发生在某个Servlet第一次被客户端调用的情况下.因此一个生命周期只调用一次初始化方法.
2.3 初始化的配置
Servlet的配置是在服务器的web.xml中,
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.tarena.bank.xxx</servlet-class>
<inti-param>
<param-name>xx</param-name>
<!-- 初始化参数的名字 -->
<param-value>xx</param-value>
<!-- 初始化参数对应的值 -->
</inti-param>
<load-on-startup>1</load-on-startup>
<!-- 表示服务器自动加载,其中的1代表加载的顺序,数值越小表示越被早加载,若出现相同的数值,具体的调用顺序由服务器jvm决定 -->
</servlet>
2.2 初始化失败
若我们在调用初始化方法失败的话,那么该Servlet会被直接销毁,调用destroy().
3. 调用service方法
在这个阶段,客户端可以多次调用该方法,在每一个客户端request过来时,服务器就新起一个线程来执行一个Servlet.每个Servlet会调用service,并根据相应的请求类型来调用相应的doXXX方法.
3.1 具体实现
service方法的调用有两种方式.
3.1.1 直接覆盖service()方法,在service()方法中deal request and response.
3.1.2 覆盖相应的doXXX方法,常用的有doGet(),doPost().这个两个方法分别对应get and post request.
3.2 多线程问题
在这个阶段,主要需要我们去考虑的是多线程并发的问题,对于一些共享类型的数据我们就需要保证其在多线程并发安全访问的问题,这里就是加synchronized标记.
代码中,对于一些有可能存在多并发访问安全的地方加锁即可,而不比对所由方法加锁,具体需要自己去斟酌.

读书人网 >Web前端

热点推荐