如果任何J2EE应用程序直接命中servlet,然后servlet将相同的请求转发到某个.jsp页面.
request.getRequestDispatcher("Login.jsp").forward(request, response);
我有一个servlet过滤器,下面是url-pattern
some_filter
/*
那么,转发的请求是否也会过滤.
在我的情况下,它不会来,这是一个预期的行为.只想了解这一点.
解决方法:
如果要为转发请求调用过滤器映射,则必须将其放在web.xml中
从Servlet2.4开始就有这种支持
myfilter
/mypath/*
FORWARD
REQUEST
调度程序支持的值是:
>请求:请求直接来自客户端.这由< dispatcher>表示.元素值REQUEST,或者由
没有任何元素.
> FORWARD:请求正在请求调度程序处理,该请求调度程序表示与< url-pattern>匹配的Web组件.或< servlet-name>使用forward()调用.
这由< dispatcher>表示.值为FORWARD的元素.
> INCLUDE:请求正在请求调度程序处理,该请求调度程序表示与< url-pattern>匹配的Web组件.或< servlet-name>使用include()调用.
这由< dispatcher>表示.值为INCLUDE的元素.
>错误:正在使用“错误处理”中指定的错误页面机制处理与匹配< url-pattern>的错误资源的请求.这由< dispatcher>表示.值为ERROR的元素.
> ASYNC:正在使用“异步处理”中指定的异步上下文分派机制使用调度调用将请求处理到Web组件.
这由< dispatcher>表示.值为ASYNC的元素.
标签:java,servlets,servlet-filters
来源: https://codeday.me/bug/20190715/1466278.html