对象名称 | 所属类型 | 有效范围 | 说明 |
application | javax.servlet.ServletContext | application | 代表应用程序上下文(只要Web服务器运行着,该对象就存在),允许JSP页面与包括在同一应用程序中的任何Web组件共享信息 |
config | javax.servlet.ServletConfig | page | 允许将初始化数据传递给一个JSP页面 |
exception | java.lang.Throwable | page | 该对象含有只能由指定的JSP“错误处理页面”访问的异常数据 |
out | javax.servlet.jsp.HttpJspWriter | page | 提供对输出流的访问 |
page | javax.servlet.jsp.HttpJspPage | page | 代表JSP页面对应的Servlet类实例 |
pageContext | javax.servlet.jsp.PageContext | page | 是JSP页面本身的上下文,提供了唯一一组方法来管理具有不同作用域的属性 |
request | javax.servlet.http.HttpServletRequest | request | 提供对请求数据的访问,同时还提供用于加入特定请求数据的上下文 |
response | javax.servlet.http.HttpServletResponse | page | 该对象用来向客户端提供输入数据 |
session | Javax.servlet.http.HttpSession | session | 用来保存在服务器端与一个客户端之间需要保存的数据,当客户端关闭网站的所有网页时,session变量会自动消失 |
对象的有效作用范围是层层包含的,最大的是application,其次依次是session、request和page。
四个对象的作用范围详解
作用域 | 说明 |
page | 对象只能在创建它的JSP页面被访问 |
request | 对象可以在与创建它的JSP页面监听的HTTP请求相同的任意一个JSP中被访问 |
session | 对象可以在与创建它的JSP页面共享相同的HTTP会话的任意一个JSP中被访问 |
application | 对象可以在与创建它的JSP页面属于相同的Web应用程序的任意一个JSP中被访问 |
方法 | 说明 |
setAttribute(String name,Object obj) | 用于设置request中的属性及其属性值 |
getAttribute(String name) | 用于返回name指定的属性值,若不存在指定的属性,就返回null |
removeAttribute(String name) | 用于删除请求中的一个属性 |
getParamenter(String name) | 用于获得客户端传送给服务器端的参数值 |
getParamenterNames() | 用于获得客户端传送给服务器端的所有参数名字(Enumeration类的实例) |
getParameter Values(String name) | 用于获得指定参数的所有值 |
getCookies() | 用于返回客户端的所有Cookie对象,结果是一个Cookie数组 |
getCharacterEncoding() | 返回请求中的数字编码方式 |
getRequestURI() | 用于获取发出请求字符串的客户端地址 |
getRemoteAddr() | 用于获取客户端的IP地址 |
getRemoteHost() | 用于获取客户端名字 |
getSession([Boolean create]) | 用于返回和请求相关的session。create参数是可选的。当为true时,若客户端没有创建session,就创建新的session |
getServerName() | 用于获取服务器的名字 |
getServletPath() | 用于获取客户端所请求的脚本文件的文件路径 |
getServerPort() | 用于获取服务器的端口号 |
访问请求参数采用request对象的getParameter()方法,格式如下
String 字符串变量 = request.getParameter("客户端提供参数的name属性名");
参数name与客户端提供参数的name属性名相对应,该方法的返回值为String类型,如果参数name属性不存在,则返回null值。
request对象的getParameter()方法可以接受来自不同的JSP页面或JSP动作传递给request对象的参数信息
1)使用JSP的forward或include动作,利用传递参数自动做传递参数。
2)在JSP页面或HTML页面中,利用表单传递参数。
3)追加在网址后的参数传递或追加在超链接后面的参数。
方式1)和3)属于get提交方式,方式2)通过form的method属性设置提交方式为get或post
注:在提交页面中若汉字名字,在接受页面会出现乱码,其解决方法如下:
request.setCharacterEncoding("UTF-8");
在页面使用request对象的setAttribute("name",obj)方法,可以把数据obj设定在request范围内,请求转发后的页面使用getAttribute("name")就可以读取数据obj的值
方法 | 说明 |
SendRedirect(String url) | 使用指定的重定向位置url向客户端发送重定向响应 |
setDateHeader(String name,long date) | 使用给定的名称和日期值设置一个响应报头,如果已经设置指定的名称,则新值会覆盖旧值 |
setHeader(String name,String value) | 使用给定的名称和值设置一个响应报头,如果已经设置指定的名称,则新值就会覆盖旧值 |
setHeader(String name,int value) | 使用给定的名称和整数值设置一个响应报头,如果已经设置指定的名称,则新值就会覆盖旧值 |
setContentType(String type) | 为响应设置内容类型,其参数值可以为text/html、text/plain、application/x_msexcel或application/msword |
setContentLength(int len) | 为响应设置内容长度 |
setLocale(java.util.Locale loc) | 为响应设置地区信息 |
1)只能使用
2)
(1)response.setHeader("refresh",5);//每隔五秒,页面刷新一次
(2)response.setHeader("refresh","10;url="http://www.sohu.com");
//延迟10秒后,自动重定向到网页http://www.sohu.com
与下面代码等价
(3)
(4)
方法 | 说明 |
Object getAttribute(String attriname) | 用于获取与指定名字相联系的属性,如果属性不存在,就返回null |
void setAttribute(String name,Object value) | 用于设定指定名字的属性值,并且把它存储在session对象中 |
void removeAttribute(String attrinaname) | 用于删除指定的属性(包括属性名、属性值) |
Enumeration getAttributeNames() | 用于返回session对象中存储的每一个属性对象,结果集时一个Enumeration类的实例 |
long getCreationTime() | 用于返回session对象的被创建时间,单位为毫秒 |
long getLastAccessedTime() | 用于返回session最后发送请求的时间,单位为毫秒 |
String getId() | 用于返回session对象在服务器端的编号 |
long setMaxInactiveInterval() | 用于返回session对象的生存时间,单位为毫秒 |
boolean isNew() | 用于判断目前session是否为新的session,若是则返回true,否则返回false |
void invalidate() | 用于销毁session对象,使得与其绑定的对象都无效 |
session对象的主要作用是存储、获取用户会话信息。
会话(session)的含义:用户在阅览某个网站时,从进去网站到浏览器关闭所经过的这段时间称为一次会话。当客户关闭阅览器后,一个会话结束。
session对象可以在一个网站(一个应用程序)任意的JSP页面中使用。但若在JSP页面中,page指令的session属性被设置成false时,即<%@page session="false">,在这个页面就不能使用session对象。
对于session对象中的setAttribute()和getAttribute()方法,与request对象中的setAttribute()和getAttribute()方法具有一样的功能和使用方法,只是使用范围不同。具体区别
方法 | 说明 |
Object getAttribute(String attriname) | 获取指定属性的值 |
void setAttribute(String attriname,Object attrivalue) | 设置一个新的属性并保存值 |
void removeAttribute(String attriname) | 从application对象中删除指定的属性 |
Enumeration getAttributeNames() | 获取application对象中所有属性的形成 |
1)session对象与用户会话相关,不同用户的session是完去不同的对象,在session中设置的属性只是在当前客户的会话范围内生效,客户超过保存时间不发送请求时,session对象将被回收。
2)所有访问同一网站的用户都有一个相同的application对象,只要关闭服务器后,application对象中设置的属性才被回收。
3)当客户端提交请求时,才创建request对象,当返回响应处理后,request对象自动销毁。
out对象的主要功能是向客户输出响应信息。其主要方法为print(),可以输出任意类型的数据,HTML标签可以作为out输出的内容。