我试图通过在调用我的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);
}
}
<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中提供了相同的请求参数。
答案 0 :(得分:0)
尝试将ServletRequest
转换为HttpServletRequest
,如下所示:
HttpServletRequest req = (HttpServletRequest)request;
String yearFormat= req.getParameter("yearFormat");
..看看是否有帮助