let程序都可以完成[1]。
Servlet是使用Java Servlet 应用程序
设计接口(API)及相关类和方法的 Java 程序。除了 Java Servlet API,Servlet 还可以使用扩展和添加到 API 的 Java 类的软件包。Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行并扩展了该服务器的能力。Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。
Servlet的生命周期:
1.当Web客户请求Servlet服务或当Web服务启动时,容器环境加载一个JAVA Servlet类。
2.容器环境也将根据客户请求创建一个Servlet对象实例,或者创建多个Servlet对象实例,并把这些实例加入到Servlet实例池中。
3.容器环境调用Servlet的初始化方法HttpServlet.init()进行Servlet实例化.在调用初始化时,要给init()方法传入一个ServletConfig对象,ServletConfig对象包含了初始化参数和容器环境的信息。
4.容器环境利用一个HttpServletRequest和HttpServletResponse对象,封装从Web客户接收到的HTTP请求和由Servlet生成的响应。
5.容器把HttpServletRequest和HttpServletResponse对象传递给HttpServlet.Service()方法.这样一个定制的Java Servlet就可以访问这种HTTP请求和响应接口。
6.定制的Java Servlet从HttpServletRequest对象读取HTTP请求数据,访问来自HttpSession或Cookie对象的状态信息,进行特定应用的处理,并且用HttpServletResponse对象生成HTTP响应数据。
7.当Web服务器和容器关机时,调用HttpServlet.destroy()方法关闭任何打开的资源,并进行关闭前的处理[2]。
在运行Servlet时我们应该注意以下几点在:
在 Servlet 的生命期中,init() 方法 仅执行一次。它是在服务器装入 Servlet 时执行的。无论有多少客户机访问 Servlet,都不会再执行 init()方法 。缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法来重写它。destroy() 方法也仅执行一次,不过它是在服务器停止且卸装Servlet 时执行的。
Servlet的具体过程如下:
1.客户端向服务器发送请求。
2. 服务器将请求信息发送给Servlet。
3. Servlet根据请求进行响应,产生相应的
HTML语句,并将这些语句传给服务器。
4. 服务器将相应内容返回客户端[3]。
Servlet的出现并不是没有道理的。它主要有一些突出的优点:
1.平台独立性和开发商独立性
所有主要Web服务器和应用服务器都支持Servlet,因此基于Servlet的解决方案不会使你牢牢锁定于某个特定开发商。而且Servlet采用Java语言编写,因此在有Java运行的环境的操作系统都可以使用。
2.集成性
Servlet用Java开发因此可以充分利用所有其他Java技术的优势如利用JDBC完成数据库访问,JNDI完成目录访问,RMI完成远程资源访问
3.高效性
Servlet在进程中执行而进程直到基于Servlet的应用关闭时才回结束运行。每个Servlet请求都作为此持久性进程中的一个单独线程得以执行。Servlet还有一项节省时间的特性,即Servlet可以访问多个请求之间一直加载在内存中的资源。
4.可扩展性
由于Servlet采用Java编写,而且得到了广泛支持,处于这些原因,基于Servlet的应用具有很好的可扩展性。可以将windows 系统上的项目 部署到其他环境,从
linux和apache的功能强大的服务器到高端服务器集群都不在话下。
5.健壮性和安全性
Java是一种强类型程序设计语言,这说明