Servlet技术简介与编写、编译Servlet程序

转载 2006年06月22日 08:04:00
1Servlet技术简介
 
Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的WEB服务器端编程技术,主要用于在WEB服务器端获得客户端的访问请求信息和动态生成对客户端的响应消息。Servlet技术也是JSP技术(另外一种动态网页开发技术)的基础。一个Servlet程序就是一个实现了特殊接口的 Java类,用于被支持Servlet的WEB服务器调用和运行,即只能运行于具有Servlet引擎的WEB服务器端。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,接收访问请求信息和产生响应内容。
Applet是用于浏览器端的Java小程序,在浏览器端被解释执行,用于在HTML网页中实现一些桌面应用程序的功能,被称为“小应用程序”。Servlet是用于WEB服务器端的Java小程序,它在WEB服务器端被解释执行,用于处理客户端的请求和产生动态网页内容。源于Applet的命名,这种WEB服务器端的Java小程序就被命名为了Servlet,与Applet相对应,Servlet可以被称之为“小服务程序”。
Servlet与普通java程序相比,只是输入信息的来源和输出结果的目标不一样,所以,普通Java程序所能完成的大多数任务,Servlet程序都可以完成。Servlet程序具有如下的一些基本功能:
  •          获取客户端通过HTML的FORM表单递交的数据和URL后面的参数信息;
  •          创建对客户端的响应消息内容;
  •          访问服务器端的文件系统;
  •          连接数据库并开发基于数据库的应用;
  •          调用其它的Java类。
 
2.编写与编译Servlet程序
一个Servlet程序就是一个在WEB服务器端运行的特殊Java类,这个特殊的Java类必须实现javax.servlet.Servlet接口,Servlet接口定义了Servlet容器与Servlet程序之间通信的协议约定。为了简化Servlet程序的编写,Servlet API中也提供了一个实现了Servlet接口的最简单的Servlet类,其完整名称为javax.servlet.GenericServlet,这个类实现了Servlet程序的基本特征和功能。Servlet API中还提供了一个专用于HTTP协议的Servlet类,其名称是javax.servlet.http.HttpServlet,它是GenericServlet的子类,在GenericServlet类的基础上进行了一些针对HTTP特点的扩充。显然,一个Java类只要继承了GenericServletHttpServlet,它就是一个Servlet。反过来说,要编写一个Servet类,这个类必须继承GenericServlet类或HttpServlet类。为了充分利用HTTP协议的功能,在一般情况下,都应让自己编写的Servlet类继承HttpServlet类,而不是继承GenericServlet类。
查看HttpServlet类的帮助文档,可以看到其中有一个名为service的方法,当客户端每次访问一个Servlet程序时,Servlet引擎都将调用这个方法来进行处理。service方法接受两个参数,一个是用于封装HTTP请求消息的对象,其类型为HttpServletRequest,另一个是代表HTTP响应消息的对象,其类型为HttpServletResponse。调用HttpServletResponse对象的getWriter方法可以获得一个文本输出流对象,向这个流对象中写入的数据将作为HTTP响应消息的实体内容部分发送给客户端。
:动手体验:编写与编译Servlet程序的过程
1)编写一个继承了HttpServlet类的HelloServlet类,它对HttpServlet类中的service方法进行了覆盖,如例程4-2所示。
例程4-2  HelloServlet.java
 

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class HelloServlet extends HttpServlet
{
    //HttpServlet类的帮助文档中复制service方法的声明部分可避免书写错误
    public void service(HttpServletRequest request,
        HttpServletResponse response) throws ServletException,IOException
    {
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<font size=30 color=red>www.it315.org</font><br>");
        out.println("<marquee>" + new java.util.Date() + "</marquee>");
        out.println("</html>");
    }
}
 

2)使用javac命令编译这个源文件,通常情况下,第一次学习编写Servlet程序的人都会遇到类似如下错误:
HelloWorld.java:2: package javax.servlet does not exist
import javax.servlet.*;
^
HelloWorld.java:3: package javax.servlet.http does not exist
import javax.servlet.http.*;
^
......
这些错误信息提示javac编译器找不到javax.servlet和javax.servlet.http这两个包以及其中的一些Servlet API类,这是因为包含Servlet API类的jar文件还没有被加入到javac所使用的CLASSPATH环境变量中。
3)在执行javac的命令行窗口中,将包含有Servlet API的jar文件加入到CLASSPATH环境变量的路径列表中,例如,对于Tomcat 4.x,应使用如下的命令设置:
set CLASSPATH=<tomcat的安装目录>/common/lib/servlet.jar;%CLASSPATH%
设置完CLASSPATH环境变量后,重新编译HelloServlet.java文件,如果源程序中没有书写错误的话,这时候就可以编译成功了。
在笔者编写的《java就业培训教程》中曾经讲过,在命令行窗口中设置的CLASSPATH环境变量是临时的,只对这个命令行窗口起作用,对其它窗口和应用程序不起作用,因此在每次新启动的命令行窗口中都要重新设置。如果想让设置一直保持有效,应该使用对整个系统都有效的环境变量的设置方法,例如,在win2000的系统特性的“环境变量”对话框中进行设置,在win98的开机自动批处理文件Autoexec.bat中设置,在Linux的Profile文件中设置。
(4)在编译和运行java程序时,Java类装载器也会去<JDK安装主目录>/jre/lib/ext目录下的jar包中搜索要加载的类。如果将包含Serlet API的jar文件复制到该目录下,在编译Servlet程序时,就不必在CLASSPATH环境变量中增加包含Serlet API的jar文件。

手动编写部署第一个servlet

(1)在“Tomcat 6.0\webapps”下创建一个web工程--FirstServlet    FirstServlet目录结构为:           FirstServlet       ...
  • xh16319
  • xh16319
  • 2012年09月24日 11:25
  • 2675

java web之Servlet技术

本文针对Web项目结构,Servlet基本概念,对Servlet体系结构,通过实例讲解Servlet,servlet配置,servlet上下文,监听器,过滤器等技术...
  • Big2008Bone
  • Big2008Bone
  • 2015年08月24日 19:56
  • 1648

Servlet技术介绍

1、Servlet简介Java Servlet是与平台无关的服务器端组件,它可以运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet...
  • nht1980
  • nht1980
  • 2009年03月09日 14:52
  • 1726

Servlet技术简介与编写、编译Servlet程序

1.Servlet技术简介 Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的WEB服务器端编程技术,主要用于在WEB服务器端获得客户端的访问请求信息和动态生成...
  • JJ___JJ
  • JJ___JJ
  • 2010年06月07日 10:31
  • 1182

用记事本写第一个Servlet程序

1.新建java文件 首先在E盘目录下新建一个java文件,命名为MyFirstServlet.java 2.写入代码 package com.jnu059; import javax.serv...
  • dwyers
  • dwyers
  • 2014年08月06日 22:36
  • 2107

Tomcat的安装与第一个servlet程序的部署

在前两天,终于进入到了servlet的学习,本来我的想法是先学习一下xml、ajax、jquery之后再来学习servlet,但是,把前面的三本教程一看,这的学到什么时候才能进入正题,索性直接进入se...
  • xn6517
  • xn6517
  • 2015年10月30日 20:41
  • 7265

用servlet做了一个简单的登录界面

代码: Login类 package com.ccit; import java.io.IOException; import java.io.PrintWriter; import ...
  • u010286751
  • u010286751
  • 2013年12月07日 22:42
  • 2768

Java Servlet学习【1】编写Servlet程序,配置web.xml,使用免安装版tomcat

编写Servlet程序需要先编写Java程序,主要有三种开发方式。编写完成后对其进行编译,然后在tomcat应用文件夹下建立WEB-INF文件在,其下的web.xml文件需要配置Servlet。编写过...
  • linweieran
  • linweieran
  • 2015年08月15日 15:28
  • 1771

Servlet3.0介绍~使用注解标注Servlet

Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述。 在Servlet3.0中,可以使用@WebServlet注解将一个继承于jav...
  • zhengchao1991
  • zhengchao1991
  • 2016年09月29日 12:25
  • 628

一个简单的Servlet .

2.1.4 一个简单的Servlet(1) 这一节我们编写一个最简单的Servlet,其功能就是向客户端输出一个字符串“Hello World”。实例的开发主要有下列步骤。 Step1:编写H...
  • li_xiao_ming
  • li_xiao_ming
  • 2014年03月18日 16:31
  • 2137
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet技术简介与编写、编译Servlet程序
举报原因:
原因补充:

(最多只允许输入30个字)