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>的先后顺序来决定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值