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类只要继承了GenericServlet或HttpServlet,它就是一个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文件。

转载于:https://www.cnblogs.com/spring3/archive/2006/06/14/2401797.html

Servlet技术简介与编写、编译Servlet程序相关推荐

  1. MyBits学习总结(1)--- MyBits简介、编写一个MyBatis程序

    MyBits学习总结(1)- MyBits简介.编写一个MyBatis程序 1. MyBits简介 什么是mybits? 在哪里找? mybatis原来不叫mybatis ,而叫 ibatis1.2: ...

  2. Java Servlet 技术简介

    开始之前 关于本教程 在您最喜欢的 Web 浏览器中,您所阅读的页面是如何出现的呢?当登录到您最喜欢的 Web 站点时,该 Web 站点如何知道登录的用户是您?而 Web 零售商又如何接受您的在线订购 ...

  3. java语言体系的技术简介之JSP、Servlet、JDBC、JavaBean(Application)

    前言 Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.EJB四部分技术.其中还有其他的9个技术规范(JNDI,) 正文 (1).Java ...

  4. Servlet→简介、手动编写一个Servlet、使用MyEclipse编写一个Servlet、Servlet生命周期、路径编写规范、初始化参数、MVC设计模式

    手动编写一个Servlet 使用MyEclipse编写一个Servlet Servlet生命周期 路径编写规范 初始化参数 MVC设计模式 企者不立:跨者不行. 自见者不明: 自是者不彰: 自伐者无功 ...

  5. 蒙特卡罗MCNP学习汇总(一)-----MCNP简介及编写第一个程序

    目录 简介: 什么是MC模拟 介绍 应用 运行 编写第一个程序 格式 程序 讲解 现象 简介: 什么是MC模拟 一种通过随机抽样解决数学问题的一种数值计算方法. MC方法解决的主要数学问题 -数值积分 ...

  6. java Servlet技术·笔记

    Servlet基础 Servlet技术简介 Servlet是一种独立于平台和协议的服务器端的java技术,可以用来动态的生成Web界面.Servlet具有非常好的可移植性.强大的功能.更少的投资.更高 ...

  7. Web 前端学习 之servlet技术(一)

    Web 前端学习 之servlet技术(一) Servlet技术简介 手动实现Servlet程序 要求: 实现如下功能 1.编写一个类去实现Servlet 接口 2.实现service 方法,处理请求 ...

  8. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】...

    tags: Servlet 什么是Serlvet?# Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们 ...

  9. Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】

    什么是Servlet? Servlet其实就是一个遵循Servlet开发的java类.Servlet是由服务器调用的,运行在服务器端. 为什么要用到Servlet? 我们编写java程序想要在网上实现 ...

最新文章

  1. 密码登录源码(jsp+java+数据库)
  2. 基于.NetCore3.1系列 —— 日志记录之自定义日志组件
  3. CF891E-Lust【EGF】
  4. IntelliJ IDEA for Mac在MacOS模式下的调试快捷键(Debugging Shortcut)
  5. headerIP php_PHP curl伪造IP地址和header信息代码实例
  6. 吴恩达 深度学习 编程作业(2-3)- TensorFlow Tutorial
  7. 设计模式(三)单实例模式
  8. 结合内存分析java归并排序_排序算法之归并排序(Mergesort)解析
  9. Linux修改挂载目录名称
  10. Markdown笔记神器Typora配置Gitee图床
  11. 纯CSS实现的风车转动效果特效演示
  12. 在YUI3下打印Panel内容
  13. Omapl138 AT070TN83 lcd驱动移植
  14. 在浏览器中使用百度地图的定位服务获得经纬度
  15. 【小工具推荐】-云笔记+思维导图
  16. ObjectARX开发笔记(一)——分别使用AcEdInputPointFilter和AcEdInputPointMonitor实现光标提示功能
  17. 小米 linux 内核面试,编译适配小米2S的CM Linux内核源代码及问题解决
  18. 麒麟服务器系统搭建nfs共享
  19. 【计算机网络】计算机网络
  20. 倾斜摄影技术下打造的三维景区 [转]

热门文章

  1. React开发(189):ant design textarea允许清除allowClear
  2. 前端学习(3167):react-hello-react之鼠标添加一个todoList
  3. [html] 跨标签页的通讯方式有哪些
  4. 前端学习(2875):原生js模块化+入口模块和子类的编写
  5. 工作234:按钮禁用
  6. 工作226:for循环逻辑
  7. “约见”面试官系列之常见面试题第二十一篇之函数防抖和节流(建议收藏)
  8. 前端学习(1857)vue之电商管理系统电商系统之配置api接口服务器并用postman调试接口
  9. 前端学习(1720):前端系列javascript之生命周期下
  10. oracle之基本的过滤和排序数据之课后练习