码迷,mamicode.com
首页 > 其他好文 > 详细

servlet生命周期与工作原理

时间:2016-03-11 20:46:34      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

一、Servlet生命周期分为三个阶段:

1、初始化阶段  调用init()方法

2、响应客户请求阶段  调用service()方法

3、终止阶段  调用destroy()方法

Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。

在Servlet的整个生命周期内,init()方法只被调用一次

 

二、工作原理:

Servlet接收和响应客户请求的过程,首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。

在Servlet接口和GenericServlet中是没有doGet,doPost等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。

 

三、小知识:

1、继承关系: GenericServlet->HttpServlet->Servlet

HttpServlet是特定于HTTP协议的类

 

2、get方式与post方式的区别:

get方式以显式提交表单,可以在URL(地址栏)看见我们传的参数
post方式是隐式传值,不可见。post方式相对安全一些

 

3、getAttribute()与getParamter()的区别:

getAttribute是返回对象,getParameter返回字符串 

总的来说:request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。

 

4、cookie与session的区别:

cookie:采取在客户端保持状态的方案,不是很安全

session:采取在服务器端保持状态的方案,比cookie安全

一般将登陆信息等重要信息存放为SESSION, 其他信息如果需要保留可以放在COOKIE中

 

5、设置session过期时间的两种方法:

(1)在主页面中写入下面两句: 

HttpSession session=request.getSession(true); 
session.setMaxInactiveInterval(3600);//3600秒,注意服务器端的3600秒,而不是客户端的

(2)在项目的web.xml中设置:

<session-config>
<session-timeout>60</session-timeout>        这里的60就是60分钟。
</session-config>

 

6、sesson的两种实现方式:

通过cookie或者是URL重写

 

7、

 

1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用。

 

2.request.setAttribute()和request.getAttribute()配对使用,作用域是请求和被请求页面之间。request.setAttribute()是只在此action的下一个forward需要使用的时候使用;request.getAttribute()表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。setAttribute()的参数是String和Object。

 

3.request.getParameter()表示接收参数,参数为页面提交的参数。包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter()),而且接收参数返回的不是Object,而是String类型。

 

 

 

 

 

 

servlet生命周期与工作原理

标签:

原文地址:http://www.cnblogs.com/stellar/p/5266852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!