过滤器正常使用,可以拦截非法操作,但是合法注册无法跳转到登入页面。
/**
* Servlet Filter implementation class RegisterFilter
*/
@WebFilter("/RegisterFilter")
public class RegisterFilter implements Filter {
/**
* Default constructor.
*/
public RegisterFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
//用户名过滤器
String userName = req.getParameter("userName");
PrintWriter out = resp.getWriter();
if(userName.equals("")) {
out.write("<script>");
out.write("alert('用户名称不能为空');");
out.write("location.href='register.jsp';");
out.write("</script>");
out.close();
return;
}
//验证码过滤器
HttpSession session = req.getSession();
String verycode = req.getParameter("veryCode");
String sysCode = (String)session.getAttribute("code");
if(!sysCode.equals(verycode)) {
out.write("<script>");
out.write("alert('验证码输入有误');");
out.write("location.href='register.jsp';");
out.write("</script>");
out.close();
return;
}
//return;//不通过则直接
// pass the request along the filter chain
chain.doFilter(req, resp);// 通过则使用这条语句
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}