`
lovnet
  • 浏览: 6709163 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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

阅读更多
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文件。
分享到:
评论

相关推荐

    Java服务器程序设计

    通过阅读本书,读者不仅能够知道用java服务器体系结构开发servlet与用传统cgi编写程序的好处,而且还能够掌握编写java servlet的各种技术和技巧。  本书适用于所有对java和web感兴趣的读者使用和参考。 第1部分 ...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    4.4.2 创建和发布Servlet应用程序 4.5 小结 第五章 Eclipse使用指南 5.1 Eclipse简介 5.1.1 Eclipse的历史 5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合...

    Java-Web程序设计(PPT).pptx

    本章内容 Web 应用程序简介 HTTP 协议 Tomcat 简介 使用Eclipse开发Java Web 应用程序 静态的登录页面制作 使用网络抓包的方式查看网络状态 修改Tomcat服务器端口 编写404页面程序并运行此程序 Java-Web程序设计...

    Java Web程序设计教程

    3.1.2编写程序 34 3.1.3部署应用 35 3.2认识jsp 36 3.2.1jsp的工作原理 37 3.2.2jsp注释方式 37 3.2.3jsp声明方式 38 3.2.4jsp表达式的应用 39 3.2.5jsp的脚本段 39 3.2.6jsp的编译指令 40 3.2.7jsp的动作...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    4.4.2 创建和发布Servlet应用程序 4.5 小结 第五章 Eclipse使用指南 5.1 Eclipse简介 5.1.1 Eclipse的历史 5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    4.4.2 创建和发布Servlet应用程序 4.5 小结 第五章 Eclipse使用指南 5.1 Eclipse简介 5.1.1 Eclipse的历史 5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    Sun公司于1996年首次推出Servlet技术时,人们认为这种技术远优于当时占主导地位的公共网关接口(Common Gateway Inter。face,CGI)。这是因为某个servlet(服务器端Java程序)在应用户的请求而首次调入内存执行之后...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    4.4.2 创建和发布Servlet应用程序 4.5 小结 第五章 Eclipse使用指南 5.1 Eclipse简介 5.1.1 Eclipse的历史 5.1.2 Eclipse的运行机制 5.2 建立Eclipse的开发环境 5.2.1 下载Eclipse 5.2.2 配置Eclipse 5.3 整合...

    JAVA程序开发大全---上半部分

    本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...

    外文翻译 stus MVC

    ActionServlet is the Command part of the MVC implementation and is the core of the Framework. ActionServlet (Command) creates and uses Action, an ActionForm, and ActionForward. As mentioned earlier, ...

    java程序设计与开发课件

    1.5.4 Java程序的编写···························· (7) 1.6 本章小结································· (9) 习题1···············...

    Java开发技术大全 电子版

    14.4.5编写事件处理程序的基本方法454 14.4.6响应窗口关闭事件处理示例454 14.4.7事件监听器接口和适配器类456 14.4.8作为参数的事件类456 14.4.9处理多个事件的例子463 14.5Swing组件的特性467 14.5.1Swing...

    Java编程艺术 PDF

    6.5 Web搜索程序的编译与运行 202 6.6 对Web搜索程序的思考 203 第7章 使用Java提交HTML 205 7.1 使用JEditorPane提交HTML 206 7.2 处理超链接事件 206 7.3 编写Mini Web浏览器 207 7.3.1 MiniBrowser类 208 7.3.2 ...

    java 编程艺术

    6.5 Web搜索程序的编译与运行 202 6.6 对Web搜索程序的思考 203 第7章 使用Java提交HTML 205 7.1 使用JEditorPane提交HTML 206 7.2 处理超链接事件 206 7.3 编写Mini Web浏览器 207 7.3.1 MiniBrowser类 208 ...

    OPhone应用开发权威指南(黄晓庆)

    《OPhone应用开发权威指南》2010 黄晓庆 博文视点 broadview 第1章 OPhone平台概述 1 1.1 OPhone的架构 1 1.1.1 Linux内核 2 1.1.2 本地库 2 1.1.3 OPhone运行环境 3...附录B Resin安装与Servlet部署 446 参考文献 450

    JAVA上百实例源码以及开源项目

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。...

Global site tag (gtag.js) - Google Analytics