【问题标题】:Not able to get request parameters in Filter using Java无法使用 Java 在过滤器中获取请求参数
【发布时间】:2017-09-04 07:16:41
【问题描述】:

我试图通过在调用我的 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 中可用。

【问题讨论】:

    标签: java servlets servlet-filters


    【解决方案1】:

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

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

    ..看看有没有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2014-10-27
      • 2014-03-09
      • 2010-11-27
      相关资源
      最近更新 更多