J2EE学习笔记之JSP内置对象
JSP2.0中定义了9个JSP内置对象,这些对象不用显示声明,就可以直接引用;不需要通过创建其实例,就可以直接使用。
具体如下:
request、response、session、application、out、page、pageContext、config、exception
在具体介绍以上9个对象之前先介绍一下JSP属性保存范围的问题(当然这里的属性就是JSP内置对象的属性)。
(一)属性保存范围
JSP中提供了4种属性保存范围,分别是page、request、session、application。
含义如下:
page范围的属性只在当前页面有效,当离开当前页面后,它就变得不可见了。
request范围的属性只在一次请求中有效,如果是在服务器端从一个页面跳转到了另一个页面,那么由于这仍然是一次request,所以属性在跳转到的页面中仍然有效。
session范围内的属性只在一次session中有效即在一次会话中有效。那么会话具体是什么意思呢?我的理解是只要你没有关闭你访问某一网站时打开的选项卡,那么这就是在一次会话中,那么属性就会一直有效。
application范围内的属性作用范围比较大,它是指只要服务器没有关闭,那么属性就是有效的。
在JSP中可以使用setAttribute()和getAttribute()方法来设置和取得属性。
具体介绍如下:
page范围
所谓page范围是指设置的属性只在当前页面有效。通过使用pageContext的setAttribute()方法可以来设置page范围的属性,当然同理可以使用pageCon的getAttribute()方法来取得此范围的属性。
request范围
所谓request范围就是指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就是失效了。
注:这里的跳转指的是客户端跳转即通过点击超链接跳转到了另一个界面,或者通过在浏览器地址栏输入网址来浏览其他网页。
所以当在服务器端进行跳转(例如使用<jsp:forward>)时,该属性仍然有效。
使用request的setAttribute()方法来设置此范围的属性,使用request的getAttribute()方法来取得属性。
session范围
所谓session范围就是指客户浏览器与服务器一次会话范围内,如果和服务器断开连接,那么这个属性也就无效了。
使用session对象的setAttribute()方法来设置此范围的属性,使用session对象的getAttribute()方法来取得此范围的属性。
application范围
所谓application范围就是指在整个服务器范围内属性都有效,直到服务器停止后才会无效。
通过application对象的setAttribute()方法来设置此范围的属性,通过application的getAttribute()来取得此范围的属性。
-----------------------------------------------------------------------------------
注:只需调用相应对象的removeAttribute()方法就可以移除指定属性。
-----------------------------------------------------------------------------------
下面就让我们隆重的一下刚才提到的9个JSP内置对象。
(二)JSP内置对象
1.request对象
功能:用来设置和取得request范围变量(属性),获得客户端请求参数、请求来源、表头、cookies等。
request对象的方法有很多。具体可以百度一下或者Google
下面我只介绍一下getParameter(String name)返回值类型为String 。实例说明:
<%@page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head><title>客户端参数发送</title></head>
<body>
<form action="AcceptRequest.jsp" method="post">
姓名:<input type="text" name="username"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
AcceptRequest.jsp如下:
<%@page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head><title>获取客户端传送过来的参数</title></head>
<body>
<%
String username=request.getParameter("username");
out.println("用户名为:"+username);
%>
</body>
</html>
2.response对象
功能:用来给客户端传送信息。
方法也有很多,如sendError(int sc)、setStatus(int sc)、sendRedirect(URL)、addCookie(Cookie cookie)、setHeader(String name,String value)具体可以百度一下或Google
使用response对象的sendRedirect(URL)方法实现的页面跳转将改变浏览器地址栏的信息,所以这种跳转叫做客户端跳转。
3.out对象
功能:用来向网页输出信息。
方法很多,如print(String str)、println(String str)、getBufferSize()等。
4.session对象
功能:用来保存用户会话的各种信息,直到生命周期结束。
方法如下:
getId() 获得session的ID
getCreateTime() 获得session生成的时间。
getLastAccessedTime() 获得用户最后通过session发送请求的时间。
getMaxInactiveInterval() 获得session生命周期。
invalidate() 清空session内容。
isNew() 判断session是否为新创建的。
setMaxInactiveInterval() 设置session生命周期,如果超过这个时间就失效。
5.application对象
功能:用来取得和设置Servlet的相关信息。application对象的生命周期是从服务器启动产生直到其关闭为止。
方法如下:
getMajorVersion() 获得主要的ServletAPI版本
getMinorVersionn() 获得次要的ServletAPI版本
getServletInfo() 获得服务器版本
。。。。。。。。
6.pageContext对象
功能:可以设置page范围的属性,可以获得其他内置对象,因此也可以设置其他范围的属性,还有它也可以获得其他范围的属性。
获得其他内置对象:
getException()、getOut()、getPage()、getRequest()、getResponse()、getServletConfig()、getServletContext() 获得当前的application对象、getSession()
获得属性:
getAttribute(String name,int scope) 获得指定范围的name属性
getAttributeNamesInScope(int scope) 获得指定范围的所有属性
getAttributeScope(String name) 获得属性名为name的属性范围
removeAttribute(String name) 移除属性名称为name的属性
removeAttribute(String name,int scope) 移除指定范围的属性名称为name的属性
setAttribute(String name,Object value,int scope) 设置指定范围的name属性
findAttribute(String name) 寻找所有范围的属性名称为name的属性
7.page对象
功能: page对象代表JSP转译后的Servlet,因此通过page对象可以调用Servlet类中定义的方法。
8.config对象
功能:用来获得Servlet的配置信息。
方法如下:
getInitParameter(name) 获得Servlet初始化参数
getInitParameterNamespace() 获得Servlet所有初始化参数名称
getServletContext() 获得当前Application context
getServletName() 获得Serlvet名称
9.exception对象
功能:用来处理错误异常。注:如果要使用exception对象,必须指定page的isErrorPage属性值为"true"。
JSP2.0中定义了9个JSP内置对象,这些对象不用显示声明,就可以直接引用;不需要通过创建其实例,就可以直接使用。
具体如下:
request、response、session、application、out、page、pageContext、config、exception
在具体介绍以上9个对象之前先介绍一下JSP属性保存范围的问题(当然这里的属性就是JSP内置对象的属性)。
(一)属性保存范围
JSP中提供了4种属性保存范围,分别是page、request、session、application。
含义如下:
page范围的属性只在当前页面有效,当离开当前页面后,它就变得不可见了。
request范围的属性只在一次请求中有效,如果是在服务器端从一个页面跳转到了另一个页面,那么由于这仍然是一次request,所以属性在跳转到的页面中仍然有效。
session范围内的属性只在一次session中有效即在一次会话中有效。那么会话具体是什么意思呢?我的理解是只要你没有关闭你访问某一网站时打开的选项卡,那么这就是在一次会话中,那么属性就会一直有效。
application范围内的属性作用范围比较大,它是指只要服务器没有关闭,那么属性就是有效的。
在JSP中可以使用setAttribute()和getAttribute()方法来设置和取得属性。
具体介绍如下:
page范围
所谓page范围是指设置的属性只在当前页面有效。通过使用pageContext的setAttribute()方法可以来设置page范围的属性,当然同理可以使用pageCon的getAttribute()方法来取得此范围的属性。
request范围
所谓request范围就是指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就是失效了。
注:这里的跳转指的是客户端跳转即通过点击超链接跳转到了另一个界面,或者通过在浏览器地址栏输入网址来浏览其他网页。
所以当在服务器端进行跳转(例如使用<jsp:forward>)时,该属性仍然有效。
使用request的setAttribute()方法来设置此范围的属性,使用request的getAttribute()方法来取得属性。
session范围
所谓session范围就是指客户浏览器与服务器一次会话范围内,如果和服务器断开连接,那么这个属性也就无效了。
使用session对象的setAttribute()方法来设置此范围的属性,使用session对象的getAttribute()方法来取得此范围的属性。
application范围
所谓application范围就是指在整个服务器范围内属性都有效,直到服务器停止后才会无效。
通过application对象的setAttribute()方法来设置此范围的属性,通过application的getAttribute()来取得此范围的属性。
-----------------------------------------------------------------------------------
注:只需调用相应对象的removeAttribute()方法就可以移除指定属性。
-----------------------------------------------------------------------------------
下面就让我们隆重的一下刚才提到的9个JSP内置对象。
(二)JSP内置对象
1.request对象
功能:用来设置和取得request范围变量(属性),获得客户端请求参数、请求来源、表头、cookies等。
request对象的方法有很多。具体可以百度一下或者Google
下面我只介绍一下getParameter(String name)返回值类型为String 。实例说明:
<%@page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head><title>客户端参数发送</title></head>
<body>
<form action="AcceptRequest.jsp" method="post">
姓名:<input type="text" name="username"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
AcceptRequest.jsp如下:
<%@page language="java" contentType="text/html;charset=gb2312"%>
<html>
<head><title>获取客户端传送过来的参数</title></head>
<body>
<%
String username=request.getParameter("username");
out.println("用户名为:"+username);
%>
</body>
</html>
2.response对象
功能:用来给客户端传送信息。
方法也有很多,如sendError(int sc)、setStatus(int sc)、sendRedirect(URL)、addCookie(Cookie cookie)、setHeader(String name,String value)具体可以百度一下或Google
使用response对象的sendRedirect(URL)方法实现的页面跳转将改变浏览器地址栏的信息,所以这种跳转叫做客户端跳转。
3.out对象
功能:用来向网页输出信息。
方法很多,如print(String str)、println(String str)、getBufferSize()等。
4.session对象
功能:用来保存用户会话的各种信息,直到生命周期结束。
方法如下:
getId() 获得session的ID
getCreateTime() 获得session生成的时间。
getLastAccessedTime() 获得用户最后通过session发送请求的时间。
getMaxInactiveInterval() 获得session生命周期。
invalidate() 清空session内容。
isNew() 判断session是否为新创建的。
setMaxInactiveInterval() 设置session生命周期,如果超过这个时间就失效。
5.application对象
功能:用来取得和设置Servlet的相关信息。application对象的生命周期是从服务器启动产生直到其关闭为止。
方法如下:
getMajorVersion() 获得主要的ServletAPI版本
getMinorVersionn() 获得次要的ServletAPI版本
getServletInfo() 获得服务器版本
。。。。。。。。
6.pageContext对象
功能:可以设置page范围的属性,可以获得其他内置对象,因此也可以设置其他范围的属性,还有它也可以获得其他范围的属性。
获得其他内置对象:
getException()、getOut()、getPage()、getRequest()、getResponse()、getServletConfig()、getServletContext() 获得当前的application对象、getSession()
获得属性:
getAttribute(String name,int scope) 获得指定范围的name属性
getAttributeNamesInScope(int scope) 获得指定范围的所有属性
getAttributeScope(String name) 获得属性名为name的属性范围
removeAttribute(String name) 移除属性名称为name的属性
removeAttribute(String name,int scope) 移除指定范围的属性名称为name的属性
setAttribute(String name,Object value,int scope) 设置指定范围的name属性
findAttribute(String name) 寻找所有范围的属性名称为name的属性
7.page对象
功能: page对象代表JSP转译后的Servlet,因此通过page对象可以调用Servlet类中定义的方法。
8.config对象
功能:用来获得Servlet的配置信息。
方法如下:
getInitParameter(name) 获得Servlet初始化参数
getInitParameterNamespace() 获得Servlet所有初始化参数名称
getServletContext() 获得当前Application context
getServletName() 获得Serlvet名称
9.exception对象
功能:用来处理错误异常。注:如果要使用exception对象,必须指定page的isErrorPage属性值为"true"。