我正在使用Servlet过滤器来安全应用
<filter>
<filter-name>HelloFilter</filter-name>
<filter-class>com.sarp.filter.HelloFilter</filter-class>
<init-param>
<param-name>login_form</param-name>
<param-value>/loginForm.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HelloFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
但如果我的servlet使用jsp文件我无法捕获它们
private void execute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
getServletContext().getRequestDispatcher("/deniz.jsp").forward(request, response);
例如,deniz.jsp没有出现身份验证, 有什么办法吗? 感谢
答案 0 :(得分:1)
使用FORWARD
filter-mapping
行为
<filter-mapping>
<filter-name>HelloFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
此信息可在specification的6.2.5
部分找到。
Java Servlet规范的2.4版本就是新功能 配置要在请求调度程序forward()下调用的过滤器 和include()调用。
通过在部署描述符中使用新元素, 开发人员可以指示他是否愿意进行过滤映射 在以下情况下应用于请求的过滤器:
- 请求正在请求调度程序处理,该请求调度程序表示与或匹配的Web组件 使用forward()调用。
醇>这由值为FORWARD
的元素表示