jsp内置对象浅谈

  • |
  • 浏览:1184
  • |
  • 更新:2013-12-11 16:01

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>

结果页面输出: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    页面重定向,用来实现页面跳转

注:这里的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的绝对路径

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

方法    返回值    方法说明

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

getOut()    JspWriter

getPage()    Object

getRequest()    ServletRequset

getResponse()    ServletResponse

getServletConfig()    ServletConfig

getServeltContext()    ServletContext

getSession()    HttpSession

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>

注: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>

 

jsp内置对象浅谈的更多相关文章

  1. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

  2. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. Jsp内置对象及EL表达式的使用

    一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...

  4. Java遇见HTML——JSP篇之JSP内置对象(上)

    一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...

  5. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  6. JSP内置对象详解

    jsp中内置对象:request.response.session.applecation.out.pagecontesx.config.page.exception.cookie 1.request ...

  7. JSP内置对象(上)

    在JSP中为了简化页面的开发提供了一些内置的对象.这些对象不需要由JSP的编写者通过new关键字实例化,他们都由容器实现和管理,在所有的JSP页面中都可以使用内置对象. JSP中共有9大内置对象: o ...

  8. JSP内置对象(下)

    JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 excep ...

  9. jsp内置对象的方法

    JSP内置对象的方法:out:out.print();request:request对象主要用于出列客户端请求.   常用方法:    String getParameter(String name) ...

随机推荐

  1. NAND flash sub-pages

    http://www.linux-mtd.infradead.org/doc/ubi.html#L_subpage NAND flash sub-pages As it is said here, a ...

  2. Windows Store App JavaScript 开发:文件选取器

    正如前面章节C#语言中所介绍的,文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应用中直接与文件系统进行交互,访问不同位置的文件或文件夹,或者将文件存储在指定位置.文件选取器分为对文件进 ...

  3. 错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

    出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜 ...

  4. 基于注解的Spring AOP示例

    基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的A ...

  5. tomcat安全加固

    -R 640 conf/*3. 首次安装完成后立即删除webapps下面的所有代码rm -rf /srv/apache-tomcat/webapps/*4. 注释或删除 tomcat-users.xm ...

  6. 学习solr

    1.下载地址 http://apache.opencas.org/lucene/solr/

  7. javascript 中的借鸡生蛋

    如题所说,其实指的是 js 中的内置函数和 apply 的结合使用.这种用法很讨巧,读过 jQuery 源码的小伙伴都知道,它在里面被应用的非常广泛和精妙! 梨子:找出一个数组中的最大值和最小值 普遍 ...

  8. 书旗小说app点评

    书旗小说这个手机软件用了好久了,大一的时候就开始用,业余无聊时间可以看一看网络小说打发一下时间. 书旗免费小说是一款内容以免费小说书旗网为基础的在线阅读器,除了拥有传统阅读器的书籍同步阅读.全自动书签 ...

  9. Emacs 参考资料

    1.EmacsWiki: http://www.emacswiki.org/emacs?interface=zh-cn 2.相关博客:     http://blog.csdn.net/redguar ...

  10. hdu, KMP algorithm, linear string search algorithm, a nice reference provided 分类: hdoj 2015-07-18 13:40 144人阅读 评论(0) 收藏

    reference: Rabin-Karp and Knuth-Morris-Pratt Algorithms By TheLlama– TopCoder Member https://www.top ...