无法使用Java在Filter中获取请求参数

时间:2017-09-04 07:16:42

标签: java servlets servlet-filters

我试图通过在调用我的servlet之前传递要验证的参数来调用过滤器。但是,请求参数传递为null。虽然我的servlet中接收到相同的参数。我无法弄明白可能是什么原因。

我对servlet的调用将使用Javascript中的window.open。

这是我的代码

window.open ("http://localhost:8080/SEMS/testAdd?yearFormat=yyyy", "hiddenFrame");

我的过滤器

public class CBFilter implements Filter {

public void init(FilterConfig config) throws ServletException {     

}

public CBFilter() {}

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    String yearFormat= request.getParameter("yearFormat");

    System.out.println("[Filter] Year Format : "+yearFormat);

    chain.doFilter(request, response);
}

}

Web.xml中

  <filter>
   <display-name>CBFilter</display-name>
   <filter-name>CBFilter</filter-name>
   <filter-class>com.cb.CBFilter</filter-class>     
  </filter>
  <filter-mapping>
    <filter-name>CBFilter</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping>

servlet中提供了相同的请求参数。

1 个答案:

答案 0 :(得分:0)

尝试将ServletRequest转换为HttpServletRequest,如下所示:

HttpServletRequest req = (HttpServletRequest)request;
String yearFormat= req.getParameter("yearFormat");

..看看是否有帮助