|
加入收藏
|
设为首页
|
证书查询
|
首页
|
中心简介
学院简介
中心简介
教学环境
教学模式
课程优势
清华风采
社会形象
大事记
清华声明
|
形象展示
视频下载
|
专业介绍
预科课程
软件工程师
网络工程师
短期课程
职业素养训练
学术专家在线
|
在线学习
net培训
java培训
sql数据库培训
|
证书展示
清华大学证书
工信部证书
学历证书
|
讲师风范
网络专业讲师
软件专业讲师
教务老师
职业规划师
就业指导教师
|
就业指导
网络招聘会
签约流程
战略合作企业
就业心得
就业成果
就业保障体系
面试试题
就业兵法
|
学员社区
学习心得
拓展活动
学生会成员
软件下载
|
班主任群
班主任通知
班主任工作
班主任介绍
班主任心得
|
报名咨询
咨询问题解答
我要报名
清华贴吧
|
就业联盟
免费体验
当前位置:
首页
>>
在线学习
>>
java培训
Servlet技术基础知识
繁简对译:[
繁
简
] 字体设置:[
大
中
小
]
2008-09-27 阅读 次
第五章
Servlet
技术基础知识
•
Servlet
是一种服务器端的编程语言,是
J2EE
中比较关键的组成部分,
Servlet
技术的推出,扩展了
Java
语言在服务器端开发的功能,巩固了
Java
语言在服务器端开发中的地位,而且现在使用非常广泛的
JSP
技术也是基于
Servlet
的原理,
JSP+JavaBeans+Servlet
成为实现
MVC
模式的一种有效的选择。在本章中将介绍
Servlet
的基础知识,并通过具体的示例介绍
Servlet
的强大功能。
5.1
Servlet
简介
•
Servlet
在本质上就是
Java
类,编写
Servlet
需要遵循
Java
的基本语法,但是与一般
Java
类所不同的是,
Servlet
是只能运行在服务器端的
Java
类,而且必需遵循特殊的规范,在运行的过程中有自己的生命周期,这些特性都是
Servlet
所独有的。另外
Servlet
是和
HTTP
协议是紧密联系的,所以使用
Servlet
几乎可以处理
HTTP
协议各个方面的内容,这也正是
Servlet
收到开发人员青睐的最大原因。
5.1.1
Servlet
的工作原理
•
Servlet
容器环境在
HTTP
通信和
web
服务器平台之间实现了一个抽象层。
Servlet
容器负责把请求传递给
Servlet
,并把结果返回结客户。在使用
Servlet
的过程中,并发访问的问题由
Servlet
容器处理,当多个用户请求同一个
Servlet
的时候,
Servlet
容器负责为每个用户启动一个线程,这些线程的运行和销毁由
Servlet
容器负责,而在传统的
CGI
程序中,是为每一个用户启动一个进程,因此
Servlet
的运行效率就要比
CGI
的高出很多。
5.1.2
Servlet
的生命周期
•
Servlet
是运行在服务器端的程序,所以
Servlet
的运行状态完全由
Servlet
容器维护,一个
Servlet
的生命周期一般有三个过程。
•
1
.初始化
•
2
.提供服务
•
3
.销毁
5.1.3
简单
Servlet
开发配置示例
•
Java Servlet API
包括两个基本的包,
javax.servlet
和
javax.servlet.http
,其中
javax.servlet
提供了用来控制
Servlet
生命周期所需的类和接口,是编写
Servlet
必需要实现的。
javax.servlet.http
提供了处理与
HTTP
相关操作的类和接口,每个
Servlet
必需实现
Servlet
接口,但是在实际的开发中,一般情况都是通过继承
javax.servlet.http.HttpServlet
或者
javax.servlet.GenericServlet
来间接实现
Servlet
接口。
5.1.4
使用
Servlet
实现
MVC
开发模式
•
Java
语言之所以受到开发人员支持,是因为
Java
语言实现科学方便的开发模式,在这些开发模式中,最出色而且应用最广的就是
MVC
模式,对于
MVC
模式的研究由来已久,但是一直没有得到很好的推广和应用,随着
J2EE
技术的成熟,
MVC
逐渐成为了一种常用而且重要的设计模式。
MVC
(
Model-View-Controller
)把应用程序的开发分为三个层面:视图层、控制层、模型层。
5.2
JSP
页面调用
Servlet
的方法
•
在上面
HelloWorld
的示例程序中,我们直接在浏览器中输入具体的地址进行访问,在实际的应用中,不可能让用户在浏览器中直接输入
Servlet
的地址进行访问,一般情况下,可以通过调用
Servlet
进行访问,在这里介绍通过提交表单和超链接两种方式调用
Servlet
。
5.2.1
通过表单提交调用
Servlet
•
在通过提交表单调用
Servlet
的时候,只需要把表单的
action
指向对应的
Servlet
即可,下面是一个简单的表单,通过这个表单可以调用指定的
Servlet
。(具体内容请参照书。)
5.2.2
通过超链接调用
Servlet
•
在上面这个例子中,用户有输入的内容需要提交给服务器,所以需要用表单来调用
Servlet
,但是在没有输入的数据内容需要提交的情况下,使用表单就不是很合理了,在这里介绍
Servlet
的第二种调用方法,直接通过超链接的方式来调用
Servlet
,在这种情况下还可以给
Servlet
传递参数。(具体内容请参照书。)
5.3
Servlet
中的文件操作
•
在
JSP
的开发过程中,经常会遇到需要把相关内容存储为文件的情况,在
JSP
中是用输入输出流进行操作的,在
Servlet
中也可以使用输入输出流实现对文件的读写,同时,使用
Servlet
还可以很方便的实现文件的上传下载。接下来的内容将通过具体的示例展示
Servlet
文件操作的方法。
5.3.1
Servlet
读取文件
•
在这个例子中将要读取一个文本文件的内容,并且在页面上打印文件的内容。
5.3.2
Servlet
写文件
•
Servlet
写文件的处理方法和读取文件的处理方法非常类似,只是把文件输入流换成文件输出流,在下面这个示例程序中,将在指定位置生成文件。(具体内容请参照书。)
5.3.3
Servlet
上传文件
•
文件的上传下载在
Web
开发中会经常遇到,使用基本的
IO
输入输出流当然可以完成这项操作,但是出于对开发的效率和程序运行的效率方面的考虑,在实际的开发过程中一般采用第三方的组件来完成这个上传的功能。在实际开发过程中用的比较多的是
commons-fileupload
组件和
jspSmartUpload
组件,这两个组件都可以很好地完成文件上传的功能,
5.3.4
Servlet
下载文件
•
用
Servlet
下载文件的时候,并不需要第三方组件的帮助,只需要对服务器的响应对象
response
进行简单的设置即可,(具体内容请参照书。)
5.4
Servlet
过滤器
•
在
Web
应用中可以使用过滤器对所有的访问和请求进行统一的处理,
IP
访问限制,用户发送请求的字符编码转换等,在进行具体的业务逻辑处理之前,首先要经过过滤器的统一处理,然后才开始进入真正的逻辑处理阶段。在本节内容中,将介绍过滤器的原理的实际应用。
5.4.1
过滤器的基本原理
•
过滤器的功能就是在服务器和客户中间增加了一个中间层,可以对两者之间的交互进行统一的处理,每一个从客户端提交的请求都需要通过过滤器的处理,然后再进行其他的操作。在实际开发中,过滤器器可以用来对用户进行统一的身份判断、
IP
访问限制,用户发送请求的字符编码转换、对请求和响应进行加密和解密、记录用户登录日志等。当然过滤器的用途不仅仅这些,读者可以根据过滤器的实现原理,思考过滤器更多的用途。
5.4.2
IP
访问
filter
•
在实际的应用中,可能会遇到这样的情况,需要对某些
IP
进行访问限制,不让非法的
IP
访问应用系统,这个时候就需要用到过滤器进行限制,当一个用户发出访问请求的时候,首先通过过滤器进行判断,如果用户的
IP
地址被限制,就禁止访问,只有合法的
IP
才可以继续访问。(具体内容请参照书。)
5.4.3
转换字符编码
filter
•
在
Java
语言中,默认的编码方式是
ISO-8859-1
,这种编码格式不支持中文的显示,我们可以用类似
<%@ page contentType="text/html;charset=gb2312"%>
这样的方式来规定页面字符编码格式,但是如果要显示的内容是表单提交、或者是经过
Servlet
处理,这时候字符内容本身的编码格式就是
ISO-8859-1
,所以尽管页面指定的字符编码方案为
gb2312
,在这种情况下中文内容仍然不能正常显示。在第四章中已经对中文处理的问题做了详细的介绍,所以在本章仅仅对其中使用过滤器解决中文乱码问题进行详细的分析。
5.5
Servlet
应用示例
•
在上面的内容中已经提到,
Servlet
是与
HTTP
协议紧密结合的,使用
Servlet
几乎可以处理
HTTP
协议各个方面的内容,在本节的几个示例程序中,将集中展示
Servlet
在
HTTP
方面的具体应用。
5.5.1
获取请求信息头部内容
•
当客户访问一个页面的时候,会提交一个
HTTP
请求给服务器的
Servlet
引擎,在这个请求中有
HTTP
的文件头信息,其中包含这个请求的详细属性信息,在下面这个示例
Servlet
中将取出
HTTP
头部内容,并在页面打印,这个
Servlet
的具体代码如下。(具体内容请参照书。)
5.5.2
获取请求信息
•
在上面这个
Servlet
示例中,我们取出所有的
HTTP
文件头信息,在
Servlet
中还可以很方便取出客户发出请求对象自身的信息。这些信息是和客户的请求密切相关的,例如客户提交请求所使用的协议,客户提交表单的方法是
POST
还是
GET
等,在下面这个示例程序中将介绍集中常见属性的取值方法。这个示例程序的具体代码如下。(具体内容请参照书。)
5.5.3
获取参数信息
•
在
Servlet
中,同样可以很方便的取出用户请求中的参数信息,这种参数包括以
POST
方法或者是
GET
方法提交的表单,也包括直接使用超链接传递的参数,
Servlet
都可以取出这些信息并且加以处理,在下面的例子中将具体展示
Servlet
获取各种参数的方法。
5.5.4
Cookies
操作
•
Cookies
是指在
Web
应用中,为了辨别用户身份而存储在用户本地计算机上的数据。
Servlet API
提供了
Cookie
操作类,封装了操作
Cookie
常用的方法,在(具体内容请参照书。)
5.5.5
Session
操作
•
在
JSP
中有内置的
Session
对象,可以用来保持服务器与用户之间的会话状态,在
Servlet
中间,同样可以对
Session
进行方便的操作,在现面的例子中,将详细介绍
Servlet
中处理
Session
的具体方法。
5.6
小结
•
在本章的内容中,详细讲解了
Servlet
的工作原理,并且通过实际的示例程序详细介绍了
Servlet
的调用方法,对
Servlet
常见的文件操作也做了比较详细的介绍,
Servlet
是和
HTTP
协议密切联系的,所以在本章最后的部分对
Servlet
的
HTTP
操作方法做了细致的讲解。通过本章内容的讲解,读者已经可以对
Servlet
有一个总体上的把握,
Servlet
在本质上就是
Java
类,在了解这
Servlet
的基本原理和基本使用方法以后,如果要想在
Servlet
领域有更大的提高,还是需要回头巩固
Java
的基础,这才是学习
Servlet
的最根本的途径。
上一篇:JavaBean技术基础知识
下一篇:JSP技术基础知识
相关文章
十天学会ASP.net之第十天
求职经验
Windows 7中必须清除的招人讨厌功能
找工作前要做的准备
面试结束后 必须要做五件事
嵌入式行业80%的公司表示开发人员紧缺
成功到底是什么?
就业指导之面试篇(4)
打印
收藏
关闭