java web-filter&listener

33 篇文章 0 订阅
7 篇文章 0 订阅
  1. 过滤器:双向过滤器,   Servlet/Filter都是Web的组件.
  2. 过滤器可以对所有的请求或者响应做拦截操作.(过滤器是属于服务端的内容)
    1:以常规的方式调用资源(Servlet/JSP);
    2:利用修改过的请求信息调用资源;
    3:调用资源之后,但在响应前,对响应做出修改;
    4:阻止当前资源调用,代之转到其他资源.

  3. 过滤器在开发中的运用:
    1):可以对请求中的字符做编码.
    2):登陆验证过滤器.
    3):敏感字过滤器
    4):拦截器(框架用到)

  4. Filter开发:
      1:自定义一个类(XxxFilter),实现于javax.servlet.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>
      <filtert-mapping>
           <filter-name>Filter的别名</filter-name>
           <url-pattern>/过滤的资源名称</utl-pattern>
      </filter-mapping>

  5. 1:filter在服务器启动的时候就开始创建对象, 然后初始化.
    2:fiter拦截了请求后, 完成过滤逻辑之后,必须要放行请求:  chain.doFilter(request, response);
    3:Fiter 中配置 url-pattern的文本内容:    Filter对哪一些资源做过滤操作.
            如:   /hello.jsp         :说明当前Filter只会对/hello.jsp做拦截/过滤.
                    /employee       :说明当前Filter只会对/employee资源做过滤.
                   /system/*         :说明当前Filter只会对以/system/作为前缀的资源路径做拦截.
                   /*                        : 说明当前Filter会对所有的请求资源做拦截
    4:FilterChain(过滤器链):多个过滤器按照一定的顺序,排列起来.
    ----------------------------------------------------------------------
    程序中,存在多个过滤器的时候,过滤器的先后执行顺序由谁来决定.
      由在web.xml中:配置的<filter-mapping>的先后顺序来决定.
      注解配置时则是由Filter的名称字母顺序来决定
    5: 过滤的请求的类型:
    REQUEST : 拦截请求, 默认的方式
    FORWORD: 仅仅拦截请求转发
    ERROE: 拦截错误请求  include

    Filter的生命周期:
    在启动服务器的时候去创建Filter对象,执行init方法,在访问资源发请求,被当前Filter拦截的时候执行doFilter方法,最后在正常关闭服务器的时候,去执行destroy方法

    构造器--->>init()--->>doFilter()--->>destroy()

  6. 配置了什么类型的请求,就只对哪些类型的请求做过滤

  7.  

    请求编码过滤器

    登录验证过滤器

    屏蔽敏感字过滤器  改变源代码的功能:

     

      1.定义一个和我们要修改的类完全一样的类(包名和类型完全一样),然后再将其中的所有的代码全部拷贝到我们定义的类中,此时在我们的项目中,就只能使用我们自定义的类
         2.定义一个类去继承我们要修改的类,然后再通过覆写的方式去修改对应的方法(学习)

  8. JavaWeb中的监听器的分类:
    1.作用域监听器(创建/销毁)
              作用域:request/session/application
    2.作用域属性对象监听器
             (添加/删除/修改)作用域中的共享数据的监听

  9. Web的另一大组件:Listener(监听器).
    ----------------------------------------------------
    Web中的监听器,主要用于监听作用域对象的创建,监听作用域对象属性的添加/删除/替换:
           1):监听作用域对象的创建和销毁.
                    ServletRequestListener:监听请求对象的创建和销毁.
                    HttpSessionListener:监听会话对象(session)的创建和销毁.
                    ServletContextListener:监听应用的创建和销毁.
           2):监听作用域对象的属性的添加/删除/替换.
                    ServletRequestAttributeListener: 监听request作用域中属性的添加/删除/替换.
                    HttpSessionAttributeListener:监听session作用域中属性的添加/删除/替换.
                    ServletContextAttributeListener:监听application作用域中属性的添加/删除/替换.

    public class MyServletRequestListener implements ServletRequestListener {
    	//请求发送后就会调用	销毁request,listener
    	@Override
    	public void requestDestroyed(ServletRequestEvent paramServletRequestEvent) {
    		 System.out.println("销毁request,listener");
    		 Object source = paramServletRequestEvent.getSource();
    		 System.out.println(source);
    	}
    	public void requestInitialized(ServletRequestEvent paramServletRequestEvent) {
    		System.out.println("创建request,listener");
    	}
    }
    <listener>
    	 <display-name>MyListener</display-name>
    	 <listener-class>com.listener.MyServletRequestListener</listener-class>
     </listener>

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值