jsp代码:
<form name="editAddress" id="editAddress" method ="post" >
<td ><input type="hidden" name="csrf" id="csrf" value="<%=token%>"></input>
Servlet过滤器:
public class ValidateToken implements Filter
{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest httpRequest = request instanceof HttpServletRequest ? (HttpServletRequest) request : null;
HttpServletResponse httpResponse = response instanceof HttpServletResponse ? (HttpServletResponse) response: null;
String token =httpRequest.getParameter("csrf");
System.out.println("token =" +token);
chain.doFilter(request, response);
}
}
此处,ValidateToken类中的令牌值为null。
答案 0 :(得分:0)
您需要使用 method参数 request
,而不是一些自定义字段。
(我什至看不到第3行和第4行中的这些字段request
和response
的来源。Filter
是一个接口,因此没有任何字段甚至可以编译吗?)
删除两个字段,并将方法参数request
强制转换为HttpServletRequest
,它将起作用。