JSP 隐含对象
jsp测试题
![jsp测试题](https://img.taocdn.com/s3/m/ad690d43571252d380eb6294dd88d0d233d43cf8.png)
jsp测试题1.{JSP/Servlet题目}假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。
(选择1项)DA)MyApp目录下B)MyApp\images目录下C)MyApp\WEB-INF目录下D)MyApp\WEB-INF\lib目录下2.{JSP/Servlet题目}哪一个对象可以用于获得浏览器发送的请求。
(选择1项)AA)HttpServletRequestB)HttpServletResponseC)HttpServletD)Http3.{JSP/Servlet题目}事务处理的结束方式。
(选择2项) BDA)中止B)提交C)完成D)回滚4.{JSP/Servlet题目}客户端状态管理的解决方案有。
(选择3项)CA)URL重写B)隐藏域C)CookieD)以上都不是5.{JSP/Servlet题目}与HttpSessionListener接口有关的方法是。
(选择2项)BDA)SessionInitialized()B)SessionCreated()C)SessionFinialized()D)SessionDestroyed()6.{JSP/Servlet题目}关于JSP生命周期的叙述,下列哪些为真?(选择2项)ACA)JSP会先解释成Servlet源文件,然后编译成Servlet类文件B)每当用户端运行JSP时,jspInit()方法都会运行一次C)每当用户端运行JSP时,_jspService()方法都会运行一次D)每当用户端运行JSP时,jspDestroy()方法都会运行一次7.{JSP/Servlet题目}下列哪个为JSP的隐含对象。
(选择1项)BA)envB)pageC)jspinfoD)context8.{JSP/Servlet题目}在J2EE中属于Web层的组件有。
(选择1项)AA)ServletB)EJBC)AppletD)HTML9.{JSP/Servlet题目}在Web应用的根目录ROOT中,可以存放的文件为。
第12讲_JSP隐含对象(out、request)
![第12讲_JSP隐含对象(out、request)](https://img.taocdn.com/s3/m/162eaf610b1c59eef8c7b400.png)
mitTest.jsp
Java企业应用 Java企业应用
Logo
小结 实现用户登录信息显示
Java企业应用 Java企业应用
Logo
总结
本节中我们已经学习如下主要内容: 本节中我们已经学习如下主要内容:
out对象 对象 request对象 对象
Java企业应用 Java企业应用
Logo
什么是JSP隐含对象 什么是 隐含对象
JSP隐含对象是 Web 容器创建的一组对象 JSP隐含对象是可以直接在JSP页面使用的对象 , 无需使用“new”获取实例 JSP隐含对象的名称是 JSP 的保留字
示例 常用隐含对象
没有出现new关键 关键 没有出现 字,但却可以使用 request对象 对象 <% request.setCharacterEncoding("GBK"); String titleName = request.getParameter("titlename"); %>
Java企业应用 Java企业应用
Logo
JSP隐含对象 隐含对象(out、request) 隐含对象 、
《Java企业技术》
Java企业应用 Java企业应用
Logo
JSP隐含对象 隐含对象(out、request) 隐含对象 、
本讲主要内容: 本讲主要内容: out对象 对象 request对象 request对象
out request
session application
response
Java企业应用 Java企业应用
Logo
out对象的主要方法 对象的主要方法
out对象是javax.servlet.jsp.JspWriter抽象 类的一个非抽象子类的实例,其常用的方 法有 void print():打印各种格式的数据。 void println():打印各种格式的数据,并换 行。 void newLine():输出一个换行符。 void flush() throws IOException:输出缓冲 区的内容。 void clear() throws IOException:清除缓冲 区的内容。如果缓冲区内容已经被刷新过, 会抛出IOException异常。
JSP面试题
![JSP面试题](https://img.taocdn.com/s3/m/e067504f2af90242a895e5c9.png)
一、JSP选择题(1)在J2EE的Web应用中,编译后的class文件存放的目录为(A)A. classes目录B. images目录C. jar目录D. 任意位置(2)在JSP中,哪个指令用来声明JSP欲使用的标签库?(B)A. tldB. taglibC. importD. include(3)Servlet处理请求的方式为(A)A. 以运行的方式B. 以线程的方式C. 以程序的方式D. 以调度的方式(4)在JavaWeb应用中,MVC设计模式中的V(视图)通常由(A)充当。
A. JSPB. ServletC. ActionD. JavaBean(5)网页服务默认的端口号是(D),我们可以通过HTTP地址加上端口号来访问网站。
A. 8100B. 8080C. 9000D. 80(6)JSP标准标签库(JSTL)的标签库描述符文件的后缀是(A)。
A. .tldB. .jarC. .propertiesD. .xml(7)Web服务是一种通过互联网来描述、发布、定位及调用的服务,下列关于Web服务的理解正确的是(D)。
A. Web服务只能在互联网发布,不能在局域网内发布B. Web服务的提供者和请求者必须使用相同的技术平台C. Web服务的提供者和请求者必须使用的语言开发应用程序D. Web服务的数据传输标准是XML说明:Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。
(8)在Java Web应用程序中,使用哪个数据源与JNDI获得数据库连接时,应把JDBC驱动程序jar文件放在(D)下。
A. 应用程序的src目录B. 应用程序的/WEB-INF/lib目录C. Tomcat的根目录D. Tomcat的common/lib目录(9)下面哪个说法是正确的? (B)A. 对于每个要求访问maillogin.jsp的HTTP请求,Servlet容器都会创建一个HttpSession对象B. 每个HttpSession对象都有惟一的ID。
chap4-JSP内置对象
![chap4-JSP内置对象](https://img.taocdn.com/s3/m/dd1240311fb91a37f111f18583d049649b660efc.png)
request对象的常用方法举例
getProtocol(): 获取请求使用的通信协议,如 http/1.1等。
getServletPath(): 获取请求的JSP页面所在的路 径。
getContentLength(): 获取HTTP请求的长度。 getMethod(): 获取表单提交信息的方式,如POST
example4_8.jsp、example4_8_play_mp4.jsp
22
4.1.5处理超链接
超链接标记 <a href ="example4_9_receive.jsp>购买</a> 使用超链接标记时还可以增加参数: <a href
="example4_9_receive.jsp?id=A1001&price=876 5">购买</a> 获取参数: String idStr = request.getParameter("id");
algin= "top" checked="ok" />男生 (3)复选框checkbox <input type="checkbox" name= "item"
value="A" algin= "top" checked="ok" />足球 (4)口令框password <input type= "password" name= "me" size=
"12" maxlength="30" />
15
JSP中的内置对象详解
![JSP中的内置对象详解](https://img.taocdn.com/s3/m/6efe7d39376baf1ffc4fad31.png)
JSP中的内置对象<j s p:f o r w a r d><jsp:forward>是把一个请求转发到另一个JSP或Servlet或者其他的静态资源(HTML)特点:被forward转发的资源必须与发出请求的页面处于相同的上下文环境中,每当遇到此标签时,容器就会停止执行当前的JSP,转而执行被转发的资源<j s p:p a r a m>l当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用<jsp:param>标签向这个程序传递参数信息。
l语法1:<jsp:include page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l语法2:<jsp:forward page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。
在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
第4章 JSP内置对象
![第4章 JSP内置对象](https://img.taocdn.com/s3/m/6f01cb661ed9ad51f01df23d.png)
P
例:input1.html
J
s
如何接收多个同名参数?
P
例:request02.html
J
s
P
原因:在整个操作过程中复选框的内容只能得到一个,因 为getParameter()方法,只能接收一个参数的内容,如 果想要接收多个参数,则必须使用: public String[] getParameterValues(String name) 此方法返回一个数组,表示接收同名的一组参数。
§4.1 request对象
J 在JSP中,内置对象request封装了用户请求页面时所提 交的信息,该对象调用相应的方法可以获取封装的信息.即
s
request对象可以获取用户提交的信息。
用户在请求JSP页面时,通常会使用HTML表单提交信息,表 单的一般格式是:
<FORM method=get|post action="提交信息的目的地页面"> 提交手段
J
getParameterNames()方法
此方法可以取得表单提交的所有参数名称
例:request04.html
s
P
思考:如何同时显示复选框的全部内容?
request05.jsp
4.1.5
处理HTML标记_<Select>、<Option>格式
J
下拉式列表和滚动列表通过<Select>和<Option>标记来定义。基本格式 为:
4.1.3
J
常用方法举例
可以用内置对象request对象来获取请求所提交的各类信 息,request对象的常用方法如下:
getProtocol():获取请求使用的通信协议,如http/1.1等。 getServletPath():获取请求的JSP页面所在的目录。 getContentLength():获取HTTP请求的长度。 getMethod():获取表单提交信息的方式,如POST或GET。
Java相关课程系列笔记之10JSP学习笔记(建议用WPS打开)
![Java相关课程系列笔记之10JSP学习笔记(建议用WPS打开)](https://img.taocdn.com/s3/m/642fb791e53a580216fcfe46.png)
JSP学习笔记Java相关课程系列笔记之十笔记内容说明JSP(程祖红老师主讲,占笔记内容100%);目录一、JSP基础 (1)1.1什么是JSP (1)1.2为什么要使用JSP (1)1.3 JSP与Servlet的关系 (1)1.4如何写一个JSP文件 (1)1.5 JSP是如何运行的 (1)1.6隐含对象 (2)1.7指令 (2)1.8 JSP注释 (3)1.9案例:创建emplist.jsp页面,将表示逻辑交给JSP处理 (3)二、JSP标签和EL表达式 (4)2.1什么是JSP标签 (4)2.2 JSTL及其使用 (4)2.3什么是EL表达式 (4)2.4 EL表达式的使用 (4)三、JSTL中的几个核心标签 (7)3.1 if (7)3.2 choose (7)3.3 forEach (7)3.4 url (8)3.5 set (8)3.6 remove (8)3.7 catch (8)3.8 import (8)3.9 redirect (8)3.10 out (8)3.11 JSP标签是如何运行的 (8)3.12案例:将员工列表中的Java代码改为JSP标签,并添加分页 (9)四、自定义标签 (10)4.1如何写一个自定义标签 (10)4.2 JavaEE5.0中,如何使用EL表达式和JSTL (10)4.3案例:自定义标签 (10)4.4案例:修改之前员工列表中的日期显示 (11)五、MVC (13)5.1什么是MVC (13)5.2使用MVC的目的 (13)5.3如何使用MVC来开发一个Web应用程序(JavaEE) (13)5.4 MVC的优缺点 (13)5.5案例:简易贷款(贷款数小于余额数*10) (13)5.6修改5.5案例,使用户无法直接访问view.jsp页面 (15)1一、JSP基础1.1什么是JSPJSP(Java Server Page)是Java服务器端动态页面技术。
第5单元 JSP内置对象
![第5单元 JSP内置对象](https://img.taocdn.com/s3/m/846def46be1e650e52ea9973.png)
Enumeration getAttributeNamesInScope(int scope )
取得所有scope范围的属性名称组成的列举表
void removeAttribute(String name[, int scope])
内置(又称隐含)对象是特定Java类的实例, 它们由JSP引擎在运 行时根据情况自动创建并管理,在JSP页面中可以直接使用。
能实现很多功能, 如: 从客户端获得数据、向客户端发回数据、控制 传输数据的有效域和异常处理等。
对象的名称是JSP的保留字, 使用内置对象可简化应用开发。
隐含对象功能:
不必使用表达式, 直接使用out对象向客户端输出信息。
getParameter() :读取请求参数 getParameterNames():获取指定范围内的请求参数名的集合; getParameterValues():读取指定参数的所有值; getHeader():读取指定字段名的请求头信息。
此外该接口还包含大量的方法, 概括起来分为四类。
请求对象reques
在错误页面中显示出错信息。
<% String st=exception.getMessage();%>
等等… …
9种隐含对象
2
JSP内置对象的由来
3
转译为Servlet
编写jsp页面可 使用隐含对象 注意: 它们在 _jspService() 方法中定义,故 只能在脚本和 表达式中使用
页面对象: page
page对象代表当前JSP页面, 即代表转译后的Servlet
4
JSP容器将JSP页面转译成Servlet后, 将指针this赋给了page对象
第三章:JSP内置对象 (request对象、response对象session对象、application对象、cookie)
![第三章:JSP内置对象 (request对象、response对象session对象、application对象、cookie)](https://img.taocdn.com/s3/m/b8d4c6fa551810a6f52486ee.png)
第三章:Jsp隐式对象(request对象、response对象session对象、application对象、cookie)Jsp隐式对象概述:由JSP规范提供,不用编写者实例化。
通过Web容器实现和管理。
所有JSP页面均可使用。
只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)。
常用九大内置对象的作用和方法1、out对象:代表提供输出流的访问。
2、request对象:request对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息。
常用方法:getparameter()getParameterValues()setAttribute() getAttribute()3、response对象:允许直接访问HttpServletResponse对象常用方法:sendRedirect()4、session对象:允许直接访问HttpServletResponse对象常用方法:setAttribute()、getAttribute()5、application对象:用于多个程序或者多个用户之间共享数据。
常用方法:setAttribute()、getAttribute()6、config :将初始化数据传递给一个JSP页面7、page :代表JSP页面对应的Servlet类实例8、exception:针对错误网页,未捕捉的例外9、pageContext :管理网页的属性内置对象的作用域:◆application:服务器启动到停止这段时间◆session:HTTP会话开始到结束这段时间◆request:HTTP请求开始到结束这段时间◆page:当前页面从打开到关闭这段时间对于每一个用户都共享同一个对象的是:application对象,而每个用户分别使用不同对象实例的是:session对象forword和sendRedirect的区别:forword仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;sendRedirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接getParameter(String name);例题一:文件名:input.html<html>< body bgcolor="white"><font size=1><form action="requestdemo1.jsp" method=post name=form><input type="text" name="boy"><input type="submit" value="Enter" name="submit"></form></font></body></html>文件名:requestDemo1.jsp:<%@ page contentType="text/html;charset=GB2312" %><html><body bgcolor="white"><font size=4><p>获取文本框提交的信息:<%String strContent=request.getParameter("boy");%><%=strContent%> // 输出文本框boy提交的信息<p> 获取按钮的名字:<%String strButtonName=request.getParameter("submit");%><%=strButtonName%> // 输出按钮的value名字</font></body></html>例题二:设计一个简单的“JSP程序设计网上测试系统”,如下图所示。
T05 JSP隐含对象2
![T05 JSP隐含对象2](https://img.taocdn.com/s3/m/983f5da0b0717fd5360cdcc6.png)
Session对象 对象
session对象用来保存每个用户的会话信息,以便跟 对象用来保存每个用户的会话信息, 对象用来保存每个用户的会话信息 踪每个用户的操作状态。 踪每个用户的操作状态。
从一个客户打开浏览器并连接到服务器开始, 从一个客户打开浏览器并连接到服务器开始,一直到这 个客户关闭浏览器为一个回话。 个客户关闭浏览器为一个回话。
当客户第一次连接到服务器请求时会为这个客户分 配一个session对象,并为这个对象分配一个 。 对象, 配一个 对象 并为这个对象分配一个id。
session信息保存在容器中,sessionID保存在客户机的 信息保存在容器中, 信息保存在容器中 保存在客户机的 cookie中 中 当服务器发出回复内容的同时将这个id发往客户段, 当服务器发出回复内容的同时将这个 发往客户段,并 发往客户段 写入到客户端的cookie中,这样下次再请求的时候,服务 写入到客户端的 中 这样下次再请求的时候, 器就可以通过该id来识别不同的用户 来识别不同的用户。 例子: 器就可以通过该 来识别不同的用户。 例子:SessionId.jsp
Request对象 对象
1、属性的存储和取得
方法
void setAttribute( String name, Object value) Object getAttribute( String name ) Enumeriation getAttributeNames( ) void removeAttribute ( Sting name)
例子: 例子:RequestOther.jsp
Response对象 对象
主要将JSP处理数据后的结果传回到客户端。对应 处理数据后的结果传回到客户端。 主要将 处理数据后的结果传回到客户端 的javax.servlet.http.HttpServletResponse接口。 接口。 接口
jsp面试题库选择题
![jsp面试题库选择题](https://img.taocdn.com/s3/m/5df891d5b307e87100f6966c.png)
1) 对于JSP的通用规则,描述正确的是:A. JSP标记不区分大小写。
B. 指令和脚本元素的语法不是基于XML的,但有替代的基于XML的语法。
C. 在标记中出现的属性值可以不用引号括起来,比如:<%@ page language="Java" %>和<%@ page language=java %>是等同的。
D. 在标记中使用字符/(正斜杠)作为转义字符。
E. 如果URL不是以”/”开始的,就被解释为相对于当前的JSP路径。
2) 对于标记,描述正确的是:A. 一般来说,是、标记的子标记。
B. 如果有代码:,则在中可以使用(“name”);把属性name的值取出来。
C. 如果有代码:,则在中可以使用(“name”);把属性name的值取出来。
D. 如果标记不放在标记内,也就是不作为标记的子标记,则使用浏览器查看时会显示错误页面。
3) 在有如下代码段:webmaster在Servlet中如何把webmaster的值取出来A. 使用RequestDispatcher的getInitParameter(“webmaster”)方法B. 使用ServletContext的getIni tParameter(“webmaster”)方法C. 使用ServletConfig的getInitParameter(“webmaster”)方法D. 使用GenericServlet的getInitParameter(“webmaster”)方法4) 在有如下代码段:teacherteacherCart在Servlet中如何把servlet名:teacher取出来A. 使用Servlet的getServletName方法。
B. 使用ServletConfig的getServletName方法。
C. 使用ServletContext的getServletName方法。
D. 使用ServletRequest的getServletName方法。
T04 JSP隐含对象 1
![T04 JSP隐含对象 1](https://img.taocdn.com/s3/m/ac182618227916888486d7c6.png)
Input 标签
选择列表
HTML窗体如何传递的特点
一组单选按纽只能有一个单选按纽被选中。 一组单选按纽只能有一个单选按纽被选中。 当作为一组设置时,所有的按纽名必须一致, 当作为一组设置时,所有的按纽名必须一致,其 中不同按纽中的value值为提交后的实际得值。 值为提交后的实际得值。 中不同按纽中的 值为提交后的实际得值 可用checked来设置初始选中状态 可用 来设置初始选中状态 可用request.getParameter(“name”);来得到选种 可用 “ ” 来得到选种 按纽的值。 按纽的值。
第一次访问登录页面时,会提示你尚未登录, 第一次访问登录页面时,会提示你尚未登录,如 图所示: 图所示:
体验项目 --网站访问信息统计程序 网站访问信息统计程序
如果你在登录时输入的账号或密码 为空, 为空,程序将提示你的账号或密码 不能为空的信息,如图所示: 不能为空的信息,如图所示: 我们选择一个正确的账号和密码登 录,将成功登录到用户信息统计页 面,在下一页面中将显示本网页自 服务器启动以来有多少人访问过及 访问者的信息,如图所示: 访问者的信息,如图所示:
隐含对象-隐含对象 属性与作用范围
通常将pageContext, request, session, application归为一类, 归为一类, 通常将 归为一类 他们可以通过setAttribute(attri,value)和 getAttribute(attri) 他们可以通过 和 来设置和取得自定义属性(Attribute),以达到数据分享的 数据分享的 来设置和取得自定义属性 ,以达到数据分享 目的。 目的。
例子: 例子: ex4_1.html
HTML窗体如何传递数据 窗体如何传递数据
JSP 隐式对象
![JSP 隐式对象](https://img.taocdn.com/s3/m/baa8958483d049649b6658bf.png)
请求 在网页上 显示输出 流
JSP 页面 out 对象
创建输出流
输出流 服务器
客户端
15
out 对象 2-2
使用out对象进行JSP编程
<html> <body> <% out.print(“欢迎来到 JSP:隐式对象”) ; 欢迎来到 :隐式对象” out.write(“欢迎来到 JSP:隐式对象”) ; 欢迎来到 :隐式对象” %> … </body> </html> 使用out对象输出
3
隐式对象
编写一个test.jsp页面,编译之后查看 工程目录\classes\Generated Source\.jsp\WebRoot\org\apache\jsp 下的 test_jsp.java 代码
这些对象就是我们在编写jsp 页面时可以使用的隐含对象, 需要注意的是由于这些隐含 的对象在_jspService()方法中 定义的,所以我们只能在脚本 和表达式中使用这些对象
17
session 对象 2-1
Web 服务器为单个用户发送的多个请求创建会话 存储有关用户会话的所有信息 javax.servlet.http.HttpSession 接口的实例 session 对象最常用的方法有:
void setAttribute(String name,Object value) 以键/值的方式,将一个对象的值存放到session 中 void getAttribute(String name) 根据名称去获取session中存放对象的值
19
Application 对象 2-1
表示 JSP 页面所属的应用程序 应用程序的 JSP 页面组合起来形成一个应用程序 javax.servlet.ServletContext接口实例 application对象最常用的方法有:
第3章 JSP页面元素与内置对象
![第3章 JSP页面元素与内置对象](https://img.taocdn.com/s3/m/5a426cf5910ef12d2af9e7c9.png)
language、extends、import、errorPage、 isErrorPage、、contentType、isThreadSafe和 session。
page指令
language设置JSP页面中用到的语言,默认值为“Java”,也是目前唯一有效的设 定值。使用的语法是:“<%@ page language="java"%>”。 extends设定目前JSP页面要继承的父类。一般情况下不需要进行设置。在默认情 况下,JSP页面的默认父类是HttpJspBase。例如:当前JSP页面要继承mypackage 包下的myclass类,相应的声明语句为:“<%@ page extends="mypackage.myclass"%>”。 import设置目前JSP页面中要用到的Java类,这些Java类可能是Sun JDK中的类, 也有可能是程序员自己定义的类。例如:“<%@page import="java.sql.*,java.util.*"%>”。 有些类在默认情况下已经被加入到当前JSP页面,而不需要特殊声明,包括四个类: ng.*;、java.servlet.*;、java.servlet.jsp.*;和java.servlet.http.*;。 errorPage用来设定当JSP页面出现异常(Exception)时,所要转向的页面。如果 没有设定,则JSP容器会用默认的当前网页来显示出错信息。例如:“<%@page errorPage="/error/error_page.jsp"%>” isErrorPage用来设定当前的JSP页面是否作为传回错误页面的网页,默认值是 “false”。如果设定为“true”,则JSP容器会在当前的页面中生成一个exception对 象。
jsp八大对象
![jsp八大对象](https://img.taocdn.com/s3/m/841dcb29b4daa58da0114a41.png)
response
对象的作用是封装JSP产生的响应,然后将其发送至客户端以响应 客户的请求。 2. response对象被封装为javax.servlet.http.HttpServletResponse接 口 3. 常用方法 Viod sendRedirect(String location):将请求重新定位到一个不同的URL 例如用 sendredirect(“http://localhost:8080/bss/list.jsp?page=1”); 1.
• page
page对象的实质就是ng.Object,它是ng.Object类的一个 实例。page对象代表JSP本身,更确切的说,它是代表JSP被转译后 的Seቤተ መጻሕፍቲ ባይዱvlet,它可以调用Servlet类定义的方法,作用和Java中的this一
样。
pageContext
pageContext表示一个javax.servlet.jsp.PageContext对象。 PageContext对象的作用是取得任何范围的参数,通过PageContext 对象可以获取JSP页面的out、request、response、session、 application等对象,重新定向客户的请求等
Session 1. session对象的作用是记录每个客户端的访问状态,以便跟踪每个 客户端的操作状态。 2. session对象被封装为javax.servlet.http.HttpSession接口,通过调 用pageContext.getSession()方法可以获取一个session对象。
application
1.
2.
类似于系统的“全局变量”,用于实现用户之间的数据共享。他是 存储到服务器上.直至服务器关闭为止. application对象被封装为javax.servlet.SercletContext接口的类型, 通过pageContext.getSrevletContext()方法可以获取application对 象。
JSP九大内置对象及四个作用域
![JSP九大内置对象及四个作用域](https://img.taocdn.com/s3/m/ee57bbe90975f46527d3e1cd.png)
JSP九大内置对象及四个作用域九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用1-out: out对象是JspWriter类的实例,是向客户端输出内容常用的对象javax.servlet.jsp.JspWriter类型,代表输出流的对象。
作用域为page(页面执行期)request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
请求的细节(参数,属性,头标和数据)。
作用域为request(用户请求期)。
方法由可查看APIresponse:javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page (页面执行期)。
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
它是HttpServletResponse类的实例。
pageContext:javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面执行期)。
此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
该对象的方法都是抽象方法session:javax.servlet.http.HttpSession类型,主要用于跟踪对话。
四大作用域及九大内置对象
![四大作用域及九大内置对象](https://img.taocdn.com/s3/m/8d29d05ae55c3b3567ec102de2bd960590c6d907.png)
四⼤作⽤域及九⼤内置对象四⼤作⽤域及九⼤内置对象jsp是运⾏在服务端的程序JSP有九个内置对象(⼜叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使⽤JSP九⼤内置对象分为四类:输⼊输出对象:out对象、response对象、request对象通信控制对象:pageContext对象、session对象、application对象Servlet对象:page对象、config对象错误处理对象:exception对象jsp四⼤作⽤域:page范围:只在⼀个页⾯保留数据(javax.servlet.jsp.PageContext(抽象类))request范围:只在⼀个请求中保存数据(javax.servlet.httpServletRequest)Session范围:在⼀次会话中保存数据,仅供单个⽤户使⽤(javax.servlet.http.HttpSession)Application范围:在整个服务器中保存数据,全部⽤户共享(javax.servlet.ServletContext)九种对象简介:1. out对象:⽤于向客户端、浏览器输出数据。
2. request对象:封装了来⾃客户端、浏览器的各种信息。
3. response对象:封装了服务器的响应信息。
4. exception对象:封装了jsp程序执⾏过程中发⽣的异常和错误信息。
5. config对象:封装了应⽤程序的配置信息。
6. page对象:指向了当前jsp程序本⾝。
7. session对象:⽤来保存会话信息。
也就是说,可以实现在同⼀⽤户的不同请求之间共享数8. application对象:代表了当前应⽤程序的上下⽂。
可以在不同的⽤户之间共享信息。
9. pageContext对象:提供了对jsp页⾯所有对象以及命名空间的访问。
1.page对象page对象有点类似与java编程中的this指针,他指向了当前jsp页⾯本⾝。
page对象是ng.object类的⼀个实例page对象拥有⼀个toString⽅法,下⾯是官⽅定义的⽅法介绍:public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}包名+类名+@+hashcode值page对象的⽅法:⽅法名说明toString将当前项⽬的信息打印出来getClass返回当前的object类hashCode返回page对象的hashCode值equals⽤于⽐较对象是否与当前对象相同2.request对象request对象封装了从客户端到服务器发出的请求信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据类型则要进行对象数据类型的转换。如整数1,则转换为 new Integer(1); •获得属性 – 当我们使用getAttribute(String name)取得name 属性的值时, 它返回一个ng.Object类型的对象,因此,还必须根据 name 属性值的类型进行类型转换 (Casting)工作。 – 例如,如果要取得String 类型的Name 属性时: String userName = (String)pageContext.getAttribute(“userName”); 或者String userName = pageContext.getAttribute(“userName”).toString();
• 3 、JSP中的隐含对象
• 4、错误处理
3 Sept. 2008 Confidential
JSP中隐含对象的概念
一. 什么是JSP的隐藏对象 二. JSP中有哪些隐藏对象
3 Sept. 2008 Confidential
JSP隐藏对象的由来
下面是一个普通的jsp页面文件helloworld.jsp
对当前JSP页面的引用,即 Java中的this
JSP页面的ServletConfig对象 响应信息 JSP的数据输出对象 异常处理
3 Sept. 2008 Confidential
主要内容
• 1 、JSP中隐含对象的定义 • 2 、属性(Attribute) 与范围
• 3 、JSP中的隐含对象
• 4、错误处理
Object getAttribute(String name)
void removeAttribute(String name)
取得name属性的值
删除名称为name的属性
3 Sept. 2008 Confidential
使用属性的一般注意事项1
•设置属性 – setAttribute(属性名,属性值)方法用来设置属性。 – 其中属性名为字符串类型。属性值为Object类型,如果是原子
3 Sept. 2008 Confidential
属性与范围
一.哪些JSP隐藏对象可以保存属性 二.属性的作用范围(Scope)
3 Sept. 2008 Confidential
可以使用属性的隐藏对象
我们通常会将request、session、application 和pageContext 归为一类, 原因在于:它们皆能借助属性来做到数据分享。 下表 列出了一般储存和取得属性的方法,这些方法pageContext、request、 session和application皆可使用。 方法 void setAttribute(String name, Object value) Enumeration getAttributeNamesInScope(int scope ) 说明 设定名称为name的属性, 属性的设置为value 取得所有scope范围的属 性名称组成的列举表
属性的范围(Scope)---page
概念 属性的范围为page,指的是属性只作用在当前的JSP 页面范围中。 操作方法 – 如果要将数据存入Page 范围,可用 pageContext 对象的setAttribute( )方法; – 若要取得page范围的数据,可用pageContext对 象的getAttribute( )方法。
javax.servlet.HttpSession
javax.servlet.ServletContext
表示会话对象
JSP页面所在Web应用的上下 文对象
page
config response out exception
ng.Object
javax.servlet.ServletConfig javax.servlet.HttpServletResponse javax.servlet.JspWriter ng.Throwable
–
如果是Integer 类型的Year 属性时: Integer Year = (Integer)session.getAttribute("Year");
3 Sept. 2008 Confidential
使用属性的一般注意事项2
•
在使用属性存储数据前,应该首先根据对属性的功能 要求,确定准备将属性存储在Request、Session 、 Application或PageContext的哪个之中,以便将相应 数据存入选定对象之中。 存入不同隐藏对象的属性在功能上有很大区别。
3 Sept. 2008 Confidential
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, ServletException { JspFactory _jspxFactory = null; PageContext pageContext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; ... _jspxFactory = JspFactory.getDefaultFactory(); response.setContentType("text/html;charset=GBK"); 我们察看jsp页面转译后的_jspService方法 pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true); 时发现,在该方法内,jsp转译引擎生成 application = pageContext.getServletContext(); 了一些局部对象并对它们进行了初始化。 config = pageContext.getServletConfig(); 这就意味着,在jsp的脚本元素中,我们 session = pageContext.getSession(); 可以直接使用这些局部对象(还有request、 out = pageContext.getOut(); response两个参数对象)而不必声明它们。 ...
}
3 Sept. 2008 Confidential
JSP隐藏对象的概念
概念 jsp页面在运行之前的转译过程中,jsp引擎为其_jspService方法 定义了一些局部对象。由于jsp脚本都将转译成_jspService方法 的代码,因此这些局部对象在jsp脚本中是可直接使用的。这些 局部对象一个通常的叫法为隐藏对象。 通过分析_jspService方法的代码,可知常用的隐藏对象有: – pageContext PageContext 类型 – session HttpSession 类型 – application ServletContext 类型 – config ServletConfig 类型 – out JspWriter 类型 – page Object 类型 – request HttpServletRequest类型 – response HttpServletResponse 类型
这一点十分重要,这是因为这将决定属性的作用范围。换句话 说,属性的宿主对象决定了属性的作用域、生存期等重要特性。
范围 JSP的属性有四种宿主对象,也就有了四种作用范围 – page – request – session – application。
3 Sept. 2008 Confidential
<%@ page contentType="text/html;charset=GB2312" %> <html> <head> <title>CH5 - helloworld.jsp</title> </head> <body> <% out.println("Helloworld,JSP!"); %> </body> </html> 转译 我们知道,该文件被第一次浏览时,jsp引擎将对其进行转译。
Java Web技术
3 Sept. 20072008 By Neusoft Group. All rights reserved Copyright © Neusoft Confidential
JSP隐含对象
3 Sept. 2007 © Neusoft Confidential
主要内容
• 1 、JSP中隐含对象的定义 • 2 、属性(Attribute) 与范围
3 Sept. 2008 Confidential
属性的范围(Scope)---page
例子: ------------PageScope1.jsp ----------------<%@ page contentType="text/html;charset=GB2312" %> html> <head> <title>CH6 - PageScope1.jsp</title> 我们在PageScope1.jsp页面中加入两个 </head> page范围的属性:Name和Passwrd: <body> <h2>Page 范围 - pageContext</h2> <% pageContext.setAttribute("Name","scott"); pageContext.setAttribute("Password","tiger"); %> <jsp:forward page="PageScope2.jsp"/> </body> PageScopes.jsp将被调用。问题是,上 </html> 述两个属性在PageScope2.jsp中是否仍