<param-name>ignore</param-name> 这是web.xml中的,配置Filter的一句代码,我想问下这是什么意思 <init-param> <param-name>ignore</param-name> <param-value>true</param-value> </init-param>
这个是过滤器的配置
<filter>
<filter-name>userProfileFilter</filter-name>
<filter-class>com.XXX.center.filter.UserProfileFilter</filter-class>
<init-param>
<param-name>ignore</param-name>
<param-value>/login.action,/image,/css</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>userProfileFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
比如配置是上面那样子的,你点进去UserProfileFilter类看看,进入doFilter方法,应该前面会有个判断地址的动作;;类里面会有个数组参数,参数名是ignore,比如以上配置,则ignore=[login.action,image,css],代码里面会有逻辑处理,正常是会获取你当前的请求地址,然后可能会调用一个方法A进行判断,这个A方法的作用大致是判断你当前请求的地址是否是包含于ignore里面的值,如果是,则return true;
比如你请求地址是login.action,然后执行doFilter方法,doFilter方法先获取请求的地址,然后调用A方法,A方法里面的判断是:这个地址是否在ignore里面的(因为你配置了param-name),如果在,则A方法会return true;doFilter里面调用这个A方法返回true后,应该基本是if判断调用A的结果后,true进去if逻辑里面,if里面基本上执行chain.doFilter(req, resp);后会直接return出去,意思就是不执行当前这个UserProfileFilter过滤器,这个过滤器的代码逻辑还在下面没执行呢;
别问我为啥讲这么详细。。因为上面那个人讲的是对的,但是的确讲的很难理解,包括我差点也没看懂。。。。
<filter>
<filter-name>userProfileFilter</filter-name>
<filter-class>com.XXX.center.filter.UserProfileFilter</filter-class>
<init-param>
<param-name>ignore</param-name>
<param-value>/login.action,/image,/css</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>userProfileFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
比如配置是上面那样子的,你点进去UserProfileFilter类看看,进入doFilter方法,应该前面会有个判断地址的动作;;类里面会有个数组参数,参数名是ignore,比如以上配置,则ignore=[login.action,image,css],代码里面会有逻辑处理,正常是会获取你当前的请求地址,然后可能会调用一个方法A进行判断,这个A方法的作用大致是判断你当前请求的地址是否是包含于ignore里面的值,如果是,则return true;
比如你请求地址是login.action,然后执行doFilter方法,doFilter方法先获取请求的地址,然后调用A方法,A方法里面的判断是:这个地址是否在ignore里面的(因为你配置了param-name),如果在,则A方法会return true;doFilter里面调用这个A方法返回true后,应该基本是if判断调用A的结果后,true进去if逻辑里面,if里面基本上执行chain.doFilter(req, resp);后会直接return出去,意思就是不执行当前这个UserProfileFilter过滤器,这个过滤器的代码逻辑还在下面没执行呢;
别问我为啥讲这么详细。。因为上面那个人讲的是对的,但是的确讲的很难理解,包括我差点也没看懂。。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-06-18
<filter-mapping>中的<url-pattern>就是过滤器要过滤的对象/* 就是对所有的请求进行过滤 当然这里还有一个过滤器的开关ignore 当ignore为true/1/yes的时候,则过滤器不起作用,还有一个就是过滤器要设置的编码格式的值本回答被提问者采纳