|
加入收藏
|
设为首页
|
证书查询
|
首页
|
中心简介
学院简介
中心简介
教学环境
教学模式
课程优势
清华风采
社会形象
大事记
清华声明
|
形象展示
视频下载
|
专业介绍
预科课程
软件工程师
网络工程师
短期课程
职业素养训练
学术专家在线
|
在线学习
net培训
java培训
sql数据库培训
|
证书展示
清华大学证书
工信部证书
学历证书
|
讲师风范
网络专业讲师
软件专业讲师
教务老师
职业规划师
就业指导教师
|
就业指导
网络招聘会
签约流程
战略合作企业
就业心得
就业成果
就业保障体系
面试试题
就业兵法
|
学员社区
学习心得
拓展活动
学生会成员
软件下载
|
班主任群
班主任通知
班主任工作
班主任介绍
班主任心得
|
报名咨询
咨询问题解答
我要报名
清华贴吧
|
就业联盟
免费体验
当前位置:
首页
>>
在线学习
>>
java培训
JSP技术基础知识
繁简对译:[
繁
简
] 字体设置:[
大
中
小
]
2008-09-27 阅读 次
第四章
JSP
技术基础知识
•
JSP
(
Java Server Page
)是
SUN
公司开发的一种服务器端的脚本语言,自从
1999
年推出以来,逐步发展为开发
Web
应用一项重要技术。
JSP
可以嵌套在
HTML
中,而且支持多个操作系统平台,一个用
JSP
开发的
Web
应用系统,不用做什么改动就可以在不同的操作系统中运行。在本章接下来的内容中,首先将简单介绍
JSP
的运行原理和基本语法,然后重点介绍在实际开发过程中技巧和方法。
4.1
JSP
简介
•
JSP
本质上就是把
Java
代码嵌套到
HTML
中,然后经过
JSP
容器的编译执行,可以根据这些动态代码的运行结果生成对应的
HTML
代码,从而可以在客户端的浏览器中正常显示。在这个小节中将介绍
JSP
的运行原理、
JSP
的优点和其运行环境的搭建。
4.1.1
运行原理
•
如果
JSP
页面是第一次被请求运行,服务器的
JSP
编译器会生成
JSP
页面对应的
Java
代码,并且编译成类文件。当服务器再次收到对这个
JSP
页面请求的时候,会判断这个
JSP
页面是否被修改过,如果被修改过就会重新生成
Java
代码并且重新编译,而且服务器中的垃圾回收方法会把没用的类文件删除。如果没有被修改,服务器就会直接调用以前已经编译过的类文件。(具体内容请参照书。)
4.1.2
选择
JSP
的原因
•
在
Web
应用开发中,可供选择的动态页面语言技术有很多,例如
PHP
,
ASP
,
JSP
等,在这些动态页面语言中,
JSP
凭借其自身的优点成为开发人员最喜欢的语言之一。下面列出的几条就是开发人员钟爱
JSP
的重要原因。
4.1.3
环境搭建
•
要运行
JSP
程序,必需为其提供一个
JSP
容器,也就是需要一个
Web
服务器。支持
JSP
的服务器非常多,
Tomcat
、
Resin
、
Weblogic
、
WebSphere
等对
JSP
的支持都非常好,但是由于
Weblogic
和
WebSphere
都是功能非常强大的重量级服务器,而且价格昂贵,对计算机的硬件配置要求也比较高,所以在一般情况下,如果只用到
JSP
的技术,是没有必要选择这两个服务器的。(具体内容请参照书。)
4.2
JSP
基本语法
•
本书的重点内容是介绍基于
JSP
的
Web
开发技术,对于
Java
的语法在此不做详细的介绍,这里所涉及
JSP
语法指的是在
JSP
中所特有的语法规范,在接下来的章节中将假设读者已经了解
Java
的基本语法,只介绍
JSP
的结构、变量声名、表达式、动作、指令等
JSP
的特有语法。如对
Java
语法有疑问的读者可以参考相关语法书籍。
4.3
程序结构
•
JSP
就是把
Java
代码嵌套在
HTML
中,所以
JSP
程序的结构可以分为两大部分:一部分是静态的
HTML
代码;另一部分是动态的
Java
代码和
JSP
自身的标签和指令;当
JSP
页面第一次被请求的时候,服务器的
JSP
编译器会把
JSP
页面编译成对应的
Java
代码,根据动态
Java
代码执行的结果,生成对应的纯
HTML
的字符串返回给浏览器,这样就可以把动态程序的结果展示给用户。(具体内容请参照书。)
4.4
JSP
动作指令
•
在
Web
程序涉及中经常需要用到
JSP
的动作指令,例如在使用
JavaBean
的时候就离不开
userBean
的指令,
JSP
的强大功能和它丰富的动作指令标签是分不开的。在接下来的章节中将对这些指令进行详细的介绍,读者可以仔细体会每个动作的示例程序,在示例程序中掌握这些动作指令的基本用法。
4.4.1
include
动作指令
•
include
动作指令可以在
JSP
页面中动态包含一个文件,这与
include
指令不同,前者可以动态包含一个文件,文件的内容可以是静态的文件也可以是动态的脚本,而且当包含的动态文件被修改的时候
JSP
引擎可以动态对其进行编译更新。而
include
指令仅仅是把一个文件简单的包含在一个
JSP
页面中,从而组合成一个文件,仅仅是简答的组合的作用。其功能没有
include
动作指令强大。(具体内容请参照书。)
4.4.2
forward
动作指令
•
forward
动作指令可以用来控制网页的重定向。即从当前页面跳转到另一个页面。
•
forward
动作的使用方法非常简单,具体使用格式如下。
•
<jsp:forward page="http://www.sohu.com"></jsp:forward>
4.4.3
p
aram
动作指令
•
在上面
forward
动作指令中可以用程序控制页面的跳转,如果需要在跳转的时候同时传递参数,这时候就需要用到
param
动作指令。
param
动作指令的具体使用方法可以参考下面的示例程序。(具体内容请参照书。)
4.4.4
p
lugin
动作指令
•
<jsp:plugin>
元素用于在浏览器中播放或显示一个对象(典型的就是
applet
和
bean),
而这种显示需要在浏览器的
java
插件。当
jsp
文件被编译,送往浏览器时,
<jsp:plugin>
元素将会根据浏览器的版本替换成
<object>
或者
<embed>
元素。
4.4.5
useBean
动作指令
•
useBean
动作指令可以在
JSP
中引用
JavaBean
,这个动作指令在实际开发过程中经常会用到。在第六章
JavaBean
的讲解过程中将对这个动作指令做详细的介绍。在这里我们仅仅知道其基本用法即可,而且在这里不在用示例程序说明。
useBean
的使用格式如下。
•
<jsp:useBean id=" " class=" " scope=" "></jsp:useBean>
•
其中
id
为所用到的
JavaBean
的实例对象名称,
class
是
JavaBean
对应类的包路径,包括包名和类名。
scope
是这个
JavaBean
的有效范围,共有
page
、
request
、
session
、
application
四个值可以选择。
4.4.6
setProperty
动作指令
•
setProperty
一般情况下是和
JavaBean
配合使用的,用来给
JavaBean
的实例对象进行赋值操作,
setProperty
的基本方法有以下两种。
<jsp:setProperty name="JavaBean
的实例名称
”
property="
属性名
" value="
属性值
"/>
•
上面这种方法是
setProperty
动作指令最基本的用法,用来给
JavaBean
实例对象的某一个属性赋值。
•
<jsp:setProperty name="JavaBean
的实例名称
”
property="*" />
•
上面这种
JavaBean
的赋值方法也是经常用到的,
4.4.7
getProperty
动作指令
•
getProperty
一般情况下也是和
JavaBean
配合使用的,用来取出
JavaBean
实例对象的属性值。这个动作指令的基本使用方法如下。
•
<jsp:getProperty name="JavaBean
的实例名称
”
property="
属性名
" value="
属性值
"/>
4.5
JSP
指令
•
JSP
的指令虽然没有动作指令那么丰富,但是其作用却是不容忽视的,例如
page
指令,在设置显示编码、引入类的包路径、设置错误页面等方面都是必不可少的。在接下来的章节中将介绍
JSP
的两个指令标签。
4.5.1
p
age
指令
•
page
指令可以用来定义
JSP
也面的全局属性。例如编码、错误页面等。
page
指令的属性很多,下面来具体介绍它的各个属性。(具体内容请参照书。)
4.5.2
include
指令
•
include
指令可以在当前的
JSP
页面中包含一个文件,从而和当前页面组成一个整体的文件。这中包含仅仅是静态包含。(具体内容请参照书。)
4.6
JSP
内置对象简介
•
JSP
内置对象即无需声名就可以直接使用的对象实例,在实际的开发过程中,比较常用的
JSP
内置对象有
reqest
、
response
、
session
、
out
、
application
等,在接下来的章节中将详细介绍这几个
JSP
内置对象的使用方法。
JSP
其他的几个内置对象在实际的开发中并不十分常用,在这里不做具体介绍。
4.7
request
对象
•
request
对象代表这从用户发送过来的请求,从这个对象中间可以取出客户端用户提交的数据或者是参数。这个对象只有接受用户请求的页面才可以访问。
4.7.1
request
对象使用场合
•
如果要与用户的互动,必须要知道用户的需求,然后根据这个需求生成用户期望看到的结果。这样才能实现与用户的互动。在
Web
应用中,用户的需求就抽象成一个
request
对象,这个对象中间包括用户所有的请求数据,例如通过表单提交的表单数据,或者是通过
URL
等方式传递的参数,这些就是用户的需求。
request
正是用来收集类似这些用户的输入数据和参数。同时,
request
对象中还包括一些服务器的信息,例如端口、真实路径、访问协议等信息,通过
request
对象可以取得服务器的这些参数。
4.7.2
request
对象主要方法
•
request
对象的方法非常多,在这里我们只介绍其中最常用的几种方法,其他方法可以参考相关类库的介绍。(具体内容请参照书。)
4.7.3
request
对象使用示例
•
1
.使用
request
对象取得表单数据
•
request
获取用户数据的一个主要方式就是获取表单数据,(具体内容请参照书。)
4.8
response
对象
•
response
对象是服务器端向客户端返回的数据,从这个对象中间可以取出一部分与服务器互动的数据和信息。只有接受这个对象的页面才可以访问这个对象。
4.8.1
response
对象使用场合
•
既然用户可以对服务器发出请求,服务器就需要对用户的请求做出反应。这里服务器就可以使用
response
对象向用户发送数据。
response
是对应
request
的一个对象。如果需要获取服务器返回的处理信息,就可以对
response
进行操作,同时当服务器需要再客户端进行某些操作的时候也需要用到
response
对象,例如服务器要在客户端生成
Cookies
,那么这时候
response
对象就是一个很好的选择。
4.8.2
response
对象主要方法
•
response
的方法也很多,但是常用的也就其中的几个,下面介绍比较常用的几个方法。
1
.
addCookie
(
Cookie cookie
)这个方法可以添加一个
Cookie
对象,用来保存客户端的用户信息。
•
2
.
containsHeader
(
String name
)这个方法判断指定的头信息是否存在。(具体内容请参照书。)
4.8.3
response
对象使用示例
•
response
的用法很多,在这里我们用
response
来实现一个页面的重定向,
4.9
session
对象
•
session
对象维护着客户端用户和服务器端的状态,从这个对象中间可以取出用户和服务器交互的过程中的数据和信息。这个对象在用户关闭浏览器离开
Web
应用之前一直有效。
4.9.1
session
对象使用场合
•
session
对象中保存的内容是用户与服务器整个交互过程中的信息,如果是想在整个交互的过程中都可以访问到的信息,就可以选择存放在
session
对象中。例如在用户登录的过程中,可以在
session
中记录用户的登录状态,这样用户就不必在每个页面都重新登录,只要用户没有离开当前的
Web
应用系统,就可以一直保存登录的状态。
4.9.2
session
对象主要方法
•
session
所提供的方法并没有前面几个内置对象那么多,但是基本都是非常常用的。
4.9.3
session
对象使用示例
•
在这里我们模拟一个简单的用户登录动作,在这个示例程序中,我们不对提交的登录信息做具体的验证,只要用户名和密码都不为空就可以登录系统,这样处理只是为了方便展示
session
的使用方法,在具体的开发中必须要对登录信息进行验证的。(具体内容请参照书。)
4.10
out
对象
•
这个对象是在
Web
应用开发过程中使用最多的一个对象,其功能就是动态的向
JSP
页面输出字符流,从而把动态的内容转化成
HTML
形式来展示。这个对象在任何
JSP
页面中都可以任意访问。
4.10.1
out
对象使用场合
•
out
对象的功能就是向
JSP
页面输出数据信息。所以当有动态信息要展示给用户的时候就要用到
out
对象。在前面的很多示例中已经多次用到这个对象,读者从中可以很清楚的看到,
out
对象就是用来输入动态内容信息的。
4.10.2
out
对象主要方法
•
在这里只介绍
out
对象最常用的方法。
•
1
.
clear
()
•
这个方法可以清除缓冲区的数据,但是仅仅是清除,并不向用户输出。
•
2
.
clearBuffer
()
•
这个方法可以清除缓冲区的数据,同时把这些数据向用户输出。(具体内容请参照书。)
4.10.3
out
对象使用示例
•
out
对象在前面的示例中已经多次使用到,在这里就不再针对这个对象举例说明。
4.11
application
对象
•
application
对象保存着整个
Web
应用运行期间的全局数据和信息,从
Web
应用开始运行开始,这个对象就会被创建,在整个
Web
应用运行期间可以在任何
JSP
页面中访问这个对象。
4.11.1
a
pplication
对象使用场合
•
application
中保存的信息可以在整个应用的任何地方访问,这个
session
对象类似,但和
session
对象还是有所区别的。只要
Web
应用还在正常运行,
application
对象就可以访问,而
session
对象在用户离开系统就被注销。
4.11.2
a
pplication
对象主要方法
•
下面介绍
application
对象的最常用的主要方法。
•
1
.
getAttribute
(
String name
)
•
2
.
getServerInfo
()
•
3
.
removeAttribute
(
String name
)
•
4
.
setAttribute
(
String name
,
Object o
)
4.11.3
a
pplication
对象使用示例
•
在这里我们要实现一个简单的计数器,这个计数器就是利用
application
对象来储存计数器的值,用来统计服务器开始运行以来的访问量。
4.12
JSP
中文问题完全解决方案
•
对于中文乱码问题
’
Java
中才用的默认编码方式是
Unicode
,而中文的编码方式一般情况是
GB2312,
因为编码格式的不同,导致在中文不能正常显示。在不同的
JDK
版本和不同的应用服务器中的处理方法是不同的。但是其本质上都是一样的,就是把中文字符转化成合适的编码方式,或者是把在显示中文的环境中声名采用
GB2312
的编码。统一编码方案之后自然可以正常显示。
4.12.1
JSP
页面中文乱码
•
在
JSP
页面中,中文显示乱码有两种情况:一种是
HTML
中的中文乱码,另一中是在
JSP
中动态输出的中文乱码。(具体内容请参照书。)
4.12.2
URL
传递参数中文乱码
•
在一般情况下,可以用类似
http://localhost:8080/chapt4/URLCharset.jsp?param='
中文
'
这种形式来传递参数,而且
HTML
在处理表单的时候,当表单的
method
采用
get
方法的时候,传递参数的形式与
URL
传递参数的形式基本一样。(具体内容请参照书。)
4.12.3
表单提交中文乱码
•
对于表单中提交的数据,可以使用
request.getParameter("")
的方法获取。但是当表单中如果出现中文数据的时候就会出现乱码。(具体内容请参照书。)
4.12.4
数据库操作中文乱码
•
在建立数据库的时候,应该选择支持中文的编码格式,最好能和
JSP
页面的编码格式保持一致,这样就可以尽可能减少数据库操作的中文乱码问题。同时在
JDBC
连接数据库的时候可以使用类似下面这种形式的
URL
。
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs;useUnicode=true;characterEncoding=gb2312
4.12.5
Eclipse
开发工具中
JSP
文件中文不能保存
•
在
Eclipse
中,
JSP
文件默认的编码格式为
ISO-8859-1
,所以在
JSP
代码中间如果出现中文就不能保存,
4.12.6
Eclipse
开发工具中中文显示乱码
•
在
Eclipse
中,由于默认的
JSP
编码格式为
ISO-8859-1
,所以当打开由其他编辑器编辑的
JSP
页面就会出现乱码,(具体内容请参照书。)
4.12.7
JSP
下载中文文件名乱码
•
在实现文件下载功能的时候,如果出现中文文件名,如果不进行特殊的处理,下载下来的中文文件名会变成乱码,在下载前,就需要对这个文件名进行处理,然后才能正常显示中文的文件名,
4.13
其他
JSP
开发技巧
•
(具体内容请参照书。)
4.13.1
自定义错误页面
•
在
JSP
中,如果出现代码的错误,就会直接在页面上打印类似
4.13.2
在
MyEclipse
中快速部署项目
•
在
Web
应用开发的过程中,部署项目往往十分麻烦,虽然在后续章节中介绍的
Ant
可以非常方便的完成这个任务,但是
Ant
复杂的操作不适合初学者,在这里我们使用前面推荐的
MyEclipse
这个集成开发工具来部署项目。
MyEclipse
的安装在前面第二章中已经详细介绍,在这里直接开始介绍如何发布
Web
应用项目。要想发布部署一个项目,首要任务就是把
MyEclipse
和服务器
Tomcat
联系起来,
4.13.3
测试配置是否成功
•
下面来测试下配置是否成功(具体内容请参照书。)
4.13.3
在
MyEclipse
中调试
Web
应用程序
•
在
MyEclipse
中,对
JSP
页面进行调试也是非常方便的,如果需要调试
JSP
页面,只需要在
JSP
页面源代码的左侧双击鼠标左键,(具体内容请参照书。)
4.13.4
学习使用日志
Log4j
•
在
JSP Web
开发中,有很多方便的日志工具可供选择,利用这些日志工具可以很方便的对系统中的错误信息进行管理,在这里我们选择使用
Log4j
,
Log4j
是目前
JSP
开发中使用最多的日志工具。
Log4j
按照严重程度给日志风味
5
个等级:
DEBUG
(调试)、
INFO
(提示)、
WARN
(警告)、
ERROR
(错误)、
FATAL
(严重错误)
4.14
小结
•
在本章中,对
JSP
的基本语法和对象等知识进行了系统的介绍,而且对于其中大部分的知识点都给出了具体示例,这些示例在具体的开发过程中都有很大的参考价值,读者可以在这些示例程序的基础上进行尝试,试着修改其中的功能,只有这样才肯定能对其运行原理有更深入的了解和体会,这就是学习程序语言的最基本最有效的方法。
上一篇:Servlet技术基础知识
下一篇:HTML相关技术基础知识
相关文章
全面解读网络管理员职业规划十大疑问
招聘晴雨表 IT业或全面回暖
美国阿米德(天津)信息技术有限公司
ASP.NET MVC和代码隐藏文件
初入职场:关键的头三个月
与SQL Server数据库建立连接
成功率很高的硬盘坏道软修复方法
通知
打印
收藏
关闭