Servlet是一种server端脚本,它是一个特殊的Java类,继承自HttpServlet。开发中主要用于处理和响应client的请求。
Servlet在容器中执行,事实上例的和销毁创建由容器进行控制。
每一个Servlet的执行都遵循例如以下生命周期:
(1)(容器)创建Servlet实例。
(2)init(初始化。显示相关Servlet实例信息,如log)。
(3)Service(处理和响应请求。如接受表单请求參数并进行请求转发)。
(4)destroy(销毁。释放资源)。
将Servlet(即java类)编译成class文件。容器载入class文件。为了能让Servlet能处理用户请求。必需要将Servlet配置在web应用中。在web.xml中进行配置。配置Servlet需要配置两个部分:
(1).配置Servlet的名字。
(2).配置Servlet的URL映射。
Filter
Filter并非一个标准的Servlet。它不能处理用户请求,也不能对client生成响应。主要用于HttpServletRequest进行预处理,也能够对HttpServletResponse进行后处理。是个典型的处理链。
Servlet通常仅仅配置一个url,而Filter能够同一时候拦截多个请求的url。创建Filter必须实现javax.servlet.Filter接口。该接口定义了三个方法:
(1)voidinit(FilterConfig config)
(2)voiddestroy()
(3)void doFilter(HttpServletRequest request, HttpServletResponseresponse, FilterChain chain),实现过滤。就是对用户请求和响应添加额外处理。
在过滤器開始执行之后。wen容器每接收到与该过滤器URL模式相匹配的URL时,就会调用这种方法。
Servlet执行于支持Java的应用server中。从实现上讲,Servlet能够响应不论什么类型的请求。但绝大多数情况下Servlet仅仅用来扩展基于HTTP协议的Webserver。
最早支持Servlet标准的是JavaSoft的Java Web Server。
此后。一些其他的基于Java的Webserver開始支持标准的Servlet。