JavaWeb:过滤器的使用和细节

程序中的过滤器:双向过滤器

       在Java中最小的程序单元是类,程序中的过滤器就是一个特殊的类鞠爱红

       Servlet/Filter是Web的一个组件。

Web中过滤器的作用(简单理解为:过滤处在客户端和服务端资源之间):

       过滤器可以对所有的请求或者响应做拦截操作。

       1:以常规的方式调用资源(Servlet/JSP);

       2:利用修改过的请求信息调用资源;

       3:调用资源之后,但在响应到客户端之前,对响应做出修改;

       4:阻止当前资源调用,代之转到其他资源。

过滤器在开发中的运用:

       1:可以对请求中的字符做编码。

       2:登录验证过滤器。

       3:对敏感字(非法文字)进行过滤。

       4:做MVC框架中的前端控制器(处理所有请求共同的操作,再分发)。

以下对Servlet开发和Filter开发作对比:

    Servlet开发:

        1:自定义一个类(XxxServlet),实现于javax.servlet.Servlet接口。

        2:实现Servlet接口中的方法(init(初始化方法),service(处理请求))。

        3:通过Tomcat来管理该Servlet程序(1:使用web.xml做相关配置; 2:WebServlet("/资源名"))。

<servlet>
  	<servlet-name>Servlet的别名</servlet-name>
  	<servlet-class>自定义Servlet的全限定名</servlet-class>
</servlet>
<servlet-mapping>
  	<servlet-name>Servlet的别名</servlet-name>
  	<url-pattern>/资源名称</url-pattern>
</servlet-mapping>

   注意:此时的url-pattern的文本内容是外界访问Servlet的资源名称。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Filter开发:

        1:自定义一个类(XxxFilter),实现于javax.filter.Filter接口

        2:实现Filter接口中的方法(init(初始化方法),doFilter(执行过滤操作))。

        3:通过Tomcat来管理该Filter程序(1:使用web.xml做相关配置; 2:WebFilter("/资源名"))。

 <filter>
  	<filter-name>Filter的别名</filter-name>
  	<filter-class>自定义Filter的全限定名</filter-class>
 </filter>
 <filter-mapping>
  	<filter-name>Filter的别名</filter-name>
  	<!-- 对哪些资源做过滤操作 -->
  	<url-pattern>/资源名称</url-pattern>
 </filter-mapping>

  注意:此时的url-pattern的文本内容是指Filter对哪一些资源进行过滤操作。

             如:      /hello.jsp      :说明当前Filter只会对/hello.jsp做拦截/过滤。

                          /employee    :说明当前Filter只会对/employee资源做拦截/过滤。

                          /system/*      :说明当前Filter只会对以/system/作为前缀的资源做拦截/过滤。

                          /*                   :说明当前Filter会对所有资源做拦截/过滤。

FilterChain(过滤器链):多个过滤器按照一定的顺序,排列起来。

拦截器栈:程序中,存在多个过滤器的时候,过滤器的先后顺序由在web.xml中配置的<filter-mapping>的先后顺序来决定。

猜你喜欢

转载自blog.csdn.net/fashion_man/article/details/82889478
今日推荐