《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件

PPT
  • 阅读 43 次
  • 下载 0 次
  • 页数 72 页
  • 大小 656.059 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件
可在后台配置第一页与第二页中间广告代码
《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件
可在后台配置第二页与第三页中间广告代码
《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件
可在后台配置第三页与第四页中间广告代码
《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件
《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 72
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件.ppt,共(72)页,656.059 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-45108.html

以下为本文档部分文字说明:

2022/11/241JavaWeb开发技术第3章JSP隐含对象2022/11/24JavaWeb开发技术2第3章JSP隐含对象为简化Web页面的开发过程,JSP提供了一些由容器实现和管理的隐含对象,这些对象在JSP页面中可以直接使用,不需要JSP页面编写者实例化。在JSP页面中,可以通过存

取这些隐含对象实现与JSP页面和Servlet环境的相互访问。本章主要内容包括:JSP隐含对象概述和各类隐含对象的具体说明。2022/11/24JavaWeb开发技术33.1JSP隐含对象概述JSP页面的隐含对象就是在JSP页面

中不用声明就可以使用的对象。隐含对象是JSP引擎自动创建的Java类实例,它们能与Servlet环境交互。隐含对象可以实现很多功能,如从客户端获得数据、向客户端发回数据、控制传输数据的有效域和异常处理等。如:2022/11/24J

avaWeb开发技术4隐含对象功能不必使用表达式,直接存取out对象来打印一些东西到客户端:<%out.println("Hello");%>不必直接传送参数,可以借助请求对象来取得客户端输入的参数值:<%Stringname=request.getParamete

r("name");%>完成页面的重定向:<%response.sendRedirect(“/hello.jsp”);%>在错误页面中显示出错信息:<%Stringst=exception.getMessage();%>等等2022/

11/24JavaWeb开发技术5JSP中的9种隐含对象隐含对象所属的类说明requestjavax.servlet.http.HttpServletRequest客户端的请求信息responsejavax.servlet.http.Ht

tpServletResponse网页传回客户端的响应outjavax.servlet.jsp.JSPWriter向客户端浏览器输出数据的数据流sessionjavax.servlet.http.HttpSession与请求有关的会话applicationjavax.servlet

.ServletContext提供全局的数据,一旦创建就保持到服务器关闭pageContextjavax.servlet.jsp.PageContextJSP页面的上下文,用于访问页面属性pagejava.l

ang.Object同Java中的this,即JSP页面本身configjavax.servlet.servletConfigServlet的配置对象exceptionjava.lang.Throwable针对错误网页,捕捉一般网页中未捕捉的异常与输入/输出有关与属性作用域有关与Servlet

相关与错误处理有关2022/11/24JavaWeb开发技术63.2与输入/输出有关的隐含对象3.2.1request对象3.2.2response对象3.2.3out对象2022/11/24JavaWeb开发技术73.2.1request对象在JSP页面中,隐含对象requ

est代表的是来自客户端的请求,通过它可以查看请求参数、请求类型(GET,POST,HEAD等)以及请求的HTTP头(Cookie,Referer等)客户端信息,它是实现javax.servlet.HttpServletRequest接口的类的一个实例。reques

t对象的方法有很多,从功能角度可以将这些方法分为4类:2022/11/24JavaWeb开发技术81.取得请求参数的方法方法说明StringgetParameter(Stringname)取得name的参数值EnumerationgetParameterNames()取得所有

的参数名称String[]getParameterValues(Stringname)取得所有name的参数值MapgetParameterMap()取得一个参数的Map2022/11/24JavaWeb开发技术92.取得请求HTTP头的方法方法说明StringgetHeader(Stringna

me)取得name的头的值EnumerationgetHeaderNames()取得所有的头名称EnumerationgetHeaders(Stringname)取得所有名称为name的头的值intgetIntHeader(Str

ingname)取得name头的整数类型值longgetDateHeader(Stringname)取得name头的日期类型值Cookie[]getCookies()取得与请求有关的cookies2022/11

/24JavaWeb开发技术103.储存和取得属性方法方法说明ObjectgetAttribute(Stringname)取得request对象中的name属性值voidsetAttribute(Stringname,Objecto)设定名字

为name的属性值为ovoidremoveAttribute(Stringname)取消request对象中的name属性EnumerationgetAttributeNames()返回request对象所有属性的名字2022/11/24JavaWeb开发技术114.其

他的方法方法说明StringgetContentType()取得请求数据类型intgetContentLength()取得请求数据长度StringgetProtocol()取得请求所用的通信协议和版本StringgetScheme()取得使用的URL类型StringgetRemoteA

ddr()取得发出请求的IP地址StringgetRemoteHost()取得发出请求的完整主机名ServletInputStreamgetInputStream()取得客户端上传数据的数据流String

getQueryString()取得请求的参数字符串,HTTP的方法必须为GET2022/11/24JavaWeb开发技术124.其他的方法(续)StringgetMethod()取得GET或POST等StringBuffergetRe

questUrl()取得请求的URL地址StringgetContextPath()取得Context路径(即站点名称)StringgetRequestedSessionId()取得用户端的SessionIDStringgetRequestURI()取得请求的URL,但是不包括请求的参数字

符串intgetRemotePort()取得客户的主机端口StringgetRemoteUser()取得客户的名称voidsetCharacterEncoding(Stringencoding)设定编码格式,用来解决窗体传递中文的问题2022/11/24JavaWeb开发技术13

request比较重要的方法getParameter()getParameterNames()getParameterValues()getHeader()记住噢2022/11/24JavaWeb开发技术143.2.1.1.获得客

户端提交的信息例exa3_1.jsp:一个html文档exa3_1.jsp提交一个表单给tree.jsp页面,tree.jsp通过request.getParameter()接收表单中的客户输入,并将有关信息送回客户端。2022/11/24JavaWeb开发技术1

5获得客户端提交的信息(续)<%@pagecontentType="text/html;charset=GB2312"%><P>文本框提交的用户名为:<%StringtextContent=request.

getParameter("boy");%><BR><%=textContent%><P>客户端提交的按钮的名字为:<%StringbuttonName=request.getParameter("submit");%><BR><%=buttonName%><%@pagecontentTy

pe="text/html;charset=GB2312"%><FORMaction="tree.jsp"method=postname=form><INPUTtype="text"name="boy"><INPUTTYPE="submit"value="Enter"name="submit"

></FORM>exa3_1.jsptree.jsp1.运行2.调用3.结果2022/11/24JavaWeb开发技术163.2.1.2.处理中文信息在例exa3_1.jsp中输入中文时将不能正确显示,如图所示:这就引发如何处理客户端提交的中文问题。JSP页面的汉字问题

主要指两方面:JSP页面中的汉字问题和表单提交的汉字问题。2022/11/24JavaWeb开发技术17(1)JSP页面的汉字问题对于JSP页面的汉字问题,需要在JSP中使用page指令告诉客户端汉字的编码方式:<%@pagecontentType

="text/html;charset=gb2312"%>。在没有特别指示下,浏览器无法正确显示汉字,每个要显示汉字的JSP页面都应该包含该语句。2022/11/24JavaWeb开发技术18(2)表单提交的汉字问题客户端和服务器交互过程中,在客户端和服务器用的是GB2312对汉字

编码,而HTTP传输用ISO_8859_1编码,因此,不仅服务器端必须用指令<%@pagecontentType=“text/html;charset=gb2312”%>指示客户端汉字的显示编码,同时在服务器端接收

到客户端数据时需要将编码转换为GB2312后进行处理,方法是:<%Stringname=request.getParameter(“tt”);name=newString(name.getBytes("ISO-8859-1"));%>或<%request.setCharact

erEncoding(“gb2312”);Stringname=request.getParameter(“tt”);%>其中tt为表单提交的含有中文的变量2022/11/24JavaWeb开发技术1

9改进后的tree.jsp我们只须在tree.jsp中加入中文处理的相关语句,中文就能正确显示了,代码如下:<%@pagecontentType="text/html;charset=GB2312"%><P>文本框提交的用户名为:<%StringextC

ontent=request.getParameter("boy");<%StringtextContent=request.getParameter("boy");byteb[]=textContent.ge

tBytes("ISO-8859-1");textContent=newString(b);%><BR><%=textContent%>…………2022/11/24JavaWeb开发技术203.2.1.3.避免空指针异常例如一表单向JSP页面提交一个正数,然后计算这个正数的平方根,JSP中有

这么一个语句:StringtextContent=request.getParameter(“num”),其中num代表表单提交的正数,要注意由于JSP引擎在运行这个JSP页面时,客户端还没有提交数据,t

extContent也还没有创建,而JSP页面中的number=Double.parseDouble(textContent)语句需要使用textContent,此时textContent对象为null,Java解释器会提示

出现空指针异常NullPointerException。为了避免使用空对象,在JSP页面中使用了如下代码:if(textContent==null){textContent="100";}2022/11/24JavaWeb开发技术213.2.1.4.其它常用方法getServletPath()

getContentLength()getMethod()getHeader()getProtocol()…………2022/11/24JavaWeb开发技术223.2.1.5.获取HTML表单中的各种数据由于客户端经常使用表单提交数据,本节通过例子来说明表单中各种提交手段的用法。表单的一

般格式为:<formmethod=get|postaction=”信息提交的目标页面“name=”表单名”enctype=“”>表单中的标记(数据提交的手段)</form>2022/11/24JavaWeb开发技术23表单中各

种提交手段(1)下面例text.jsp表单的输入方式是文本框和口令,,运行结果如图3-8所示。text.jsp关键代码:<%@pagecontentType="text/html;charset=gb2312"%><head><ti

tle>表单</title><head><body><formmethod="POST"action=""><palign="center">用户登录<palign="center">用户名:<inputtype=“text”na

me=“User”size=“20”>图3-8密码:<inputtype="password"name="pwd"size="20"></form></body>2022/11/24JavaWeb开发技术24表单

中各种提交手段(2)下面例子用单选按钮实现网上测试radio.jsp关键代码:answer.jsp关键代码:p>诗人李清照是中国历史上哪个朝代的人?<formaction="answer.jsp"method="post"name=form><inputtype

="radio"name="girl"value="a"checked="aa">宋朝<inputtype="radio"name="girl"value="b">唐朝<inputtype="radio"name="girl"value="

c">明朝<inputtype="radio"name="girl"value="d">清朝<br><p>《史记》的作者是谁?<br><inputtype="radio"name="boy"value="a">曹雪芹<inputtyp

e="radio"name="boy"value="b">罗贯中<inputtype="radio"name="boy"value="c">李白<inputtype="radio"name="boy"value="d">司马迁<inputtype="submit"nam

e="submit"value="提交答案"><%intnum=0;Strings1=request.getParameter("girl");Strings2=request.getParameter("boy");if(s1.equals("d"))num++;if(s2.equal

s("d"))num++;%><p>您的了<%=num%>分图3-9radio.jsp的输出结果2022/11/24JavaWeb开发技术25表单中各种提交手段(3)下面例子说明滚动列表使用方式:select.jsp关键代码:<

p>选择计算和的方式<formaction="sum.jsp"method=postname=form><selectname="girl"size=2><optionvalue="1">计算1到n的和<optionvalue="2">计算1到n的平方和<optionvalue="3

">计算1到n的立方和</select><p>请选择n的值<selectname="boy"><optionvalue="10">n=10<optionvalue="20">n=20<optionvalu

e="30">n=30<optionvalue="40">n=40<optionvalue="50">n=50<optionvalue="100">n=100</select><inputtype="submit"name="submit"val

ue="提交您的选择">sum.jsp关键代码:<%intsum=0;Strings1=request.getParameter("girl");Strings2=request.getParameter("boy");intn=Integer.parseInt(s2);if(s1.equals

("1"))for(inti=1;i<=n;i++)sum+=i;else{if(s1.equals("2"))for(inti=1;i<=n;i++)sum+=i*i;elsefor(inti=1;i<=n;i+

+)sum+=i*i*i;}%><p>您的求和结果是<%=sum%>2022/11/24JavaWeb开发技术263.2.1.6.表格表格由<table>和</table>标记定义。一般格式为:<table><TRwidth=“该行的宽

度”border><THwidth=”单元格宽度”Align="对其方式">单元格中的数据</TH>···<TDwidth=”单元格宽度”Align="对其方式">单元格中的数据</TD></TR><table>2022/11/24JavaWeb开发技术27表格应用举例下面例table

form.jsp是表单使用,运行结果如图所示。tableform.jsp关键代码:<Tablealign="left"Border><TR><THwidth=250><FONTsize=1>杜甫是哪个朝代的人?:</TH><TDwidt

h=220><FORMaction="answer.jsp"method=postname=form><INPUTtype="radio"name="R"value="a"><FONTsize=1>宋朝<INPUTtype="radio"nam

e="R"value="b"><FONTsize=1>唐朝<INPUTtype="submit"name="g"value="送出"></FORM></TD></TR><TR><TH><FONTsize=1>请在右边表格中输入数据:</TH><FORM

action="answer.jsp"method=postname=form><TD><INPUTtype="text"name="R"value="a"size=20></TD><TD><INPUTtype="s

ubmit"name="f"value="送出"></TD></Form></TR></Table>图3-12tableform.jsp运行结果2022/11/24JavaWeb开发技术283.2.2response对象当客户访问一个服务器的页面时,会提交一个HTT

P请求,服务器接到请求时会返回HTTP响应。响应是实现javax.servlet.HttpServletResponse接口的类的一个实例。response对象代表的是对客户端的响应,可以通过response对象来组织发送到客户端的数据。response对象的方法也有很多,下面的几个表

列出了response对象的主要方法:2022/11/24JavaWeb开发技术29设定表头的方法方法说明voidaddCookie(Cookiecookie)新增cookievoidaddDateHeader(Stringname,longdate)新增long类型的值到名

字为name的头voidaddHeader(Stringname,Stringvalue)新增String类型的值到名字为name的头voidaddIntHeader(Stringname,intvalue)新增int类型的值到名字为name的头voidse

tDateHeader(Stringname,longdate)指定long类型的值到名字为name的头voidsetHeader(Stringname,Stringvalue)指定String类型的值到名字为name的头voidsetIntHeader(Stringna

me,intvalue)指定int类型的值到名字为name的头booleancontainsHeader(name)检查response对象中是否含有name指定的头2022/11/24JavaWeb开发技术30设

定响应状态码的方法方法说明voidsendError(intsc)传送状态码(statuscode)voidsendError(intsc,Stringmsg)传送状态码和错误信息voidsetStatu

s(intsc)设定状态码2022/11/24JavaWeb开发技术31用来URL重写的方法方法说明StringencodeRedirectURL(Stringurl)对使用sendRedirect()方法的URL予以编码voidsendRedirect(Stringlocation)页

面重定向StringencodeURL(Stringurl)将URL予以编码,回传带SessionID的URL2022/11/24JavaWeb开发技术32其它方法方法说明voidsetContentType(Stringt

ype)设定对客户端响应的MIME类型ServletOutputStreamgetOutputStream()得到返回客户端的输出流StringgetCharacterEncoding()得到字符编码PrintWritergetWriter()得到返

回客户端的打印流2022/11/24JavaWeb开发技术33重要!response对象中使用较多的方法是:setContentType()sendRedirect()setHeader()记住噢2022/11/24JavaWeb开发技术343.2.2.1.动态设置M

IME类型在page指令中的contentType属性用来指定response对象响应客户端请求的MIME(MultipurposeInternetMailExtensionprotocol,多用途网际邮件扩充协议)类型。Co

ntentType属性值和MIME类型的主要对应关系如下表所示:2022/11/24JavaWeb开发技术35contentType属性和MIME类型的对应关系contentType属性值MIME类型说明t

ext/htmlhtmlhtml文档text/plaintxt文本文件application/javaclassjava类文件application/zipzip压缩文件application/pdfpdfpdf文件image/

gifgif图片类型audio/basicau音频类型Application/x-msexcelExcel电子表格Application/mswordWordWord文档page指令只能为contentType指定

一个值,如果想动态地改变这个属性的值来以各种不同的方式做出响应,就要使用response对象的setContentType()方法改变contentType的值。一旦这个属性值被改变,服务器就将按照新的MIME类型做出响应。参考example3-11.jsp

。2022/11/24JavaWeb开发技术363.2.2.2.response对象的http头response对象可以使用addHeader()和setHeader()方法动态添加和修改相应头的值,并将这些头发送给客户端。下面例example3_12.jsp

中,response对象添加一个头refresh,使客户端在显示该页面时,每5秒钟刷新一次。运行结果如图:example3_12.jsp关键代码:<%@pagecontentType="text/html;charset=GB

2312"%><%@pageimport="java.util.*"%><P>现在的时间是:<BR><%out.println(""+newDate());response.setHeader("Refresh",

"5");%>图3-15example3_12.jsp运行结果2022/11/24JavaWeb开发技术373.2.2.3.response重定向下面例中,客户填写表单,并提交给tree4.jsp页面。如果表单填写不完整,tree4.jsp会重新定向到填写页面,否则显示欢迎字样,

运行结果如图:tree4.jsp关键代码:<%Strings=request.getParameter("aa");if(s.equals(""))response.sendRedirect("exa3_13.jsp");else{out.print("欢迎你到本网站");out.print(s

);}%>2022/11/24JavaWeb开发技术383.2.2.4.response的状态行当服务器响应客户端请求时,它发送的首行被称为状态行。状态行包括3位数字的状态码和对状态码的简单描述。其中,1xx主要是试验性质的;2xx表示请求成功;3xx表示在请求在满足之前

应进一步采取的行动;4xx表示服务器无法满足要求;5xx服务器出现错误。具体可参考书中表3-11状态码表。2022/11/24JavaWeb开发技术393.2.3out对象out对象代表了向客户端发送数据的对象,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的。可以通过out对象直

接向客户端写一个由程序动态生成HTML文件。它是javax.servlet.jsp.JspWriter类的一个实例。JSP允许通过page指令的buffer属性调整out对象缓存的大小,甚至允许关闭缓存。2022/11/24JavaWeb开发技术40out对象

重要方法方法说明voidprint()在客户端输出各种数据类型数据voidprintln()在客户端换行输出各种数据类型数据voidflush()清空输出缓冲区voidclose()关闭流booleanisAutoFlush()检查流是否自动清缓冲intge

tBufferSize()得到缓冲区的大小(KB)intgetRemaining()得缓冲区中未用大小(KB)voidclear()清缓冲区2022/11/24JavaWeb开发技术41Out对象举例Out.jsp关键代码:<%

intBufferSize=out.getBufferSize();intAvailable=out.getRemaining();intUsed=BufferSize-Available;%>BufferSize:<%=BufferSize%><br>Available:

<%=Available%><br>Used:<%=Used%>因为在每个页面中都用到out对象,因此在这儿仅举一个例子再展示一下out对象的主要方法。Out.jsp显示目前缓冲区的大小。运行结果如图所示2022/1

1/24JavaWeb开发技术423.3与属性作用域有关的对象3.3.1session对象3.3.2application对象3.3.3pageContext对象2022/11/24JavaWeb开发技术433.3.1session对象HTTP是无状态(sta

teless)协议。客户端向服务器发送一次请求(request),服务器给与响应(response)后连接就关闭了。因此,当下一次连接时,服务器已经没有以前的连接信息了。服务器对每一个客户端请求都没有历史记忆的特点带来了一系列的问题。如在线商店购物时,当我们把商品

加入购物车时,服务器如何才能知道车里原先有些什么?当用户从选择商品的页面转到输入信用卡号和送达地址的页面,服务器如何才能记住用户买了些什么?这个问题一般有三种解决方法:2022/11/24JavaWeb开发技术44解决方法:Cookie:

利用Cookie对象来存储有关购物会话的信息,后继的各个连接可以查看当前Cookie,提取有关该会话的完整信息。重写URL:把一些标识会话的数据附加到每个URL的后面,服务器能够把该会话标识和它所保存的会话数据关联起来。隐藏表单域:通过表单的隐藏域维持会话

HttpSessionAPI:Servlet提供的一种与众不同的方案。2022/11/24JavaWeb开发技术45HttpSessionAPIHttpSessionAPI是一个基于Cookie或者URL重写机制的高级会话状态跟踪接口。如果浏览器支持

Cookie,则使用Cookie;如果浏览器不支持Cookie或者Cookie功能被关闭,则自动使用URL重写方法。Servlet开发者无需关心细节问题,也无需直接处理Cookie或附加到URL后面的信息。2022/

11/24JavaWeb开发技术46什么是会话(session)session对象是javax.servlet.http.HttpSession类的一个实例,session对象使同一用户在访问Web站点时多个页面间共享信息。一个客户访问服务器时,可能会在这个服务器的几

个页面之间反复连接,反复刷新一个页面或不断向一个页面提交信息等。服务器完全可以通过session对象知道这是同一个客户。从一个客户打开浏览器连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。2022/11/24JavaWeb开发技术47se

ssion对象的主要方法方法说明voidsetAttribute(Objectkey,Objectvalue)在session对象中保存数据,键为key,值为valueObjectgetAttribute(Objectkey)查看session对象中键key所保存数据值Enumerati

ongetValueNames()得到session对象中所有属性的名字的枚举StringgetId()返回会话的唯一标识voidinvalidate()使session对象失效,保存其中的数据丢失booleanisNew()检测当前的session对象是否为新longgetCreation

Time()返回建立会话的以毫秒计的时间longgetLastAccessedTime()返回客户最后一次发送请求的以毫秒计的时间intgetMaxInactiveInterval()返回以秒计的最大不活动时间间隔,即如果客户请求之间的间隔不超过该值会话有效vo

idsetMaxInactiveInterval(intinterval)设定以秒计的session不活动的最大时间间隔2022/11/24JavaWeb开发技术483.3.1.1.session对象的ID标识客户首次访问服务器上的JSP页面时,JSP引擎产生session对象,并分配给它一

个String类型的ID,并将其发送到客户端存入Cookie中,这样session对象和客户端之间建立了一一对应关系,客户在该服务器不同网页间转换或从其他服务器回到该服务器时,不分配给客户新的session,直到客户关闭浏览器,分配给客户的s

ession对象被取消。2022/11/24JavaWeb开发技术49Session与ID的一一对应关系下面例中,客户在三个页面id1.jsp、id2.jsp和id3.jsp之间进行链接,只要不关闭浏览器,三个页面的session对象完全相同,这可以从三个页面中得到的sessionID看到。

代码如下,运行结果单击如图id1.jsp关键代码:<%Strings=session.getId();%><P>您在id1页面的session对象的ID是:<%=s%><p>单击超连接,可到id2页面<ahr

ef="id2.jsp"><br>欢迎到id2页面来。</a>id2.jsp关键代码:<%Stringsid=session.getId();%><p>您在id2页面中的id号为:<%=sid%><p>单击超连接,可到i

d3页面<ahref="id3.jsp"><br>欢迎到id3页面来。</a>id3.jsp关键代码:<%String=session.getId();%><P>您在id3页面中的session对象的ID是:<%=s%

><P>点击超链接,连接到id1页面。<AHREF="id1.jsp"><BR>欢迎到id1页面来。</A>2022/11/24JavaWeb开发技术503.3.1.2.session对象和URL重写上面例子是在客户端支持Cook

ie基础上的。如果客户端不支持Cookie,服务器无法将sessionID写到客户端。服务器无法识别同一个客户端。解决该问题的有效方法是URL重写技术。改进后id1_1.jsp关键代码:<%Stringsid=session.getId();Stringstr=respo

nse.encodeURL("id2_1.jsp");%><p>在id1页面中的id号为:<%=sid%><br><p>单击超连接,可到id2页面<ahref="<%=str%>"><br>欢迎到id2_1页面来。</a>id2_1.jsp和id3_1.jsp在相同位置做相应

更改即可。2022/11/24JavaWeb开发技术513.3.1.3.在会话对象中保存数据保存和获得session对象中的数据是JSP页面常做的工作,需要使用getAttribute()和setAttribute()方法。例子simplesession.jsp在session对象中保存数据

numVisits,这样服务器可以告诉客户他访问该页面一共多少次,只要客户不关闭浏览器。刷新6次后运行结果如图3-20所示。图3-20例:example3_17.jsp,Login.jsp,Member.jsp2022/11/24Java

Web开发技术523.3.1.4.session对象的生存时间例example3_18.jsp是一个猜数字游戏图3-24example3_18.jsp运行结果2022/11/24JavaWeb开发技术533.3.1.5.session对象的新与旧前面已经讲到,会话有生存期,一般来说,

下列情况会使会话结束:由于网络故障套接字删除、关闭浏览器、服务器关闭重起、会话超时和主动撤销会话。在第二章已经实现了计数器功能,显示客户是访问本网站的第多少位客户。但那时客户不断刷新页面时,计数器的数目在增加,这是不正确的。下面的例example3_19.jsp解决了这个问题,对第二章的例

子进行改进。2022/11/24JavaWeb开发技术543.3.2application对象pplication对象负责提供应用程序在服务器中运行时的一些全局信息。服务器启动时就创建一个application对象,客户在该服务器的各个页面之

间链接时,application对象都是同一个,直到服务器关闭。表3-14列出了application对象的主要方法2022/11/24JavaWeb开发技术553.3.2.1.application对象的常用方法方法说明StringGetServerInfo()获得服务器信息intgetMaj

orVersion()返回ServletAPI的主要版本intgetMiniVersion()返回ServletAPI的次要版本StringgetMimeType()获得指定文件的MIME类型StringgetRealPath(path)将path转成文件系统路径名Servlet

ContextgetContext(Stringurl)得到url的ServletContextStringgetResource(path)返回指定路径的urlInputStreamgetResourceAsStream(path)获得指定文件的输入流Re

questDispatchergetRequestDispatcher(path)获得请求分发器voidlog(message)日志中写消息voidlog(message,exception)/日志中写

消息和异常的堆栈跟踪ObjectgetAttribute(Objectkey)获得application对象中指定属性的值voidsetAttribute(Objectkey,Objectvalue)设定application对象

中指定属性的值EnumerationgetAttributeNames()得到application对象中所有属性的名字的枚举例:application.jsp,setAttribute.jsp,getAttribute.jsp,example3_20.jsp202

2/11/24JavaWeb开发技术563.3.2.2.用application对象制作留言板在下例中,客户在submit.jsp中输入姓名、留言标题和留言内容。这些信息提交给messagePane

.jsp。该页面将客户信息存入向量,并将向量存放在application对象中。当查看留言板时,showMessage.jsp负责从application对象中取出向量,并遍历向量显示其中的所有留言。代码详见:submit.jsp,messagePane.

jsp,showMessage.jsp2022/11/24JavaWeb开发技术573.3.3pageContext对象pageContext对象主要用来管理页面的属性,描述JSP文档的运行环境。它是页面中对象功能的最大集成者,提供对所有其他隐含对象及其属性的访问。pag

eContext对象的方法详见表3-15和表3-16例scopeexample1.jsp和scopeexample2.jsp2022/11/24JavaWeb开发技术583.4与Servlet有关的隐含对象

与Servlet有关的隐含对象有两个:page和config。page对象表示Servlet本身;config对象则是存放Servlet的初始参数值。2022/11/24JavaWeb开发技术593.4.1page对

象它是this的同义词,表示JSP页面本身,是Servlet类的一个实例,就是转换后的Servlet类,可以调用Servlet中的任何方法。它实现了javax.servlet.jsp.HttpJspPage接口。当前

page对象用处不大。下面举一个简单例子PageInfo.jsp,运行结果如图3-29所示。图3-29PageInfo.jsp运行结果2022/11/24JavaWeb开发技术603.4.2config对象conf

ig对象是javax.servlet.servletConfig接口的实例,存储Servlet配置对象。其重要方法如下表所示。方法说明EnumerationgetInitParameterNames()获得servletConfig中的初始化参数名StringgetInitPara

meter(name)获得servletConfig中指定初始化参数的值ServletContextgetServletContext()获得Servlet上下文StringgetServletName

()获得Servlet名字2022/11/24JavaWeb开发技术613.5与Error有关的隐含对象这类的隐含对象只有一个成员:exception对象。exception对象代表了JSP文件运行时所产生的异常对象,目的是在JSP内处理错误。此对象不能在一般JSP文件中直接使用,

而只能在使用了<%@pageisErrorPage=“true”%>的JSP文件中使用。例:dividedexample.jsp2022/11/24JavaWeb开发技术623.6小结本章介绍了JSP页面中使用

的主要隐含对象。它们是:request、response、out、session、application、pageContext、config、page、exception。正是由于这些隐含对象,你可

以进入JSP页面的代码段,用不着深入了解太多的ServletAPI细节。从本质上讲,JSP的这些隐含对象其实都是由特定的Java类所产生的,在服务器运行时根据情况自动生成,所以如果你有较好的Java基础,可以参考相应的

类说明。2022/11/24JavaWeb开发技术63习题1.编写JSP页面,完成下图功能:2022/11/24JavaWeb开发技术64习题2.编写JSP页面,完成下图功能,提交请求后显示相应的选中项标签:2022/11/24JavaWeb开发技术65习题3.在aa.jsp中有行

代码:<%request.setAttribute(“Co.”,”jb-aptech”);%>在bb.jsp中有行代码:<%out.println((String)request.getAttribute(“Co.”));%>为了使得在bb.js

p中的如上代码可以显示”jb-aptech”,可以使用()发送。A)在aa.jsp中使用<formmethod=postaction=”bb.jsp”>把请求提交到bb.jspB)在aa.jsp中使用<jsp:forwardfile=”bb.jsp”/>把页面重定向到bb.jsp

C)在aa.jsp中使用<%response.sendRedirect(“bb.jsp”);%>把页面重定向到bb.jspD)在aa.jsp中使用<%@includefile=”bb.jsp”%>包含页面bb.jspE)在aa.jsp中使

用<%config.getServletContext().getRequestDisqatcher(“/bb.jsp”).forward(request.response);%>把页面重定向到bb.jsp2022/11/24JavaWeb开发技术66习题4.如果在JSP脚

本中有如下代码:intI=10;//1Stringstr=”jb-aptech”;//2Vectorv=newVector();//3v.add(“jb”);//4v.add(“aptech”);//5session.setA

ttribute(“I”,I);//6session.setAttribute(“str”.str);//7session.setAttribute(“v”,v);//8以下正确的选项是()A)第6、7、8行代码是错误的B)修

正第1到第8行中错误的代码后,使用Stringstr=(String)session.getAttribute(“str”);可以取出属性str的值C)修正第1到第8行中错误的代码以后,使用intx=(int)session.get

Attribute(“I”);此时I的值为10D)修正第1到第8行中错误的代码以后,可以使用Objectv=session.getAttribute(“v”);取得属性v的值2022/11/24JavaWeb开发技术67习题5.下列选项中,(

)可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。A)request.getParameter(name);B)request.getParameter(“name”);C)request.getParameterValues(name);D)request

.getParameterValues(“name”);2022/11/24JavaWeb开发技术68习题6.使用response对象进行重定向时使用的方法为()。A)getAttribute()B)setContentType()C)sendRedirect()D)setAttribute(

)2022/11/24JavaWeb开发技术69习题7.如果把用户名变量UserName放在session对象中,下面语句正确的是()。A)session.setName(UserName)B)session.

setName(“name”,UserName)C)session.setAttribute(UserName)D)session.setAttribute(“name”,UserName)2022/11/24JavaWeb开发技术70习题8.page对象属于

()类的对象。A)输入输出对象B)通信对象C)Servlet对象D)错误对象2022/11/24JavaWeb开发技术71实验三JSP隐含对象的使用略2022/11/24JavaWeb开发技术72本章结束,谢谢大家!休息一会儿

。。。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?