Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧

上传人:E**** 文档编号:89155672 上传时间:2019-05-19 格式:PPT 页数:61 大小:594.01KB
返回 下载 相关 举报
Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧_第1页
第1页 / 共61页
Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧_第2页
第2页 / 共61页
Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧_第3页
第3页 / 共61页
Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧_第4页
第4页 / 共61页
Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧》由会员分享,可在线阅读,更多相关《Java Web应用开发实用教程 教学课件 ppt 作者 龚永罡 电子课件PPT 第9章 JSP开发中的常用技巧(61页珍藏版)》请在金锄头文库上搜索。

1、第9章 JSP开发中的常用技巧,第9章 JSP开发中的常用技巧,9.1 JSP程序的国际化与本地化 9.2中文乱码的问题 9.3错误处理问题 9.4在JSP中动态生成图像 9.5限制表单重复提交 9.6 Web应用的3种数据共享方式 9.7 Web组件的3种关联关系 9.8 3种典型的会话跟踪方法,9.1 JSP程序的国际化与本地化,国际化是指适当地创建代码、应用或系统,从而可以针对不同国家和地区的使用进行定制的行为。 本地化是指适当地调整一个支持国际化的应用,以便用于某个特定地区。,国际化和本地化问题主要涉及以下方面:,将文本翻译为本地语言。 按本地惯例来调整数字的格式,例如调整千位分隔符。

2、 调整使用的货币符号。 遵循本地惯例调整日期格式。 其他调整,如针对本地输入法编辑器进行的调整。,9.1.2语言的国际化,应用程序语言国际化的一个重要基础是Unicode字符标准和字符集。 Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 Java语言的内核采用Unicode系统,意味着JSP页面可以用Unicode编码序列来存储几乎所有书面语言中常用的字符或字符串。Unicode编码的每个字符都占2个字节,用u*来表示,,【例9.1】使用Unicode码输出汉字“中国

3、”。,outChinese.jsp代码如下: test ,9.1.3日期和时间的国际化,利用Java.text包中封装的DateFormat类,可以方便地实现日期和时间的本地格式化,其中提供了以下四个函数: static DateFormat getInstance(); /获取对象实例 static DateFormat getTimeInstance(); /获取时间对象实例 static DateFormat getDateInstance(); /获取日期格式对象实例 static DateFormat getDateTimeInstance(); /获取日期/时间格式对象实例 这四个

4、函数都可以返回符合格式的日期和时间,或者返回日期和时间都符合DateFormat类的日期和时间格式对象。在以上四个函数中,除了第一个即getInstance函数返回的是默认地区和时间外,其余三个都允许指定地区或格式化样式。,【例9.2】日期和时间的国际化。,globalDate.jsp文件代码如下:, Date and Time Example ,9.2中文乱码的问题,所有形式的JSP的中文乱码问题,其根源在于: Web容器默认的字符处理编码是ISO-5889-1,对于需要在浏览器页面上显示中文的JSP程序,如果在程序中没有指定中文的字符集,那么中文将显示为乱码。 所以要显示中文字符在浏览器上

5、,必须要有指定中文的字符集,charset的值可以设置为gb2312,UTF-8,GBK,这三个字符集都包含有中文字符集。,9.2.1基本概念,常见的编码有如下几种: 1ASCII码 以8bit为单位存储,ASCII码0-3l及127为控制符,32至126为可见字符,包括所有英文字母,128-255的ASCII码则没有定义。 2GB2312 以16bit(两字节)为单位存储,其中第一个字节为128-255。系统可以据此加以判断,若第一个字节大于127,则把该字节后紧接着的一个字节结合起来,共两个字节,就形成一个GB2312的中文字码。,3Unicode Unicode可以将世界上几十种文字编码

6、统一在同一种编码机制下,其编码以16bit为单位存储,取值范围是0x0000-0xFFFF。 4ISO-8859-1 或称为Latin-1,ISO是国际标准化组织的简称。ISO-8859-1有时又简称为8859-1 在Unicode所占的值域为0-255。低位为ASCII码扩展到0-255,然后再在高位补上0x00,组成16bit。 5字节和Unicode Java内核是Unicode的,就连class文件也是,但是文件和流的保存方式是使用字节流的。因此Java要对这些字节流进行转化。在Java的基本数据类型中,char是Unicode的,而byte是字节。,9.2.2 JSP页面显示时的中文

7、乱码问题,解决方法:在页面上指定显示该页要使用的字符集为包含中文字符的字符集,如gb2312,GBK等。,【例9.3】页面显示中文乱码问题。,(1)产生乱码的页面showError.jsp中包含中文汉字,但是在文件中并没有指定显示该页要用的字符集,这时,系统将使用默认的字符集ISO-8859-1来显示页面,造成中文汉字显示为乱码。 showError.jsp文件 要解决此问题,只要在文件的page指令中指定字符集为gb2312即可。 文件showCorrect.jsp,showError.jsp文件代码如下:, Chinese Error Example ,文件showCorrect.jsp代

8、码如下:, Chinese Error Example ,9.2.3 JSP页面传递中文参数时的乱码问题,JSP页面之间传递有几种情况: 1. 标签传递 解决方法是:在每个页面都加上语句。 2. 标签 解决方法是:在包含页(被包含页不需要)中加上语句。,3. 一般页面之间传递 有get和post两种传送参数方式,post方式和get方式都需要取参数值时用如下语法: String param_name = new String(request.getParameter(“param_name“).getBytes(“iso-8859-1“),“gb2312“); 这样就可以把iso-8859-1

9、格式的值转化为gb2312格式的值。,【例9.4】读取表单提交的中文参数并显示。,本例解决例5.1中参数传递时的乱码问题。 用户在文件submitPara.html 中输入姓名和电话 文件receivePara.jsp接收用户输入并显示出来,文件submitPara.html代码如:,获取客户提交信息案例 姓名: 电话: ,接收文件receivePara.jsp代码:, 接受用户输入信息并显示 您输入的信息为: 姓名: 电话: ,9.2.4 Servlet处理中文参数时的乱码问题,在实际应用中,经常需要用Servlet来接收和处理表单传递的数据 中文字符串在传递和返回的过程中,如果编码方式不正

10、确,则传入的中文字符和字符串编码无法正确显示和识别。,【例9.5】用Servlet处理中文参数的乱码问题。,将例9.4中用户的输入信息提交到一个Servlet,由Servlet接收用户输入,然后对其中的中文乱码进行处理。 (1)在WEB-INFclassesex9_5目录下建立一个Servlet,创建文件formdeal.java 在命令窗口中通过javac命令编译上述Servlet文件,得到formdeal.class字节码文件。 (2)创建该Servlet的部署描述文件(web.xml),(3)创建用户输入信息页面servletErrorCode.jsp,在此页面中,用户的输入提交到Ser

11、vlet处理 将Servlet中的两行语句“/response.setContentType(“text/html; charset=gbk“);”和“/request.setCharacterEncoding(“gbk“);”的注释去掉,这样可以使中文能够正确显示。,9.2.5 URL传递的中文参数的乱码问题,使用URL传递参数,可以实现客户端的会话跟踪,如果参数中含有中文字符,处理不当就无法正确读取。,【例9.6】URL传递的乱码问题。,本例包含两个文件URLPage.jsp和URLLink.jsp,其中 URLPage.jsp文件中包含了链接到URLLink.jsp的超链接,并通过URL

12、传递中文参数到此页面 URLLink.jsp接收传递的参数并显示。,通过URL接收到的中文参数显示为乱码,解决方法是将语句: String type=request.getParameter(“type“); String guest=request.getParameter(“guest“); String contract_id=request.getParameter(“contract_id“); 替换为如下三条语句: String type=new String(request.getParameter(“type“).getBytes(“ISO8859-1“),“gb2312“);

13、 String guest=new String(request.getParameter(“guest“).getBytes(“ISO8859-1“); String contract_id=new String(request.getParameter(“contract_id“).getBytes(“ISO8859-1“);,9.3错误处理问题,9.3.1异常处理 异常(exception)处理是Java语言中处理程序执行中发生的错误的一种机制,当错误发生时,Java程序会根据错误的情况抛出(throw)一个异常对象,让程序可以根据这个异常对象判断发生了什么错误,然后做适当的处理,使程序

14、能继续正常执行下去。,Java的异常处理是利用try语句紧接着catch或finally语句,在可能发生异常的程序语句块外用try语句包含起来,然后用catch捕捉异常对象,基本语法如下: try catch(exception ex) finally ,至少要包含一个catch或finally,也可以包含多个catch try catch(FileNotFoundException ex) catch(IOException ex) catch(exception ex) finally 如果有多个catch的异常对象时,应当按照继承关系的相反顺序来摆放,如上面例子中的FileNotFoun

15、dException继承自IOException,而IOException继承自Exception。,9.3.2转译错误与客户端请求错误处理,JSP程序的处理过程中可能会发生两种错误: 1. 从JSP程序源文件转译成为Java程序的Servlet Class文件时发生的错误,称之为转译错误。 转译错误可能是JSP文件本身所写标签的语法错误,需要改正程序错误 2. 当客户端请求JSP程序页面时所发生的错误,称之为客户端请求错误。 这类错误可以由JSP程序来进行处理。此时可以在发生异常的程序区域用try语句包含起来,然后用catch捕捉异常对象,在catch语句内对所发生的错误作适当的处理。,9.

16、3.3错误显示页,程序发生异常的时候,只要在page指令中的errorPage属性指定错误信息网页的名称,则当程序发生执行期的错误时,JSP引擎会自动将其导向指定的错误信息网页。例如: 也可以通过产生异常,如throw new Exception(“errorMsg”),这样也会使得JSP程序转向错误信息网页。,在错误信息网页的page编译指令中,将isErrorPage属性设为true 此时可以用exception.getMessage()或exception.toString()取得错误信息字符串,然后将它显示在错误信息网页上。,9.4 在JSP中动态生成图像,在Web应用中,经常需要动态生成图片,比如实时股市行情,各种统计图等等,这种情况下,图片只能在服务器内存中动态生成并发送给用户,然后在浏览器中显示出来。 本质上,服务器返回的仍然是标准的http响应,只不过http头的contentType不是text/HTML,而是imag

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号