最近做项目的时候,用到了过滤器的使用配置。
作为项目的笔记记录:
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * 过滤器使用:用户没用登录,不可以在浏览器输入地址访问页面 * @author Administrator * */ public class OnlineFilter extends HttpServlet implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { RequestDispatcher dispatcher = request.getRequestDispatcher("Login.jsp"); HttpServletRequest req =(HttpServletRequest)request; HttpServletResponse res =(HttpServletResponse)response; HttpSession session =req.getSession(true); //从session 里面获取用户名的信息 String user =(String)session.getAttribute("user"); //判断如果没有取到用户信息,就跳转到登陆页面,提示用户进行登陆 if(user == null || "".equals(user)){ //跳转到登陆的页面,进行用户登录 dispatcher.forward(request,response); System.out.println("用户没有登录,请登陆!"); }else{ System.out.println("用户已经登陆成功,允许继续操作!"); } chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log } public void init() throws ServletException { } } |
Web.xml配置
<!-- 过滤器的 过滤用户登陆的session对象 --> |