title
meta 部分用来指定当前 html 的编码格式,注意这一段要放在head 标签
中,并且放到head 标签的最前面,如果不是最前面 ie 下可能会出现问题,
尤其是在 title 中有中文的情况下。
完成了以上三段检验,我们才能保证输出的 jsp 页面会正常显示中文。
例子在 lingo…sample/02…02/下,正常显示的页面 index。jsp,还留了一个乱码
页面 index_wrong。jsp。
22 / 148
…………………………………………………………Page 23……………………………………………………………
2。2。2。 POST 乱码
先把 form 里加上 method=〃POST〃,让 form 提交的时候使用 POST 方式。
发送请求的时候,使用的编码是 iso…8859…1,意味着只有英文是有效字符,这
个限制是因为当初指定 http 标准的成员都来自英语国家,所以如果使用默认的
方式从请求获取数据,中文一定会全部变成乱码。
如果不信,你可以在刚才的例子里输入中文,然后提交:
提交结果就会变成这样:
怎么解决呢?我们要 jsp 最前面加上一条 java 语句,设置请求的字符编码。
于是,那些乱码都正常了:
例子在 lingo…sample/02…03/下。
2。2。3。 GET 乱码
直接点击超链接,form 的默认提交方式都是GET。
POST 方式下的解决方式还算简单,因为 POST 方式下提交的数据都是以二进制的
方式附加在http请求的body部分发送,只需要在后台指定编码格式就足矣解决。
23 / 148
…………………………………………………………Page 24……………………………………………………………
GET 方式下会将参数直接附加到 url 后面,这部分参数无法使用
request。setCharacterEncoding()处理,结果就是 get 形式的所有中文都变成了
乱码。
这时再也没有简便方法了,只能对这些中文一个一个进行转换,使用 new
String(bytes; 〃gb2312〃)进行转码。
如我们所见,先从 request 中获得参数,接着把字符串按照 iso…8859…1 编码打
散成 byte 数组,然后用 gb2312 编码组合成新字符串,最后打印出来就是正常的
中文了。
写在一起就变成了:
这样做的缺点,是从请求中取得的所有中文都需要转码,非常烦琐。
所以大家千万不要像这样测试,把中
文参数写到超链接中,form 尽量使用 method=〃POST〃,这样只需要设置
request。setCharacterEncoding()就可以应付中文乱码问题。
例子在 lingo…sample/02…04/下。
经历了这些只有非英语体系国家才能遇到的波折之后,我们的 jsp 终于可以接受
请求中的参数,并正常响应了。下面将要进行更复杂的请求响应流程。
24 / 148
…………………………………………………………Page 25……………………………………………………………
第 3 章 请求的跳转与转发
注意
应用广泛,而又没几个人明白的东西上场了,这章就只讨论这一个问题。
如果你确认自己明白下面这个问题,请直接进入下一章:第 4 章 四个作用域。
1。 forward; redirect 的区别。
3。1。 范例
这次用户可以在首页选择自己喜欢的颜色,进入对应的页面。
选择绿色,会进入绿色界面:
选择红色,会进入红色界面:
好的,这里我们会看到四个页面:
1。 index。jsp 中选择颜色,点击按钮后提交到 test。jsp。
2。 test。jsp 取得用户选择的颜色,根据颜色值显示对应的页面。
3。 如果选择了红色,就显示 red。jsp。
4。 如果选择了绿色,就显示 green。jsp。
在这里例子里,index。jsp,red。jsp,green。jsp 中的内容都是一样的,所有的
玄机都在 test。jsp 中。
25 / 148
…………………………………………………………Page 26……………………………………………………………
现在面临的问题是如何在 test。jsp 决定实现 red。jsp 或者 green。jsp,我们可
以在forward 和 redirect 中任选其一。
3。2。 如果用 forward
test。jsp 中需要这样写:
略过取得参数与比较参数值不提,只关注 forward 的部分:
request。getRequestDispatcher(〃red。jsp〃)。forward(request; response);
首先调用 request 的 getRequestDispatcher()方法,获得对应 red。jsp 的转发
器,然后调用 forward()方法执行请求转发。结果用户看到的就是 red。jsp 中的
结果了,一个红色的页面。
这里请大家注意一下浏览器的 url 地址:
选择红色页面时:
选择绿色页面时:
26 / 148
…………………………………………………………Page 27……………………………………………………………
于是,无论转发至 red。jsp 还是 green。jsp,地址栏上显示的都是 test。jsp。
这是为什么呢?通过下面的流程图会让我们容易理解:
1。 浏览器向 test。jsp 发送请求。
小说推荐
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- asp基础入门篇(DOC格式)
- ASP入门与实例-IIS的安装与配置1、运行环境与软件要求Windows 2000 以上(不包括Windows XP Home版)IIS 4.0 以上Microsoft Access 2000Dreamweaver MX2、IIS的安装与配置a.安装IIS若操作系统中还未安装IIS服务器,可打开"控
- 最新章:第23章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- Word2003使用技巧大全(DOC格式)
- Word使用技巧(二)表格使用大全更新时间:2009-11-16 19:32:15 本文共阅读了257次 作者:xushezheng 文章来源:电教组字体大小:大中小一、快速插入表格 拖动“插入表格”能插入的最大表格跟该图标位置、显示分辨率有关。如使用800×600分辨率时最大为18行×28列 二、
- 最新章:第1章
- Excel word ppt office使用技巧大全(DOC格式)
- -Page 1-Excel_word_ppt_使用技巧大全(完全版)Excelwordppt使用技巧大全(2011新版本)I-Page 2-Excel_word_ppt_使用技巧大全(完全版
- 最新章:第338章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章