一. 什么是Servlet?
它是用JAVA编写的服务器端程序, 是由服务器端调用和执行的,按照Servlet自身规范编写的JAVA类.可以把它看成是用JAVA 编写的CGI,但它的功能和性能比CGI更强大.它使用了JAVA servlet应用程序设计接口(API)及相关类和方法的JAVA程序,现在是SERVLET 2.4版本.它一旦载入,就能常驻内存中,加快了程序的响应速度.
二. Servlet的生命周期
部署在容器中,它的生命周期由容器来管理.分以下几个阶段:
* 装载Servlet:这项操作动态执行.有些服务器提供了相应的管理功能.可以在启动时就装载Servlet并能够初始化特定的Servlet.
* 创建一个Servlet 实例.
* 调用Servlet的init()方法
* 服务:如果容器接收到对此Servlet的请求,那么它调用Servlet的ser vice()方法.这是对外提供服务的最重要阶段.
* 销毁:实例被销毁,通过调用Servlet的destroy()方法来销毁.
三.Servlet常用接口和类
主要说明一下Servlet上下文相关的接口ServletContext.在服务器上使用Session对象来维护同单个客户相关的状态,而当多个用户的Web应用维护一个状态时,则应使用Servlet环境(Context). ServletContext对象表示一组Servlet共享资源,
Servlet的类接口:
*Servlet实现相关:定义了用于实现Servlet相关的类和方法.主要有Servlet接口(定义的方法有: init(ServletConfig config):destroy(),getServletConfig(),getServletInfo().service(ServletRequest request,ServletResponse response):运行应用程序逻辑的入口点:).和两个抽象类GenericServlet.HttpServlet
* Servlet配置相关:javax.servlet.ServletConfig 接口代表了Servlet的配置,包括Servlet名字,初始化参数和Servlet上下文.主要方法有:getInitParameter(String name),getInitParameterNames();getServletContext()获取上下文对象的引用.
* Servlet异常相关: ServletException .UnavailableException(当Servlet或Filter暂时或者永久不能使用时抛出)
* 请求和响应相关:用于接收客户端的请求并且做出相应的响应.主要是HttpServletRequest ,HttpServletResponse.
* 会话跟踪:HttpSession接口,用来实现HTTP客户端和HTTP会话两者间的关联.主要的方法有:getId();isNew(),getValue(String name),invalidate();
* Servlet上下文 : ServletContext 常用的方法有:getContext(String uripath)返回给定的uripath的应用的上下文,
* Servlet协作:有RequestDispatcher接口,它将请求转发到另一个Servlet.主要方法有:forward(ServletRequest res,ServletResponse resp)把请求转发到服务器上的另一资源(servlet,jsp,html).include(ServletRequest res,ServletResponse resp)把服务器上的另一资源(Servlet,JSP,HTML)包含到响应中.
*过滤:可以对请求进行统一编码.对请求进行认证.即Filter.