Java Web 过滤器和拦截器

1.什么是过滤器
1.过滤器配置

1.在学习SSH框架时我们经常会在web.xml中配置struts的过滤器


    
        struts2
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
    
    
        struts2
        /*
    

2.配置个人过滤器


    
        loginFilter
        com.BoomMan.BookStore.Filter.CheckLoginFilter
    

    
        loginFilter
        /*
    

    

2.为什么用过滤器

1.配置过滤器是为了在你请求发起或结束时,过滤器先作一些操作,比如日志记录、提交检查、资源释放等操作。
2.举个最最简单的例子,你写了个项目,xxx管理系统,要求用户输入用户名密码,核对之后才能操作。
如果不做过滤器,每个人都可以直接写个超链接,就进到你的页面里去了
3.过滤器就是用来过滤你访问的url信息的,过滤一些非法信息还有防止非法访问没有权限的内容等。
4.根据 配置的字符串 去拦截相应的请求,然后根据请求字符串执行相应的方法。。如果不采用过滤器的话 将无法判断到底执行哪个方法,,同理 servlet的执行也是一样的采用配置字符串 进行匹配执行对象方法的。

3.什么是拦截器
1.拦截器原理

拦截器使用

Struts2 拦截器 [Interceptor]

Java Web 过滤器和拦截器_第1张图片

拦截器的工作原理如上图,每一个Action请求都包装在一系列的拦截器的内部。拦截器可以在Action执行之前做相似的操作也可以在Action执行之后做回收操作。

每一个Action既可以将操作转交给下面的拦截器,Action也可以直接退出操作返回客户既定的画面。

2.拦截器配置

拦截器是在struts2的配置文件中配置即struts.xml中配置



        
            
            
            
            
            
            
                
                
                
                
                    
                    true
                    
                    60000
                    
                    .jpg, .jpeg, .png, .bmp, .gif
                    
                    image/jpg, image/jpeg, image/pjpeg, image/png, image/bmp,
                        image/gif
                    
                

                
            
        
        


        
        
        
        

类编写不赘述,方式较多。

4.拦截器过滤器比较

拦截器是基于java的反射机制的,而过滤器是基于函数回调。
拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

你可能感兴趣的:(Java,javaWeb,web开发,过滤器,javaweb过滤器)