servlet-mapping与filter-mapping 的处理顺序
2008-10-27 10:30
190 查看
可以把它理解成在servlet处理过程中,普通servlet和过滤器谁先执行
答案是过滤器先执行:不管url-pattern的值一样或者不一样
这里有个通俗的例子:
到百度贴吧回答问题,这就是一个普通servlet要完成的工作(提交一个问题)
可是贴吧规定:用户未登陆不能回答问题,这就是过滤器的工作
想象以下,当我点击提交回答的时候,肯定是先要进行用户登陆的判断,如果登陆了才把用户的回答提交,未登陆就提示其先登陆
对不对?
<filter-mapping>
<filter-name>aaa</filter-name>
<url-pattern>/a/b</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>sss</servlet-name>
<url-pattern>/a/b</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sssaa</servlet-name>
<url-pattern>/a/ba</url-pattern>
</servlet-mapping>
对于上面的配置,执行的情况是:
用户请求"/a/b"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求要执行过滤操作,于是执行doFilter中的代码
用户请求"/a/ba"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求不用执行过滤操作,于是doFilter中的代码没又执行
答案是过滤器先执行:不管url-pattern的值一样或者不一样
这里有个通俗的例子:
到百度贴吧回答问题,这就是一个普通servlet要完成的工作(提交一个问题)
可是贴吧规定:用户未登陆不能回答问题,这就是过滤器的工作
想象以下,当我点击提交回答的时候,肯定是先要进行用户登陆的判断,如果登陆了才把用户的回答提交,未登陆就提示其先登陆
对不对?
<filter-mapping>
<filter-name>aaa</filter-name>
<url-pattern>/a/b</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>sss</servlet-name>
<url-pattern>/a/b</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sssaa</servlet-name>
<url-pattern>/a/ba</url-pattern>
</servlet-mapping>
对于上面的配置,执行的情况是:
用户请求"/a/b"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求要执行过滤操作,于是执行doFilter中的代码
用户请求"/a/ba"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求不用执行过滤操作,于是doFilter中的代码没又执行
相关文章推荐
- servlet-mapping与filter-mapping 的处理顺序
- servlet-mapping与filter-mapping 的处理顺序
- 小析web.xml中context-param,Listener,Filter,Servlet处理顺序
- Filter mapping must specify either a <url-pattern> or a <servlet-name>问题的处理
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
- web.xml文件中配置( listenr, filter,servlet, spring)的加载顺序 研究(转)
- Servlet 3.0 之@WebFilter怎么控制多个filter的执行顺序
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- web.xml之context-param,listener,filter,servlet加载顺序及其周边
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- servlet3.0 @webfilter 过滤顺序