Servlet过滤器用于安全性

时间:2013-11-09 21:04:39

标签: java jsp java-ee servlets filter

我正在使用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没有出现身份验证, 有什么办法吗? 感谢

1 个答案:

答案 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>

此信息可在specification6.2.5部分找到。

  

Java Servlet规范的2.4版本就是新功能   配置要在请求调度程序forward()下调用的过滤器   和include()调用。

     

通过在部署描述符中使用新元素,   开发人员可以指示他是否愿意进行过滤映射   在以下情况下应用于请求的过滤器:

     
      
  1. 请求正在请求调度程序处理,该请求调度程序表示与或匹配的Web组件    使用forward()调用。
  2.         

    这由值为FORWARD

    的元素表示