好久没有写了,今天分享一下登录验证
首先创建一个类继承Filter
下面是拦截器的代码
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;
import webapidemo.cn.wzy.Entity.MyUser.User;
/**
*
* @author 吴某人 检测是否越过登录进行访问
*
*/
public class LoginedCheckInterceptor implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
// 将参数转型
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
// 有几个路径不需要判断,将它们排除 例如我的是"/login.do"
String[] paths = new String[] { "/login.do" };
String sp = request.getServletPath();
for (String path : paths) {
// 当前路径是这几个之一
if (path.equals(sp)) {
// 让请求继续执行,无需判断是否登录
chain.doFilter(request, response);
return;
}
}
// 判断用户是否登录
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
// 未登录,重定向到登录页面
request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
// 已登录,请求继续执行
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
}
}
接下来是在具体的controller里面
再就是web.xml里面
这样就完成了.哪里不懂可以留言