JSP隐式对象
3.1新Out对象及常用方法

request
javax.servlet.http.HttpServletR esponse
page
javax.servlet.http.HttpSession session
说明
该对象提供对HTTP请求数据的访问,同时还提供用于加入特定 请求数据的上下文
该对象允许直接访问HttpServletReponse对象,可用来向客户端 输入数据
户端去。 out.clear():清除缓冲区里的数据,但不把数据写到客户端去 out.getRemaining():获取缓冲区中没有被占用的空间的大小。
out对象方法
out.flush():输出缓冲区里的数据。out.flush()方法也会清除缓冲区中的数据。但是 此方法会先将之前缓冲区中的数据输出至客户端,然后再清除缓冲区中的数据。
out.close():关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出。
03
out对象实例
out对象实例
【例1】用out对象输出如下表格。 效果如下:
out对象实例
【例1】 关键代码
<body> <%
%> </body>
out.print("参会人员名单(用out输出表格)"); out.print("<table border='1' width='100%'>"); out.print("<tr><td width='25%'>" + "姓名" + "</td>"); out.print("<td width='15%'>" + "年龄" + "</td>"); out.print("<td width='15%'>" + "性别" + "</td>"); out.print("<td width='45%'>" + "工作单位" + "</td></tr>"); out.print("<tr><td width='25%'>" + "张三" + "</td>"); out.print("<td width='15%'>" + "26" + "</td>"); out.print("<td width='15%'>" + "男" + "</td>"); out.print("<td width='45%'>" + "北京工业大学" + "</td></tr>"); out.print("<tr><td width='25%'>" + "李四" + "</td>");
“jsp内置对象”单元习题

“JSP内置对象”单元习题一、填空题1.JSP 中有9 种内置对象,它们分别是:___________、___________、response 对象、 pageContext 对象、 session对、 applicationt 对象、page 对象、 config 对象和 exception 对象。
2.Request对象可以使用___________方法获取表单提交的信息。
3.客户端向服务器端提交数据的方式通常有两种:一种是___________提交方式;另一种是___________提交方式。
4.在JSP 内置对象中,与请求相关的对象是______________________。
5.___________被封装成接口,它用来向客户端输出内容。
6.Out 对象中用来输出各种类型数据并换行的方法是______________________。
7.Out 对象中用来输出各种类型数据但不换行的方法是______________________。
8.Out 对象中用来输出一个换行符的方法是______________________。
9.Out 对象中用来关闭输出流的方法是______________________。
10.Out 对象中用来输出缓冲区里的数据的方法是______________________。
11.Out 对象中用来清除缓冲区里的数据,并把数据写到客户端的方法是________________。
12.Out 对象中用来清除缓冲区里的数据,但不写到客户端的方法是___________________。
13.Out 对象中用来获得缓冲区大小的方法是______________________。
14.Out 对象中用来获得缓冲区剩余空间大小的方法是______________________。
15.Out 对象中用来判断缓冲区是否自动刷新的方法是______________________。
第12讲_JSP隐含对象(out、request)

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期末试题及答案一、选择题(每题2分,共20分)1. 在JSP中,以下哪个不是JSP内置对象?A. requestB. responseC. sessionD. database答案:D2. JSP页面的默认内容类型是什么?A. text/htmlB. application/xmlC. text/plainD. application/json答案:A3. 以下哪个不是JSP表达式的语法?A. <%= expression %>B. <% expression %>C. <%@ expression %>D. <%! declaration %>答案:C4. 在JSP中,以下哪个标签用于包含其他JSP页面?A. <jsp:include>B. <jsp:forward>C. <jsp:param>D. <jsp:useBean>答案:A5. Servlet是JSP的基础,以下哪个不是Servlet的生命周期方法?A. init()B. service()C. doGet()D. destroy()答案:C6. JSP页面的注释有几种?A. 1种B. 2种C. 3种D. 4种答案:B7. 以下哪个不是JSP的指令标签?A. <%@ page %>B. <%@ include %>C. <%@ taglib %>D. <%@ directive %>答案:D8. 在JSP中,以下哪个不是标准的自定义标签库?A. JSTLB. JSFC. ELD. Struts答案:D9. 在JSP中,以下哪个不是JSP的隐式对象?A. outB. configC. applicationD. response答案:B10. JSP页面的输出编码默认是什么?A. ISO-8859-1B. UTF-8C. GBKD. ASCII答案:A二、判断题(每题1分,共10分)1. JSP页面最终会被转换成Servlet。
JSP经典笔试题目(含答案)

JSP综合测试笔试1)在Java EE中,Servlet是在服务器端运行,以处理客户端请求而做出的响应的程序,下列选项中属于Servlet生命周期阶段的是()A.加载和实例化B.初始化C.服务D.销毁E.以上全部2)在Java EE中的MVC设计模式中,()负责接受客户端的请求数据A.JavaBeanB.JSPC.ServletD.HTML3)过滤器应实现的接口是( )。
A. HttpServletB. HttpFilterC. ServletFilterD. Filter4)开发Java Web应用程序的时候,创建一个Servlet,该Servlet重写了父类的doGet()和doPost()方法,那么其父类可能是()A.RequestDispatcherB.HttpServletResponseC.HttpServletRequestD.HttpServlet5)在Java Web开发中,如果某个数据需要跨多个请求存在,则数据应该存储在()中A.sessionB.pageC.requestD.Response6)在开发Java Web应用程序的时候,HTTP请求消息使用Get或POET方法以便在WEB上传输数据,下列关于GET和POST 方法描述正确的是()A.POST请求的数据在地址栏不可见B.GET请求提交的数据在理论上没有长度限制C.POST请求对发送的数据的长度限制在240——255个字符D.GET请求提交数据更加安全7)在JSP中有EL表达式${10*10 ne 10},结果是( )A.100B. trueC. fasleD. 以上都不对8)JSTL标签的分类以下说法正确的是( )A. 通用标签与迭代标签B. 核心标签与迭代标签C. 核心标签与sql标签D. 以上都不是9)在Java Servlet API中,HttpServletRequest接口的()方法用于返回当前请求相关联的会话,如果没有,返回nullA.getSession() //=gerSession(true)默认为:getSession(true)B.getSession(true)C.getSession(false)D.getSession(null)10)在Java Web开发中,不同的客户端需要共享数据,则数据应该存储在()中A.sessionB.applicationC.requestD.response11)利用三层结构搭建某网上书店系统,设计用户登陆界面,如果你是设计人员,你将在三层结构的()中实现A.模型层B.表示层C.数据访问层D.业务逻辑层12)在Java EE中,()接口定义了getSession()方法A.httpServletB.HttpSessionC.HttpServletRequestD.HttpServletResponse13)JSP标准标签库(JSTL)提供的主要标签库中,其中()可用于操作数据库。
北大青鸟-JSP教程 (7)

Request Session
Application
Bean 在整个应用程序中均可使用
17
ACCP V4.0
<jsp:setProperty>动作
<jsp:setProperty>动作和<jsp:useBean>一起使用,使用 Bean中的setXXX()方法设置JavaBean的简单属性和索 引属性。 <jsp:setProperty>元素各属性含义 name Bean实例的名字,必须是<jsp:useBean>中通过 id属性指定的名字
8
ACCP V4.0
属性的命名约定-续
get/set 命名方式有一个例外。那就是对于 boolean类型的属性,应该使用is/set命名方法, 也可以使用get/set方法 例子:
private boolean married public boolean isMarried() public void setMarried()
value
19
ACCP V4.0
<jsp:getProperty>动作
用来访问一个Bean的属性,并把属性的值转化成 一个String,然后发送到输出流中。如果属性是一 个对象,将调用该对象的toString()方法 <jsp:getProperty>动作元素的属性有name, property和<jsp:setProperty>中的相同
22
ACCP V4.0
<jsp:forward>动作
23
ACCP V4.0
Forward 动作 3-2
创建一个 JSP 页面 使用 forward 动作转发用户的请求 <html> <head> <title> 转发此页面 </title> </head> <body> <jsp:forward page="requestedpage.jsp"/> </body> </html>
jsp测试题及答案

jsp测试题及答案一、单选题(每题2分,共10分)1. JSP页面中,用于声明变量、方法等的指令是:A. `<%@ page %>`B. `<%@ include %>`C. `<%! ... %> `D. `<% ... %>`答案:C2. JSP中,以下哪个对象用于获取客户端请求信息?A. requestB. responseC. sessionD. application答案:A3. 在JSP页面中,以下哪个元素用于包含其他JSP页面?A. `<jsp:forward page="other.jsp" />`B. `<jsp:include page="other.jsp" />`C. `<%@include file="other.jsp"%>`D. `<%@ page import="other.jsp" %>`答案:B4. JSP页面中,以下哪个指令用于设置页面的默认内容类型和编码?A. `<%@ page contentType="text/html; charset=UTF-8" %>`B. `<%@ page import="java.io.*" %>`C. `<%@ page session="true" %>`D. `<%@ page language="java" %>答案:A5. 在JSP中,以下哪个对象用于向客户端发送响应?A. requestB. responseC. sessionD. application答案:B二、多选题(每题3分,共15分)1. JSP页面中,以下哪些指令用于控制页面的属性?A. `<%@ page %>`B. `<%@ include %>`C. `<%@ taglib %>`D. `<%@ page import %>`E. `<%@ page session="true" %>`答案:A, C, D, E2. 在JSP页面中,以下哪些对象是隐式对象?A. requestB. responseC. outD. sessionE. application答案:A, B, C, D, E3. JSP页面中,以下哪些指令用于导入Java类或包?A. `<%@ page import="java.util.*" %>`B. `<%@ page contentType="text/html; charset=UTF-8" %>`C. `<%@ page session="true" %>`D. `<%@ include file="other.jsp" %>`E. `<%@ page language="java" %>`答案:A, E4. 在JSP页面中,以下哪些元素用于条件判断?A. `<% if (condition) { %> ... <% } %>`B. `<%@ if (condition) { %> ... <%@ } %>`C. `<% while (condition) { %> ... <% } %>`D. `<% for (int i = 0; i < 10; i++) { %> ... <% } %>`E. `<%@ for (int i = 0; i < 10; i++) { %> ... <%@ } %>` 答案:A, C, D5. JSP页面中,以下哪些对象用于会话管理?A. requestB. responseC. sessionD. applicationE. out答案:C, D三、简答题(每题5分,共20分)1. 简述JSP页面的生命周期。
隐式对象简介

JSP隐式对象简介一、out对象:在JSP页面中应使用out隐式对象来向客户端发送文本形式的实体内容。
out 对象是通过调用pageContext对象的getOut方法返回的,其作用及用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似,但两者是两种不同类型的对象。
JSP页面中的out隐式对象的类型为JspWriter,它相当于一种带有缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可调整它的缓存大小,甚至关闭它的缓存。
只有向out隐式对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter 对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中: 设置page指令的buffer属性关闭了out对象的缓存功能写入到out对象中的内容充满了out对象的缓冲区整个JSP页面结束JSP页面的out隐式对象中的缓冲区与Servlet引擎提供了缓冲区之间的工作关系如图所示:注:JSP规范禁止在JSP页面中直接调用ServletResponse.getWriter返回PrintWriter对象和调用ServletResponse.getOutputStream返回ServletOutputStream对象。
这是为了避免输出时发生异常。
(具体原因略…)二、pageContext对象:pageContext对象是javax.servlet.jsp.PageContext类的实例对象,它封装了当前JSP 页面的运行信息,它提供了返回JSP页面的其他隐式对象的方法。
pageContext对象是通过调用JspFactory.getPageContext方法返回的,getPageContext方法的完整语法如下:public PageContext getPageContextI(javax.servlet.Servlet servlet, ------代表当前JSP页面所翻译成的Servletjavax.servlet.ServletRequest request, ------当前请求对象javax.servlet.ServletResponse response, -----当前响应对象ng.String errorPageURL, ------错误处理页面boolean needsSession, -------是否创建Session对象int buffer, --------out对象的缓冲区大小boolean autoFlush ------- 缓冲区已满时是否自动刷新)如果一个JSP页面调用一个普通Java类,而这个普通Java类要访问JSP页面中的多个隐式对象,由于pageContext对象封装了其他的隐式对象并提供了返回这些隐式对象的方法,所以在JSP页面中只需要将pageContext对象传递给那个普通Java类,在那个普通Java类中就可以访问和调用其他隐式对象的功能了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jsp的隐式对象和EL的隐式对象学习2009-09-02 21:48JSP共有九大内置对象:(1) HttpSession类的session对象作用:主要用于来分别保存每个用户信息,与请求关联的会话;会话状态维持是Web应用开发者必须面对的问题。
(2) HttpServletRequest类的request对象作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。
(3) HttpServletResponse类的respone对象作用:代表响应对象,主要用于向客户端发送数据(4) JspWriter类的out对象作用:主要用于向客户端输出数据;Out的基类是javax.servlet.jsp.JspWriter(5) ServletContext类的application对象作用:主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.(6) PageContext类的pageContext对象作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。
(7) ServletConfig类的config对象作用:代码片段配置对象,表示Servlet的配置。
(8) Object类的page(相当于this)对象作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。
(9)Exception作用:处理JSP文件执行时发生的错误和异常EL共有11大内置对象:JSP开发人员可以在EL表达式中使用EL隐式对象,而无须任何显式的编码活声明。
隐式对象就是设计用来为 JSP 编程提供方便的,通过隐式对象,用EL编写的代码就可以直接使用JSP页面的一些最常用的地方。
总共有11个隐式对象,这11个隐式对象可以分为5大类:*JSP隐式对象。
*作用域访问隐式对象。
*参数访问隐式对象。
*首部访问隐式对象。
*初始化参数访问隐式对象。
JSP隐式对象类中只有一个EL隐式对象,这就是pageContext隐式对象。
这与同名的JSP隐式对象实际上就是同一个对象。
余下的EL隐式对象都是Java映射(map),他们只是提供了更容易的途径来访问pageContext隐式对象的某些性质。
共有4个作用域隐式对象,分别为pageScope, requestScope, sessionScope和applicationScope. 这些隐式对象都是映射,利用他们可以很容易的访问作用域属性。
例如:附加到request作用域的username属性可以通过EL表达式${ ername}来直接访问。
有两个参数访问隐式对象,可以用来访问HTTP请求参数(表单提交参数),即param和paramValues. param 是一个用于访问单值参数的映射, paramValues则可用于访问可能包含多个值的参数。
接下来的实验会展示这将如何处理。
有3个首部访问隐式对象,可以用于访问HTTP首部,分别是header, headerValues和cookie。
如果想以原始的方式访问HTTP首部或cookie, 这些映射就很有用。
另外还有一个初始化参数访问隐式对象:initParm。
这个映射可以用于访问初始化参数的值,初始化参数的值一般都在web.xml中设置。
其实我的主要目的是为了搞清楚pageContext对象,如下:Jsp中pageContext的作用pageContext 隐含物件对应於javax.servlet.jsp.PageContext型态之物件,,隐含物件都自动的被加入至pageContext中,您可以藉由它来取得与JSP相关的隐含物件对应之Servlet物件,像是getRequest()可以取得ServletRequest, getServletConfig()可以取得ServletConfig,getSession()可以取得HttpSession等等。
提供取得隐含物件对应之Servlet物件并不是pageContext的主要作用,它的主要功能在提供一个单一个介面,以管理各种的公开物件(像是 HttpSession、ServletContext、ServletConfig、ServletRequest、ServletResponse等等),提供一个单一的API来管理属性作用范围等等。
我们之前曾经使用过session的setAttribute()等方法设定一个进程可以共用的属性物件,使用session 设定的属性在同一个进程中可以共用,除了session之外,还有pageContext、 request、application也都可以使用setAttribute()之类的方法(详请查阅API文件)来设定可以共用的属性物件,只不过这四个物件所设定的属性其共用范围各不相同。
使用pageContext所设定的属性物件,其共用范围限於同一个 JSP页面,使用request所设定的属性物件,其在同一个request处理期间可以共用(包括forward给其它JSP页面),session物件所设定的属性物件则限於同一个进程作用期间可以共用,而application物件所设定的属性,则在整个Web应用程式中的JSP页面都可以共用。
以下举application为例,您可以将一些物件当作属性设定给application,则另一个JSP页面就可以在适当的时候取得这个属性物件,例如:<%String attr = "字串物件";out.println("设定属性给application:" + attr);application.setAttribute("str", attr);%>我们先连上这个JSP网页以执行属性设定,然后我们再连上这个JSP网页:<%String attr = (String) application.getAttribute("str");out.println("取得application属性:" + attr);%>由於我们之前已经将字串物件设定在application中作为属性,所以我们可以在上面这个页面中取得之前设定的物件,同样的道理,您也可以用相同的方式设定属性给pageContext、request、session等物件,只要在允许的作用范围中,就可以取得所设定的属性物件。
您可以使用pageContext物件来设定属性,并指定属性的作用范围,而不用使用个别的pageContext、request、session、 application来进行设定,这就是之前所提的,以pageContext提供一个单一的API 来管理属性作用范围,您可以使用以下的方法来进行设定:getAttribute(String name, int scope)setAttribute(String name, Object value, int scope)removeAttribute(String name, int scope)其中的scope可以使用以下的常数来进行指定:pageContext.PAGE_SCOPE、pageContext.REQUEST_SCOPE、pageContext.SESSION_SCOPE、pageContext.APPLICATION_SCOPE,常数的名称已经直接指明属性范围,我们可以将上面的两个JSP页面改为以下的形式:<%String attr = "字串物件";out.println("设定属性给application:" + attr);pageContext.setAttribute("str", attr, pageContext.APPLICATION_SCOPE);%><%String attr = (String) pageContext.getAttribute("str", pageContext.APPLICATION_SCOPE); out.println("取得application属性:" + attr);%>JSP隐式对象和EL隐式对象2008-07-04 16:49:59JSP隐式对象:首先要了解什么是JSP隐式对象,它是Web容器加载的一组类的实例,它不像一般的Java对象那样需要“new”去获取实例,而是直接就可以在JSP页面中使用的对象。
JSP提供的隐式对象分为4个主要类别,如下介绍:1、输入和输出对象:request、response和out对象。
2、作用域通讯对象:session、application、pagecontext。
3、servlet对象:config和page。
4、错误对象:exception。
-------------------------------------------EL 隐式对象的标识符不要将这些对象与JSP 隐式对象(一共只有九个)混淆,其中只有一个对象是它们所共有的。
EL 隐式对象类别标识符描述JSP pageContext PageContext 实例对应于当前页面的处理作用域 pageScope 与页面作用域属性的名称和值相关联的Map 类requestScope 与请求作用域属性的名称和值相关联的Map 类sessionScope 与会话作用域属性的名称和值相关联的Map 类applicationScope 与应用程序作用域属性的名称和值相关联的Map 类请求参数param 按名称存储请求参数的主要值的Map 类paramValues 将请求参数的所有值作为String 数组存储的Map 类请求头header 按名称存储请求头主要值的Map 类headerValues 将请求头的所有值作为String 数组存储的Map 类Cookie cookie 按名称存储请求附带的cookie 的Map 类初始化参数initParam 按名称存储Web 应用程序上下文初始化参数的Map 类尽管JSP 和EL 隐式对象中只有一个公共对象(pageContext ),但通过EL 也可以访问其它JSP 隐式对象。
原因是pageContext 拥有访问所有其它八个JSP 隐式对象的特性。