jsp内置对象 jsp内置对象浅谈

JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对象。如request,session,response,out等。

下面就JSP2.0给出的9个内置对象:

内置对象 ? ?类型 ? ?作用域 ? ?

request ? ?javax.servlet.http.HttpServletRequest ? ?request ? ?

response ? ?javax.servlet.http.HttpServletResponse ? ?response ? ?

pageContext ? ?javax.servlet.jsp.PageContext ? ?page ? ?

session ? ?javax.servlet.http.HtpSession ? ?session ? ?

application ? ?javax.servlet.jsp.ServletContext ? ?application ? ?

out ? ?javax.servlet.jsp.JspWriter ? ?page ? ?

config ? ?javax.servlet.ServletConfig ? ?page ? ?

page ? ?java.lang.Object ? ?page ? ?

exception ? ?java.lang.Throwable ? ?page ? ?

我们同样可以根据它们的作用进行分类:

第一类:与Servlet有关:page和config

第二类:与Input/Output有关:out,request和response

第三类:与Context有关:application,session和pageContext

第四类:与Error有关:exception

一、属性保存范围

在JSP中可以通过setAttribute()和getAttribute()这两个方法来设置和取得属性。从而实现数据的共享。JSP提供了四种属性保存范围:response,request,session和application。

1、page:就是设置的属性只能在当前页面有效。通过pageContext的setAttribute()和getAttribute()。

2、
request:指属性在一次请求范围内有效。如果页面从给一个页面跳转到另一个页面,那么该属性就失效了。这里所指的跳转是指客户端跳转,比如客户单击
超链接跳转到其他页面或者通过浏览器地址栏浏览其他页面。如果使用服务器端跳转<jsp:forward>,则该属性仍然生效。同理使用
request对象的setAttribute()和getAttribute()。

3、session:指客户浏览器与服务器一次会话范围内,如果服务器断开连接,那么属性就失效了。同理通过session对象的setAttribute()和getAttribute()。session范围的例外比如重新打开一个浏览器。

4、
application:指在整个服务器范围,知道服务器停止以后才会失效。同理通过application对象的setAttribute()和
getAttribute()。application范围就是保存的属性只要服务器不重启,就能在任意页面中获取,就算重新打开浏览器也是可以获取属性
的。

二、移除属性:在属性的作用域还未到就想清除相应的属性时,必须编程清除。即调用相应对象的removeAttribute()方法就可以移除指定属性。

<%@
page language="java" contentType="text/html;charset=gb2312"%>
<html> <head> <title>移除属性</title> </head>
<body> <%-- 在page范围设置属性 --%> <%
pageContext.setAttribute("name","James"); //设置属性name,其值为James
pageContext.setAttribute("age","12"); //设置属性age,其值为12
pageContext.setAttribute("sex","男"); //设置属性sex,其值为男 %> <%--
移除属性--%> <% pageContext.removeAttribute("sex"); %> <%--
取得page范围属性--%> <% String strName =
(String)pageContext.getAttribute("name"); //取值属性name的值 String strAge =
(String)pageContext.getAttribute("age"); //取值属性age的值 String strSex =
(String)pageContext.getAttribute("sex"); //取值属性sex的值
out.println("page范围:name属性值为" + strName + "<br>");
out.println("page范围:age属性值为" + strAge+ "<br>");
out.println("page范围:sex属性值为" + strSex); %> </body>
</html>

jsp内置对象浅谈_jsp内置对象

?结果页面输出:page范围:name属性值为James??????????????????????? page范围:age属性值为?12

??????????????????????? page范围:sex属性值为 null

三、request对象:request对象不但可以用来设置和取得request范围变量,还可以用来获取客户端请求参数、请求的来源、表头、Cookies等。

1、request获取客户端请求参数方法

?方法 ? ?返回值类型? ? ?方法说明? ? ?

?getParameter(String name) ? ?String? ? ??获取参数名为name的参数值 ? ?

?getParameterNames() ? ?Enumeration? ? ??获取所有参数的名称,可与上一个方法合用获取所有参数的值 ? ?

?getParameterValues(String name) ? ??String[] ? ??获取参数名为name的所有参数,比如参数是多个checkbox ? ?

?getParameterMap() ? ??Map ? ??获取所有参数封装的Map实例,通过Map实例的String[] get("id")方法返回对应参数名为id的值数组 ? ?

2、request的其他方法

方法 ? ?返回值类型 ? ?方法说明 ? ?

getHeader(String name) ? ?String ? ?获取指定标题名称为name的标头 ? ?

getHeaderName() ? ?Enumeration ? ?获取所有的标头名称 ? ?

getIntHeader(String name) ? ?int ? ?获取标题名称为name的标头,内容以整数类型返回 ? ?

getDateHeader(String name) ? ?long ? ?获取标题名称为name的标头,内容以日期类型返回 ? ?

getCookies() ? ?Cookie ? ?获取相关的Cookie ? ?

getContextPath() ? ?String ? ?获取Context的路径 ? ?

getMethod() ? ?String ? ?获取客户端的提交方式 ? ?

getProtocol() ? ?String ? ?获取使用的HTTP协议 ? ?

getQueryString() ? ?String ? ?获取请求的字符串 ? ?

getRequestSessionId() ? ?String ? ?获取客户端的Session ID ? ?

getRequestURI() ? ?String ? ?获取请求的URI ? ?

getRemoteAddr() ? ?String ? ?获取客户端IP地址 ? ?

四、response对象:用来向客户端传送输出信息。

方法 ? ?返回值 ? ?方法说明 ? ?

addCookie(Cookie cookie) ? ?void ? ?

addDateHeader(String name,long date) ? ?void ? ?

addHeader(String name,String value) ? ?void ? ?

addIntHeader(String name,int value) ? ?void ? ?

setDateHeader(String name,long date) ? ?void ? ?

setHeader(String name,String value) ? ?void ? ?

setIntHeader(String name,int value) ? ?void ? ?

sendError(int sc) ? ?void ? ?传送状态码 ? ?

sendError(int sc,String msg) ? ?void ? ?传送状态码和错误信息 ? ?

setStatus(int sc) ? ?void ? ?设置状态码 ? ?

sendRedirect(String URL) ? ?void ? ?页面重定向,用来实现页面跳转 ? ?

jsp内置对象浅谈_jsp内置对象

注:这里的response对象的sendRedirect(String URL)方法设置页面重定向将改变浏览器地址栏信息,所以也称客户端跳转。

实例1:response对象实现页面的自动刷新:只需要早JSP页面中加上

<%--使用response对象的setIntHeader设置属性Refresh的值(单位为秒)来实现页面自动刷新--%> <% response.addIntHeader("Refresh",10); %>

实例2:实现页面自动跳转:可以通过response对象的setHeader()方法添加一个标题为Refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。?<% response.setHeader("Refresh","10;URL=http://www.baidu.com"); %>

??这里使用setHeader方法添加一个标题为"Refresh",值为"10,URL=http://www.baidu.com"的标头。

五、out对象:用来向页面输出信息。

方法 ? ?返回值类型 ? ?方法说明 ? ?

clear() ? ?void ? ?清除网页上输出内容 ? ?

clearBuffer() ? ?void ? ?清除缓冲区内容 ? ?

close() ? ?void ? ?关闭缓冲区,清除所有内容 ? ?

getBufferSize() ? ?int ? ?取得缓冲区大小 ? ?

getRemaining() ? ?int ? ?取得缓冲区剩余大小 ? ?

isAutoFulsh() ? ?boolean ? ?获得缓冲区是否进行自动清除的信息 ? ?

print(String str) ? ?void ? ?进行页面输出 ? ?

println(String str) ? ?void ? ?进行页面输出并换行 ? ?

六、session对象:用来表示用户的会话状况,一般用于保存用户的各种信息,直到生命周期超时或者被认为释放掉为止。

方法 ? ?返回值类型 ? ?方法说明 ? ?

getId() ? ?String ? ?获取session的ID ? ?

getCreationTime() ? ?long ? ?获取session的生成时间 ? ?

getLashAccessedTime() ? ?long ? ?获取用户最后通过session发送请求时间 ? ?

getMaxInactiveInterval() ? ?long ? ?获取session生命周期,如果超过这个时间则失效 ? ?

invalidate() ? ?void ? ?清空session内容 ? ?

isNew() ? ?boolean ? ?判断session是否为“新”的 ? ?

setMaxInactiveInterval() ? ?void ? ?设置session生命周期,如果超过这个时间则失效 ? ?

七、application对象:用来取得和设置Servlet的相关信息。

方法 ? ?返回值类型 ? ?方法说明 ? ?

getMajorVersion() ? ?int ? ?获取主要的Servlet API版本 ? ?

getMinorVersion() ? ?int ? ?获取次要的Servlet API版本 ? ?

getServerInfo() ? ?String ? ?获取服务器版本 ? ?

getMimeType() ? ?String ? ?获取指定文件的MIME类型 ? ?

getContext() ? ?ServerContext ? ?获取指定Local的Application context ? ?

getRealPath ? ?String ? ?获取指定path的绝对路径 ? ?

jsp内置对象浅谈_jsp内置对象

八、pageContext对象:可以用来设置page范围的属性,还可以设置其他范围属性,不过需要指定范围参数,同时还可以获取其他内置对象。

方法 ? ?返回值 ? ?方法说明 ? ?

getException() ? ?Exception ? ?获取当前的exception内置对象 ? ?

getOut() ? ?JspWriter ? ?

getPage() ? ?Object ? ?

getRequest() ? ?ServletRequset ? ?

getResponse() ? ?ServletResponse ? ?

getServletConfig() ? ?ServletConfig ? ?

getServeltContext() ? ?ServletContext ? ?

getSession() ? ?HttpSession ? ?

jsp内置对象 jsp内置对象浅谈

getAttribute(String name,int scope) ? ?Object ? ?获取指定范围的name属性值 ? ?

getAttributeNamesInScope(int scope) ? ?Enumeration ? ?获取指定范围所有属性名称 ? ?

getAttributesScope(String name) ? ?int ? ?获取属性名称为name的属性范围 ? ?

removeAttribute(String name) ? ?void ? ?移除属性名称为name的 属性 ? ?

removeAttribute(String name,int scope) ? ?void ? ?移除指定范围的属性名称为name的 属性 ? ?

setAttribute(String name,Object value,int scope) ? ?void ? ?设置指定范围的name属性 ? ?

findAttribute(String name) ? ?Object ? ?寻找所有范围的属性名称为name的属性 ? ?

九、page对象:page对象代表JSP转译后的Servlet,通过page对象可以非常方便地调用Servlet类中定义的方法。

实例1:通过page对象调用Servlet类中定义的方法?

<%@
page language="java" contentType="text/html;charset=gb2312"%> <%@
page info="this is the page Object Practice" %> <html>
<head> <title>page对象</title> </head>
<body> <%--通过page对象调用Servlet中的getServletInfo()方法 --%> <%
String info = ((javax.servlet.jsp.HttpJspPage)page).getServletInfo();
%> <%=info %> </body> </html>

输出:this is the page Object Practice.

十、config对象:可以用来获取Servlet的配置信息。

方法 ? ?返回值类型 ? ?方法说明 ? ?

getInitParameter(name) ? ?String ? ?获取Servlet初始化参数 ? ?

getInitParameterNames() ? ?Enumeration ? ?获取Servlet所有初始化参数名称 ? ?

getServletContext() ? ?ServletContext ? ?获取当前Application context ? ?

getServletName() ? ?String ? ?获取Servlet名称 ? ?

十一、exception对象:用来处理错误异常,如果要用exception对象,必须指定page中的isErrorPage属性值为true。

实例:exception用来处理错误异常

1、包含错误的页面:error.jsp

<%@
page language="java" contentType="text/html;charset=gb2312"
errorPage="ExceptionDemo01.jsp"%> <html> <head>
<title>错误页面</title> </head> <body> <% int[]
arr = {1,2,3}; out.println(arr[3]); %> </body> </html>

jsp内置对象浅谈_jsp内置对象

?注:error.jsp中arr[3]数组下表越界.需在page指令中指定errorPage的属性值为相应的异常处理程序。

2、异常处理页面:exceptionDo.jsp

<%@
page language="java" contentType="text/html;charset=gb2312"
isErrorPage="true"%> <%@page import="java.io.PrintStream"%>
<html> <head> <title>处理错误异常</title>
</head> <body> <%=exception%><br>
<%=exception.getMessage()%><br>
<%=exception.getLocalizedMessage()%><br> <%
exception.printStackTrace(new java.io.PrintWriter(out)); %>
</body> </html>

?注:必须在page指令中指定属性isErrorPage属性值为true。也就是说这个页面可以用于异常处理。

将会在exceptionDo.jsp中打印出error.jsp中的数组下标越界异常 信息

  

爱华网本文地址 » http://www.413yy.cn/a/8104540103/298022.html

更多阅读

浅谈高中语文研究性学习

浅谈高中语文研究性学习摘要:面对知识经济的挑战,国际社会比较普遍认同和实施研究性学习。它作为一种自主选择性的学习方式,能够使学生根据各自的兴趣、爱好和条件,自主择定研究对象、课题、内容、方法

浅谈中学生情绪的自我调节 中学生情绪特点

浅谈中学生情绪的自我调节吴 蕾摘 要:通过阐述情绪调节的概念和类别,结合中学生心身发育特点及中学生情绪表现的特点,帮助中学生提高对自我情绪调节的认识和掌握自我情绪调节的方法。关键词: 中学生自我情绪调节美国的一名中学生枪

浅谈日常审计如何发现“小金库” 小金库审计方法

谈日常审计如何发现“小金库”作者:樊成 发布时间:2009-08-31 来源:姚安县审计局浅谈日常审计如何发现“小金库”hpT中国国家审计网凡是违反国家财经法规及其有关规定,侵占、截留国家和单位收入,未列入本单位会计部门帐内或未纳入预算

声明:《jsp内置对象 jsp内置对象浅谈》为网友过自己生活分享!如侵犯到您的合法权益请联系我们删除