servlet-mapping与filter-mapping 的处理顺序是什么

servlet-mapping与filter-mapping 的处理顺序是什么,第1张

我可以把你的问题理解成在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过滤器中指定过滤内容怎么配置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10154064.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存