您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页JSP内置对象

JSP内置对象

来源:飒榕旅游知识分享网
内置对象特点:

1. 由JSP规范提供,不用编写者实例化。 2. 通过Web容器实现和管理 3. 所有JSP页面均可使用

4. 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)

常用内置对象:

1. 输出输入对象:request对象、response对象、out对象

2. 通信控制对象:pageContext对象、session对象、application对象 3. Servlet对象:page对象、config对象 4. 错误处理对象:exception对象

属性保存范围

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

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

2、request:指属性在一次请求范围内有效。如果页面从给一个页面跳转到另一个页面,那么该属性就失效了。这里所指的跳转是指客户端跳

转,比如客户单击超链接跳转到其他页面或者通过浏览器地址栏浏览其他页面。如果使用服务器端跳转,则该属性仍然生效。同理使用request对象的setAttribute()和getAttribute()。

3、session:指客户浏览器与服务器一次会话范围内,如果服务器断开连接,那么属性就失效了。同理通过session对象的setAttribute()和getAttribute()。session范围的例外比如重新打开一个浏览器。 4、application:指在整个服务器范围,知道服务器停止以后才会失效。同理通过application对象的setAttribute()和getAttribute()。application范围就是保存的属性只要服务器不重启,就能在任意页面中获取,就算重新打开浏览器也是可以获取属性的。

Request(Javax.servlet.ServletRequest)

它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。

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

该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。

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

方法 getParameter(String name) getParameterNames() 返回值类型 方法说明 String Enumeration 获取参数名为name的参数值 获取所有参数的名称,可与上一个方法合用获取所有参数的值 getParameterValues(String name) String[] 获取参数名为name的所有参数,比如参数是多个checkbox 获取所有参数封装的Map实例,通过Map getParameterMap() Map 实例的String[] get(\"id\")方法返回对应参数名为id的值数组 Response(Javax.servlet.ServletResponse)

作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)

对客户的请求做出动态的响应,向客户端发送数据。

2.1 动态响应

contentType属性

当一个用户访问一个JSP页面时,如果该页面用page指令设置页面的contentType属性时text/html,那么JSP引擎将按照这个属性值做出反应。如果要动态改变这换个属性值来响应客户,就需要使用Response对象的setContentType(String s)方法来改变contentType的属性值。 格式:response.setContentType(String s);

参数s可取text/html,application/x-msexcel,application/msword等。

2.2 Response

重定向

在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用Response的sendRedirect(URL)方法实现客户的重定向。

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

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

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

<% response.addIntHeader(\"Refresh\

实例2:实现页面自动跳转:可以通过response对象的setHeader()方法添加一个标题为Refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。 <%

response.setHeader(\"Refresh\%>

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

Out(Javax.servlet.jsp.JspWriter)

用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。

● out.print():输出各种类型数据。

● out.newLine():输出一个换行符。 ● out.close():关闭流。

pageContext(Javax.servlet.jsp.PageContext)

描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。

通过它可以访问页面的许多属性。

PageContext类拥有getRequest,getResponse,getOut,getSession等方法。 pageContext变量存储与当前页面相关联的PageContext对象的值。

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

如果方法需要访问多个与页面相关的对象,

传递pageContext要比传递request,response,out等的引用更容易。(虽然两种方式都能达到同样的目的)

Session(javax.servlet.http.HttpSession)

会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。

(1)什么是Session对象

Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。 (2)Session对象的ID

当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。

(3)Session对象的常用方法

● public String getId():获取Session对象编号。

● public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。

● public Object getAttribute(String key):获取Session对象中含有关键字的对象。 ● public Boolean isNew():判断是否是一个新的客户

返回值类方法 型 getId() getCreationTime() String long 获取session的ID 获取session的生成时间 方法说明 getLashAccessedTime() long 获取用户最后通过session发送请求时间 获取session生命周期,如果超过这个时间则失效 清空session内容 getMaxInactiveInterval() long invalidate() isNew() void boolean 判断session是否为“新”的 设置session生命周期,如果超过这个时间则失效 setMaxInactiveInterval() void

Application(javax.servle.ServletContext)

存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。

(1)什么时Application对象

服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。 (2)Application对象的常用方法

● setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。

● getAttribute(String key):获取Application对象中含有关键字的对象。

方法 返回值类型 方法说明 获取主要的Servlet API版本 获取次要的Servlet API版本 getMajorVersion() int getMinorVersion() int getServerInfo() getMimeType() getContext() getRealPath

String String ServerContext String 获取服务器版本 获取指定文件的MIME类型 获取指定Local的Application context 获取指定path的绝对路径 Page(Java.lang.Object)表示当前JSP页面的servlet实例

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

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

<%@ page language=\"java\"contentType=\"text/html;charset=gb2312\"%> <%@ page info=\"this is the page Object Practice\" %>

page对象

<%--通过page对象调用Servlet中的getServletInfo()方法 --%>

<% String info = ((javax.servlet.jsp.HttpJspPage)page).getServletInfo(); %> <%=info %>

输出:this is the page Object Practice.

Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。

可以用来获取Servlet的配置信息 方法 返回值类型 方法说明 获取Servlet初始化参数 获取Servlet所有初始化参数名称 获取当前Application context 获取Servlet名称 getInitParameter(name) String getInitParameterNames() Enumeration getServletContext() getServletName()

ServletContext String Exception(Javax.lang.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>

用来处理错误异常,如果要用exception对象,必须指定page中的isErrorPage属性值为true。 实例:exception用来处理错误异常 1、包含错误的页面:error.jsp

<%@ page language=\"java\" contentType=\"text/html;charset=gb2312\" errorPage=\"ExceptionDemo01.jsp\"%>

错误页面

<% int[] arr = {1,2,3}; out.println(arr[3]); %>

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

<%@ page language=\"java\" contentType=\"text/html;charset=gb2312\" isErrorPage=\"true\"%> <%@page import=\"java.io.PrintStream\"%>

处理错误异常

<%=exception%>

<%=exception.getMessage()%>
<%=exception.getLocalizedMessage()%>
<% exception.printStackTrace(new java.io.PrintWriter(out)); %>

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

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务