创建好LoginFilter extends HttpFilter类,导入javax.servlet.api架包,然后ctrl+/创建doFilte方法,因为我的eclipse出现的默认三个参数是:
HttpServletRequest req, HttpServletResponse res, FilterChain chain
为了代码美观好复用,我就把前两个参数改为了request和response,但是在后来引用getSession()方法时,居然没有提示,于是我就手敲了上去,居然报错了,一开始我以为是web.xml中的servlet没有配置好,甚至又重新配置了一遍,还是不行,抱着试一试的想法,将参数修改为原来额默认参数,居然成功了,一度以为是我的eclipse又抽风了,但是为什么不能去修改参数呢,而且其他的方法可以引用,唯独getSession()未定义。
报错:The method getsession() is undefined for the type HttpServletRequest
代码如下:
protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
HttpSession session=req.getSession();
Object user=session.getAttribute("loginuser");
if(user!=null) {
//有值已经登陆
super.doFilter(req, res, chain);
}else {
//转发到login
//req.getRequestDispatcher("login").forward(req, res);
res.sendRedirect("");
}
super.doFilter(req, res, chain);
}