简介
这是一个比较完整的Servlet、JSP教程,包含大量的实用资料和示例,仙人掌工作室倾情推荐。全文共十三章,主要包括:Servlet和JSP特点,安装和配置开发、运行环境,表单数据处理,HTTP请求头、应答状态处理,访问CGI变量,会话状态,JSP脚本元素、指令、动作,等等。具体请见《目录》。
目录
一、Servlet和JSP概述[2]
1.1JavaServlet及其特点
1.2JSP及其特点
二、设置开发、运行环境[3]
2.1安装Servlet和JSP开发工具
2.2安装支持Servlet的Web服务器
三、第一个Servlet[4]
3.1Servlet基本结构 3.2输出纯文本的简单Servlet
3.2.1HelloWorld.java
3.2.2Servlet的编译和安装
3.2.3运行Servlet
3.3输出HTML的Servlet
3.4几个HTML工具函数
四、处理表单数据[6]4.1表单数据概述
4.2实例:读取三个表单变量
4.3实例:输出所有的表单数据
五、读取HTTP请求头[8]
5.1HTTP请求头概述
jsp创建5.2在Servlet中读取请求头
5.3实例:输出所有的请求头
六、访问CGI变量[9]
6.1CGI变量概述
6.2标准CGI变量的Servlet等价表示
6.3实例:读取CGI变量
七、HTTP应答状态[10]
7.1状态代码概述
7.2设置状态代码
7.3HTTP1.1状态代码及其含义
7.4实例:访问多个搜索引擎
八、设置HTTP应答头[13]
8.1HTTP应答头概述
8.2常见应答头及其含义
8.3实例:内容改变时自动刷新页面
九、处理Cookie[15]
9.1Cookie概述
9.2Servlet的Cookie API
9.2.1创建Cookie
9.2.2读取和设置Cookie属性
9.2.3在应答头中设置Cookie
9.2.4读取保存到客户端的Cookie
9.3几个Cookie工具函数
9.3.1获取指定名字的Cookie值
9.3.2自动保存的Cookie
9.4实例:定制的搜索引擎界面
十、会话状态[17]
10.1会话状态概述
10.2会话状态跟踪API
10.2.1查看当前请求的会话对象
10.2.2查看和会话有关的信息
10.2.3在会话对象中保存数据
10.3实例:显示会话信息
十一、JSP及语法概要[19]
11.1概述
11.2JSP语法概要表
11.3关于模板文本(静态HTML)
十二、脚本元素、指令和预定义变量[21] 12.1JSP脚本元素
12.1.1JSP表达式
12.1.2JSP Scriptlet
12.1.3JSP声明
12.2JSP指令
12.2.1page指令
12.2.2include指令
12.3实例:脚本元素和指令的应用
12.4JSP预定义变量
十三、JSP动作[25]
13.1jsp:include动作
13.2jsp:useBean动作
13.3关于jsp:useBean的进一步说明
13.4jsp:setProperty动作
13.5jsp:getProperty动作
13.6jsp:forward动作
13.7jsp:plugin动作
附录:JSP注释和字符引用约定
注:原文出处:Servlets and JavaServer Pages
一、Servlet和JSP概述
1.1Java Servlet及其特点
Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成We b页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是,Servlet程序员收入要比Perl程序员高:-):
高效。
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。
在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。
方便。
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。
功能强大。
在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
可移植性好。
Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。
节省投资。
不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。
1.2JSP及其特点
JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,有关JSP基础概念的说明请参见《JSP技术简介》。
许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。例如,下面就是一个简单的JSP页面:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0Transitional//EN">
<HTML>
<HEAD><TITLE>欢迎访问网上商店</TITLE></HEAD>
<BODY>
<H1>欢迎</H1>
<SMALL>欢迎,
<!--首次访问的用户名字为"New User"-->
<%out.UserNameFromCookie(request));%>
要设置帐号信息,请点击
<A HREF="Account-Settings.html">这里</A></SMALL>
<P>
页面的其余内容。.
</BODY></HTML>
下面是JSP和其他类似或相关技术的一个简单比较:
JSP和Active Server Pages(ASP)相比
Microsoft的ASP是一种和JSP类似的技术。JSP和ASP相比具有两方面的优点。首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。
JSP和纯Servlet相比
JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
JSP和服务器端包含(Server-Side Include,SSI)相比
SSI是一种受到广泛支持的在静态HTML中引入外部代码的技术。JSP在这方面的支持更为完善,因为它可以用Servlet而不是独立的程序来生成动态内容。另外,SSI实际上只用于简单的包含,而不是面向那些能够处理表单数据、访问数据库的“真正的”程序。
JSP和javascript相比
javascript能够在客户端动态地生成HTML。虽然javascript很有用,但它只能处理以客户端环境为基础的动态信息。除了Cookie之外,HTTP状态和表单提交数据对javascript来说都是不可用的。另外,由于是在客户端运行,javascript不能访问服务器端资源,比如数据库、目录信息等等。
二、设置开发、运行环境
2.1安装Servlet和JSP开发工具
要学习Servlet和JSP开发,首先你必须准备一个符合Java Servlet 2.1/2.2和JavaServ er Pages1.0/1.1规范的开发环境。Sun提供免费的JavaServer Web Development Kit(JSWD K),可以从java.sun/products/servlet/下载。
安装好JSWDK之后,你还要告诉javac,在编译文件的时候到哪里去寻Servlet和J SP类。JSWDK安装指南对此有详细说明,但主要就是把servlet.jar和jsp.jar加入CLASSP ATH。CLASSPATH是一个指示Java如何寻类文件的环境变量,如果不设置CLASSPAT H,Java在当前目录和标准系统库中寻类;如果你自己设置了CLASSPATH,不要忘记包含当前目录(即在CLASSPATH中包含“.”)。
另外,为了避免和其他开发者安装到同一Web服务器上的Servlet产生命名冲突,最好把自己的Servlet放入包里面。此时,把包层次结构中的顶级目录也加入CLASSPATH会
带来不少方便。请参见下文具体说明。
2.2安装支持Servlet的Web服务器
除了开发工具之外,你还要安装一个支持Java Servlet的Web服务器,或者在现有的Web服务器上安装Servlet软件包。如果你使用的是最新的Web服务器或应用服务器,很可能它已经有了所有必需的软件。请查看Web服务器的文档,或访问java.sun/prod ucts/servlet/industry.html查看支持Servlet的服务器软件清单。
虽然最终运行Servlet的往往是商业级的服务器,但是开始学习的时候,用一个能够在台式机上运行的免费系统进行开发和测试也足够了。下面是几种当前最受欢迎的产品。Apache Tomcat.
Tomcat是Servlet2.2和JSP1.1规范的官方参考实现。Tomcat既可以单独作为小型Servlet、JSP测试服务器,也可以集成到Apache Web服务器。直到2000年早期,Tomcat还是唯一的支持Servlet 2.2和JSP 1.1规范的服务器,但已经有许多其它服务器宣布提供这方面的支持。Tomcat和Apache一样是免费的。不过,快速、稳定的Apache服务器安装和配置起来有点麻烦,Tomcat也有同样的缺点。和其他商业级Servlet引擎相比,配置Tomcat的工作量显然要多一点。具体请参见/。
JavaServer Web Development Kit(JSWDK).
JSWDK是Servlet2.1和JSP1.0的官方参考实现。把Servlet和JSP应用部署到正式运行它们的服务器之前,JSWDK可以单独作为小型的Servlet、JSP测试服务器。JSWDK也是免费的,而且具有很好的稳定性,但它的安装和配置也较为复杂。具体请参见 m/products/servlet/download.html。
Allaire JRun.
JRun是一个Servlet和JSP引擎,它可以集成到Netscape Enterprise或FastTrack Server、II S、Micros
oft Personal Web Server、版本较低的Apache、O'eilly的WebSite或者StarNine Web STAR。最多支持5个并发连接的限制版本是免费的,商业版本中不存在这个限制,而且增加了远程管理控制台之类的功能。具体请参见www.allaire/products/jrun/。
New Atlanta的ServletExec
ServletExec是一个快速的Servlet和JSP引擎,它可以集成到大多数流行的Web服务器,支持平台包括Solaris、Windows、MacOS、HP-UX和Linux。ServletExec可以免费下载和使用,但许多高级功能和管理工具只有在购买了许可之后才可以使用。New Atlanta还提供一个免费的Servlet调试器,该调试器可以在许多流行的Java IDE下工作。具体请参见newa tlanta/。
Gefion的LiteWebServer(LWS)
LWS是一个支持Servlet2.2和JSP1.1的免费小型Web服务器。Gefion还有一个免费的WAICoolRunner插件,利用该插件可以为Netscape FastTrack和Enterprise Server增加Serv let2.2和JSP1.1支持。具体请参见fionsoftware/。
Sun的Java Web Server.
该服务器全部用Java写成,而且是首先提供Servlet 2.1和JSP 1.0规范完整支持的Web服
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论