今天带来的是在写web项目时候,如何判断用户是否进行了登录操作。
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
Userinfo u = new Userinfo(name, pwd);
Userinfo userinfo = new Userservice().get(u);
//通过jsp页面获取出用户输入的账号和密码到数据库进行查询,有没有这个用户数据判断是否执行保存登录状态
if (userinfo != null) {
request.getSession().setAttribute("user", userinfo);
// 登录成功可以设置时间更长一些
//setMaxInactiveInterval(60) 60S内不做任何事情,Session就失效。比如,你刚登录了系统,接着跑去财务部收钱, 70S后回来,再继续操作系统,这时应该会提示重新登录。
request.getSession().setMaxInactiveInterval(60 * 60 * 24 * 7);
// 保存登录状态
Cookie ck = new Cookie("JSESSIONID", request.getSession().getId());
ck.setPath("/");
ck.setMaxAge(30);
response.addCookie(ck);
}
}
//然后再其它的servlet中判断user是否为空判断是否有登录
public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Object user = request.getSession().getAttribute("user");
if (user == null) {
request.setAttribute("info", "你没有登录");
request.getRequestDispatcher("/info.jsp").forward(request, response);
return;
}
}
博主不是很专业,欢迎大家指证(0_0),谢谢欣赏。