《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《JavaWeb应用开发技术实用教程》-第3章JSP隐含对象课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb应用开发技术实用教程 JavaWeb 应用 开发 技术 实用教程 JSP 隐含 对象 课件
- 资源描述:
-
1、Java Web开发技术开发技术第第3章章 JSP隐含对象隐含对象10/13/20221第3章 JSP隐含对象l为简化为简化Web页面的开发过程,页面的开发过程,JSP提供了一些提供了一些由容器实现和管理的隐含对象,这些对象在由容器实现和管理的隐含对象,这些对象在JSP页面中可以直接使用,不需要页面中可以直接使用,不需要JSP页面编页面编写者实例化。在写者实例化。在JSP页面中,可以通过存取这页面中,可以通过存取这些隐含对象实现与些隐含对象实现与JSP页面和页面和Servlet环境的环境的相互访问。相互访问。l本章主要内容包括:本章主要内容包括:JSP隐含对象概述和各类隐含对象概述和各类隐含对
2、象的具体说明。隐含对象的具体说明。10/13/202223.1 JSP隐含对象概述lJSP页面的隐含对象就是在JSP页面中不用声明就可以使用的对象。隐含对象是JSP引擎自动创建的Java类实例,它们能与Servlet环境交互。隐含对象可以实现很多功能,如从客户端获得数据、向客户端发回数据、控制传输数据的有效域和异常处理等。如:10/13/20223隐含对象功能l不必使用表达式,直接存取out对象来打印一些东西到客户端:l不必直接传送参数,可以借助请求对象来取得客户端输入的参数值:l完成页面的重定向:l在错误页面中显示出错信息:l等等10/13/20224JSP中的中的9种隐含对象种隐含对象与输
3、入/输出有关 与属性作用域有关 与Servlet 相关 与错误处理有关 10/13/202253.2与输入/输出有关的隐含对象l 3.2.1 request对象l 3.2.2 response对象l 3.2.3 out对象10/13/202263.2.1 request对象l在JSP页面中,隐含对象request代表的是来自客户端的请求,通过它可以查看请求参数、请求类型(GET,POST,HEAD等)以及请求的HTTP头(Cookie,Referer等)客户端信息,它是实现 javax.servlet.HttpServletRequest 接口的类的一个实例。lrequest 对象的方法有很多
4、,从功能角度可以将这些方法分为4类:10/13/202271取得请求参数的方法取得请求参数的方法 10/13/202282.取得请求取得请求HTTP 头的方法头的方法 10/13/202293储存和取得属性方法储存和取得属性方法 10/13/2022104其他的方法其他的方法 10/13/2022114其他的方法(续)其他的方法(续)10/13/202212request比较重要的方法比较重要的方法 l getParameter()l getParameterNames()l getParameterValues()l getHeader()记住噢10/13/2022133.2.1.1.获得客
5、户端提交的信息获得客户端提交的信息l例exa3_1.jsp:一个html文档exa3_1.jsp提交一个表单给tree.jsp页面,tree.jsp通过request.getParameter()接收表单中的客户输入,并将有关信息送回客户端。10/13/202214获得客户端提交的信息(续)获得客户端提交的信息(续)文本框提交的用户名为:客户端提交的按钮的名字为:exa3_1.jsp tree.jsp 1.运行2.调用3.结果10/13/2022153.2.1.2.处理中文信息l在例exa3_1.jsp中输入中文时将不能正确显示,如图所示:这就引发如何处理客户端提交的中文问题。JSP页面的汉字
6、问题主要指两方面:JSP页面中的汉字问题和表单提交的汉字问题。10/13/202216(1)JSP页面的汉字问题页面的汉字问题l对于JSP页面的汉字问题,需要在JSP中使用page指令告诉客户端汉字的编码方式:。在没有特别指示下,浏览器无法正确显示汉字,每个要显示汉字的JSP页面都应该包含该语句。10/13/202217(2)表单提交的汉字问题)表单提交的汉字问题l客户端和服务器交互过程中,在客户端和服务器用的是GB2312对汉字编码,而HTTP传输用ISO_8859_1编码,因此,不仅服务器端必须用指令指示客户端汉字的显示编码,同时在服务器端接收到客户端数据时需要将编码转换为GB2312后进
7、行处理,方法是:或 其中tt为表单提交的含有中文的变量10/13/202218改进后的改进后的tree.jsp l我们只须在tree.jsp中加入中文处理的相关语句,中文就能正确显示了,代码如下:文本框提交的用户名为:%String extContent=request.getParameter(boy);10/13/2022193.2.1.3.避免空指针异常l例如一表单向JSP页面提交一个正数,然后计算这个正数的平方根,JSP中有这么一个语句:String textContent=request.getParameter(“num”),其中num代表表单提交的正数,要注意由于JSP引擎在运行
8、这个JSP页面时,客户端还没有提交数据,textContent也还没有创建,而JSP页面中的number=Double.parseDouble(textContent)语句需要使用textContent,此时textContent对象为null,Java解释器会提示出现空指针异常NullPointerException。为了避免使用空对象,在JSP页面中使用了如下代码:if(textContent=null)textContent=100;10/13/2022203.2.1.4.其它常用方法lgetServletPath()lgetContentLength()lgetMethod()lget
9、Header()lgetProtocol()10/13/2022213.2.1.5.获取HTML表单中的各种数据l由于客户端经常使用表单提交数据,本节通过例子来说明表单中各种提交手段的用法。l表单的一般格式为:表单中的标记(数据提交的手段)10/13/202222表单中各种提交手段表单中各种提交手段(1)l下面例text.jsp表单的输入方式是文本框和口令,,运行结果如图3-8所示。text.jsp关键代码:表单 用户登录 用户名:图3-8密码:10/13/202223表单中各种提交手段表单中各种提交手段(2)l下面例子用单选按钮实现网上测试 radio.jsp关键代码:answer.jsp关
10、键代码:p诗人李清照是中国历史上哪个朝代的人?宋朝唐朝明朝清朝史记的作者是谁?曹雪芹罗贯中李白司马迁您的了分图3-9 radio.jsp的输出结果10/13/202224表单中各种提交手段表单中各种提交手段(3)l下面例子说明滚动列表使用方式:select.jsp关键代码:选择计算和的方式 计算1到n的和 计算1到n的平方和 计算1到n的立方和请选择n的值 n=10 n=20 n=30 n=40 n=50 n=100sum.jsp关键代码:%int sum=0;String s1=request.getParameter(girl);String s2=request.getParameter
11、(boy);int n=Integer.parseInt(s2);if(s1.equals(1)for(int i=1;i=n;i+)sum+=i;else if(s1.equals(2)for(int i=1;i=n;i+)sum+=i*i;else for(int i=1;i您的求和结果是10/13/2022253.2.1.6.表格l表格由和标记定义。一般格式为:单元格中的数据 单元格中的数据 10/13/202226表格应用举例l下面例tableform.jsp是表单使用,运行结果如图所示。tableform.jsp关键代码:杜甫是哪个朝代的人?:宋朝 唐朝 请在右边表格中输入数据:图
12、3-12 tableform.jsp 运行结果 10/13/2022273.2.2 response对象l当客户访问一个服务器的页面时,会提交一个HTTP请求,服务器接到请求时会返回HTTP响应。响应是实现 javax.servlet.HttpServletResponse接口的类的一个实例。response对象代表的是对客户端的响应,可以通过response对象来组织发送到客户端的数据。response对象的方法也有很多,下面的几个表列出了response对象的主要方法 :10/13/202228设定表头的方法设定表头的方法 10/13/202229设定响应状态码的方法设定响应状态码的方法
13、10/13/202230用来用来URL 重写的方法重写的方法 10/13/202231其它方法其它方法 10/13/202232重要!重要!lresponse对象中使用较多的方法是:lsetContentType()lsendRedirect()lsetHeader()记住噢10/13/2022333.2.2.1.动态设置MIME类型l在page指令中的contentType属性用来指定response对象响应客户端请求的MIME(Multipurpose Internet Mail Extension protocol,多用途网际邮件扩充协议)类型。ContentType属性值和MIME类型
14、的主要对应关系如下表所示:10/13/202234contentType属性和属性和MIME类型的对应关系类型的对应关系 page指令只能为contentType指定一个值,如果想动态地改变这个属性的值来以各种不同的方式做出响应,就要使用response对象的setContentType()方法改变contentType的值。一旦这个属性值被改变,服务器就将按照新的MIME类型做出响应。参考example3-11.jsp。10/13/2022353.2.2.2.response对象的http头lresponse对象可以使用addHeader()和setHeader()方法动态添加和修改相应头的
15、值,并将这些头发送给客户端。下面例example3_12.jsp中,response对象添加一个头refresh,使客户端在显示该页面时,每5秒钟刷新一次。运行结果如图:example3_12.jsp关键代码:现在的时间是:图 3-15 example3_12.jsp 运 行 结 果 10/13/2022363.2.2.3.response重定向l下面例中,客户填写表单,并提交给tree4.jsp页面。如果表单填写不完整,tree4.jsp会重新定向到填写页面,否则显示欢迎字样,运行结果如图:tree4.jsp关键代码:10/13/2022373.2.2.4.response的状态行l当服务器
16、响应客户端请求时,它发送的首行被称为状态行。状态行包括3位数字的状态码和对状态码的简单描述。其中,1xx主要是试验性质的;2xx表示请求成功;3xx表示在请求在满足之前应进一步采取的行动;4xx表示服务器无法满足要求;5xx服务器出现错误。具体可参考书中表3-11状态码表。10/13/2022383.2.3 out对象lout对象代表了向客户端发送数据的对象,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的。可以通过out对象直接向客户端写一个由程序动态生成HTML文件。它是javax.servlet.jsp.JspWriter类的一个实例。JSP允许通过page指令的buffe
展开阅读全文