
我可以把你的问题理解成在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中的代码没又执行
建立一个过滤器涉及下列五个步骤:
1)建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法 包含主要的过滤代码(见第2步),init方法建立设置 *** 作,而destroy方法进行清楚。
2) 在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括 表单数据、cookie和>
你的问题好像是只需要Filter处理jsp的请求,只要改webxml里Filter配置就可以。url-pattern别给/,给/jsp,如果需要过滤多种文件请求,可以再增加filter-mapping,每个的url-pattern对应一种文件。
<filter-mapping>
<filter-name></filter-name>
<url-pattern></url-pattern>
</filter-mapping>
就事论事的说楼主你没按照servlet的套路出牌,webxml被你添加了过多的功能所以现在自己弄不清楚了。
个人建议你精简webxml内容。
或者你贴出来webxml 这样帮你看看
在 Java Web 开发中,你可以使用过滤器 (Filter) 来禁止浏览器缓存页面。这里是基本的实现步骤:
创建一个新的过滤器类,实现 javaxservletFilter 接口。这个类应该包含一个实现了 doFilter 方法的代码块,该方法将在过滤器生效时被调用。
在 doFilter 方法中,你可以使用 >
responsesetHeader("Cache-Control", "no-cache, no-store, must-revalidate");
在你的 Web 应用的部署描述符 (webxml) 中,使用 <filter> 和 <filter-mapping> 元素配置过滤器。这样,你就可以在所有请求到达指定的资源之前,先将其过滤一遍。
下面是一个示例过滤器的完整代码,它实现了上述步骤:
import javaioIOException;
import javaxservletFilter;
import javaxservletFilterChain;
import javaxservletFilterConfig;
import javaxservletServletException;
import javaxservletServletRequest;
import javaxservletServletResponse;
import javaxservlet>
public class NoCacheFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
>
>
建立一个过滤器涉及下列五个步骤:1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置 *** 作,而destroy方法进行清楚。2、在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和>
没有验证成功的原因很多,从你的XML中看,配置的没有问题,可能是程序中的问题
如果有一个页面不想验证,靠配置是没有办法实现的,只能过滤指定的文件,或者指定文件夹的文件,或者是一定扩展名的文件
所以一种方法是配置多个<filter-mapping></filter-mapping>,唯独不配置不想验证的页面,另一种方法是在程序里获得当前页面的名字,(>
以上就是关于servlet-mapping与filter-mapping 的处理顺序是什么全部的内容,包括:servlet-mapping与filter-mapping 的处理顺序是什么、java filter具体如何应用,需要具体、Filter过滤器中指定过滤内容怎么配置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)