javaweb学习23:Filter实现权限拦截
-
监听器:GUI编程中经常使用;
-
过滤器:重点理解过滤器;
-
需求:
-
用户登录后才能进入主页!
-
-
核心:Session的用法;
-
-
思路:
-
1,用户登录之后,向Session中放入用户的数据;
-
2,进入主页的时候,要判断用户是否已经登录;要求:过滤器实现;
-
-
代码案例:login.jsp
<%
-
代码案例:success.jsp
<%
-
代码案例:error.sjp
<%
-
代码案例:登录Servlet
public class LoginServlet extends HttpServlet {
?
-
代码案例:退出Servlet
?
public class LogoutServlet extends HttpServlet {
?
-
代码案例:过滤器
?
/**
* 过滤器
*/
public class SysFilter implements Filter {
?
?
public void init(FilterConfig filterConfig) throws ServletException {
?
}
?
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("开始处理...");
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse resp=(HttpServletResponse)response;
Object username = req.getSession().getAttribute("USER_SESSION");
?
if(username == null){
resp.sendRedirect("/error.jsp");
}
?
chain.doFilter(request,response);//放行
System.out.println("结束处理...");
}
?
public void destroy() {
?
}
}
?
-
代码案例:web.xml