当前位置:编程学习 > JAVA >>

能用过滤器防止未经登陆直接进入系统吗

我想用JSP的过滤器防止用户未经登陆进入系统,但是当我直接在地址栏访问某个servlet时,就会报错

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
if (request.getSession().getAttribute("institution") == null
&& !(request.getRequestURI().equals("/beidouCVS/LoginServlet") )) {
System.out.println("拦截了未经登陆的地址:" + request.getRequestURI());
response.sendRedirect(request.getContextPath() + "/login.jsp");
System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$");
}
chain.doFilter(request, response);
} --------------------编程问答-------------------- 一般不会用这种方式吧 --------------------编程问答-------------------- 可以的,错误不是过滤器的错误。 --------------------编程问答-------------------- 就是用过滤器/拦截器来防止未登陆的用户的 --------------------编程问答-------------------- 在System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$");后面加上return;
不然程序还是继续会往下执行。 --------------------编程问答--------------------

HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse resp=(HttpServletResponse)response;
HttpSession session=req.getSession();
String url=req.getRequestURL().toString();
if((session.getAttribute("user")==null&&url.indexOf("index.jsp")!=-1)
||(url.indexOf("MainServlet")!=-1&&req.getParameter("method")==null)){
resp.sendRedirect("login.jsp");
}else{
chain.doFilter(request, response);
}
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,