是浏览器在运行 jsp。实际上 jsp 是完全不知道浏览器的存在,它只是根据 http
形式的请求,发送 http 形式的响应,如果对面的浏览器能解析 http 形式的响应,
就能显示出页面来,幸运的是目前市面上的浏览器都能解析 http 形式的响应,
所以我们只要制造符合标准的数据,当作响应发送出去就行了。
其实一切都是这么简单,只要能了解它的运行原理,我们就可以在自己的舞台上
大施拳脚,不用为涉及不到的领域胡乱苦恼了。
下一章,我们就可以研究如何使用 jsp 了。
18 / 148
…………………………………………………………Page 19……………………………………………………………
第 2 章 让 jsp 说 hello
注意
为了保证循序渐进的学习状态,我们这里无可奈何的使用了一些在正式工作时明
令禁止的代码,请大家在阅读此章务求领会精神,千万不要死记硬背,以防遗憾
终身。
如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章:
第 3 章 请求的跳转与转发。
1。 了解从request 中获得参数的方法。
2。 了解一些 jsp 指令(directive)。
3。 了解中文乱码问题。
2。1。 另一个简单 jsp
上一篇举的例子很单纯,无论谁向服务器发送请求,服务器都只计算当前系统时
间,然后把这个时间制作成http 响应发还给浏览器。
可惜这种单向的响应没办法实现复杂的业务,比如像这样:
客户在这个页面输入自己的名字,然后提交:
服务器会对你说:“你好啊,XXX。”
返回刚才的页面,再输入另外一个名字:
19 / 148
…………………………………………………………Page 20……………………………………………………………
提交以后就变成这样:
呵呵,神奇吧,服务器知道你叫什么名字,而且还会向你问好。
虽然咱们都知道这只是从请求中获得了用户名,加上欢迎信息再发送回浏览器,
但最终用户会感到更亲切。下面就让我们来看一下如何从请求获得参数吧。
首先用户输入页面会是这样的:
username :
这里是一个简单的 form,里面只有一个名叫username 的文本框,点击提交之后
它的值就会提交到后台服务器上的 test。jsp。那么在 jsp 里,咱们如何得到用
户输入的 username 呢?
Hello
呼呼,原来就这么简单,前面的 Hello 是一成不变的,后面紧接包含的 java
代码。
只要是中间的部分就会被当成 java 代码执行,咱们就来看看 jsp 里是通过
什么途径获得请求中的参数吧。
首先是 request,翻译过来就是请求,它被称作 jsp 九大默认对象之一,与 http
请求相关的操作都是通过 request 实现的,你完全可以把它看作是浏览器发送过
来的 http 请求。
请求里就包含了我们需要获得的参数,你想要知道 username 的值吗?好的,只
要调用 getParameter(〃username〃)就可以获得了,你交给 request 一个参数名,
它会返回对应的参数值,因为 http 协议的限制,获得的参数值都是字符串,不
20 / 148
…………………………………………………………Page 21……………………………………………………………
过在参数不存在的时候,也会返回 null,所以一定要记住在使用之前判断是否
为 null,免得频繁出现NullPointerException。
好了,现在我们把得到的参数值输出即可,你可以对语句前面的等号感到疑惑,
它的意思就是把参数值输出到页面上,你也可以使用另一种方法:
Hello
上一种方法可以看作是它的简化形式,请注意如果使用第一种方法,是不需要在
java 代码最后加上分号的,而第二种方法必须加上分号。因为第一种方法是特
殊的简化写法,第二种方法是标准的 java 代码,稍微留意一下就可以区分了。
例子在 lingo…sample/02…01/,将目录复制到 tomcat 的webapp 目录下,启动
tomcat 后可以访问 http://localhost:8080/02…01/进行测试。
2。2。 中文乱码
你有没有发现,我们的例子中没有中文?
并不是我们不想使用中文,那是因为在 jsp 中使用中文是一个历史悠久的大问
题,虽然等你解决了之后会觉得它是那么简单,但对于没经验的新手来说,中文
乱码问题足以搞得他们焦头烂额了。
现在我们就要带领你闯过这道关,消灭掉请求和响应中可能出现的乱码,还中文
英雄本色。
2。2。1。 先解决响应中的乱码
何为响应中的乱码?把页面中的“username”改成“用户名”你就知道了。
所谓响应中的乱码,就是显示页面上的乱码,因为页面数据是从服务器一端放入
响应(response)中,然后发送给浏览器,如果响应中的数据无法被正常解析,
就会出现乱码问题。
为什么英文就没有问题呢?因为在 iso…8859…1,gb2312; utf…8 以及任意一种编
码格式下,英文编码格式都是一样的,每个字符占 8 位,而中文就麻烦了,在
gb2312 下一个中文占 16 位,两字节,而在 utf…8 下一个中文要占 24 位,三字
节。浏览器在不知道确定编码方式的情况下,就会把这些字符从中间截断,再显
21 / 148
…………………………………………………………Page 22……………………………………………………………
示的时候就乱掉了。所以,想要解决乱码问题,就是要告诉浏览器我们到底使用
了什么样的编码方式。
为了获得正常显示的中文,需要注意以下几步:
1。 因为服务器要先从本地读取 jsp 文件,然后经过处理后写入响应,所以我
们首先要知道的就是 jsp 文件的编码格式。从问题的源头着手解决。
在咱们用的 windowxp 下,文件默认的编码格式是 gb2312。
2。 我们要在 http 的响应(response)中添加编码信息,使用如下方式:
这段要放在 jsp 页面的第一行,用来指定响应的类型和编码格式,
contentType 为 text/html 就是 html 内容,charset 表示编码为 gb2312。
这样浏览器就可以从响应中获得编码格式了。
这种的形式叫做 jsp 指令(directive),现在接触到的是page
指令,还有 include 和 taglib 指令,我们会在后面陆续讲到。
3。 还需要在 html 中指定编码格式。
小说推荐
- 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章