ServletRequest和HttpServletRequest的关系
1.HttpServletRequest继承了ServletRequest
2.HttpServletRequest额外添加了一些处理http协议相关方法
- 1.request.getMethod(); //获取用户的请求方式(7种,http)
- 2.request.getSession();
3.HttpServletResponse继承了ServletResponse,添加了http协议相关的方法
- 1.response.sendRedirect(); //重定向
在filter中,doFilter()方法的参数为ServletRequest和ServletResponse
在使用时,对ServletRequest和ServletResponse进行 强转 即可:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 1、判断用户的session中是否有登录状态
HttpServletRequest req = (HttpServletRequest) request;//强转
HttpSession session = req.getSession();
// 2、无则将用户请求重定向到登录页面
if (session == null || session.getAttribute("user") == null) {
((HttpServletResponse) response).sendRedirect(req.getContextPath() + "/login.jsp");//强转
} else {
// 3、有则放行
chain.doFilter(request, response);
}
}