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