Servlet是一种服务器端脚本,它是一个特殊的Java类,继承自HttpServlet,开发中主要用于处理和响应客户端的请求。

       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,它不能处理用户请求,也不能对客户端生成响应。主要用于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的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐