ServletRequest由Servlet容器来管理,当客户请求到来时,容器创建一个ServletRequest对象,封装请求数据,同时创建一个ServletResponse对象,封装响应数据。这两个对象将被容器作为service()方法的参数传递给Servlet,Servlet利用ServletRequest对象获取客户端发来的请求数据,利用ServletResponse对象发送响应数据。
简单来说,request仅对本次请求有效,一旦JSP,Servlet将数据放入request中,该数据将可以被本次请求的其他JSP,Servlet访问。
常用方法:
1、getAttribute
public Object getAttribute(String name)
返回以name为名字的属性的值。如果该属性不存在,这个方法将返回null。
2、getAttributeNames
public Enumeration getAttributeNames()
返回请求中所有可用的属性的名字。如果在请求中没有属性,这个方法将返回一个空的枚举集合。
3、removeAttribute
public void removeAttribute(String name)
移除请求中名字为name的属性。
4.setAttribute
public void setAttribute(String name,Object o)
在请求中保存名字为name的属性。如果第二个参数o为null,那么相当于调用removeAttribute(name)。
二、servletConfigServletConfig 代表当前Servlet在web.xml中的配置信息。
在Servlet的配置文件中,可以使用一个或多个
常用方法:
| String getServletName() | 获取当前Servlet在web.xml中配置的名字 |
| String getInitParameter(String name) | 获取当前Servlet指定名称的初始化参数的值 |
| Enumeration getInitParameterNames() | 获取当前Servlet所有初始化参数的名字组成的枚举 |
| ServletContext getServletContext() | 获取代表当前web应用的ServletContext对象 |
servletContext,是Servlet中最大的一个接口,呈现了web应用的Servlet视图。
ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承GenericServlet的关系,GenericServlet类和HttpServlet类同时具有该方法。
方法分类:
四、HttpSession
HttpSession是Java平台对session机制的实现规范,因为它仅仅是个接口,具体到每个web应用服务器的提供商,除了对规范支持之外,仍然会有一些规范里没有规定的细微差异。
对象:session(会话)
•客户端打开与服务器的连接发出请求和服务器响应请求的一段时间
Servlet API定义了一个HttpSession接口,允许Servlet容器针 对每一个用户建立一个HTTP会话(即HttpSession对象)。
HttpSession对象提供了和ServletContext对象相似的一组会 话属性方法,在服务器端存放用户会话状态。
对象创建:HttpSession对象是由Web服务器创建的,在Servlet中可 以通过HttpServletRequest对象的getSession()方法获取, 此方法的两种声明如下:
• public HttpSession getSession[):返回与当前请求相关联的会话,如 果当前请求还没有一个相关联的会话,就创建一个HttpSession对象 并返回。
• public HttpSession getSession[boolean create):返回与当前请求相关 联的会话对象。
•如果当前请求还没有一个相关联的会话,且参数为true,则创建 一个HttpSession对象并返回 。
•如果参数为false,且请求没有相关联的会话对象,将返回null。
对象应用:HttpSession对象的方法
publicvoid setAttribute(String name, java.lang.Object object) •将一个对象绑定到HttpSession对象,使之成为一个会话属性。参数name 指定属性名。
publicvoid getAttribute(String name) 返回由name指定的会话属性,如果name指定的属性不存在将返回null。
publicEnumeration getAttributeNameso 返回一个Enumeration对象,该对象包含了所有存放在会话中的属性名。
publicvoid removeAttribute(String name) 根据参数指定的属性名,从会话中删除匹配的属性。
public void invalidate() 使某个会话终止,并且删除绑定在其上的所有数据信息。
public void setMaxlnactiveInterval(int interval) 设置某个会话的超时时间,单位秒。
1.会话过期
2.客户端关闭浏览器
3.调用方法invalidate()



