package cn.itcast.filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class UserAccessFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
StringBuffer sb = request.getRequestURL();
String url = sb.toString();
HttpSession session = request.getSession(false);
if (url.contains("/LoginServlet")||url.contains("/ToLoginJspServlet")||url.contains("/login.jsp")) {
chain.doFilter(request, response);
} else {
if (session != null) {
Object o = session.getAttribute("UserInfo");
if (o != null) {
chain.doFilter(request, response);
} else {
response.sendRedirect("ToLoginJspServlet");
}
} else {
response.sendRedirect("ToLoginJspServlet");
}
}
}
public void init(FilterConfig arg0) throws ServletException {
}
public void destroy() {
}
}
本文介绍了一种基于Java Servlet的用户访问过滤器实现方法。该过滤器能够检查用户是否已登录,若未登录则重定向至登录页面;对于登录页面及其相关请求,则允许直接访问。此外,还展示了如何通过Session来验证用户身份。
1463

被折叠的 条评论
为什么被折叠?



