网站所提供的服务前提是用户要登录过才能使用。
如果用户登陆过了,访问该网站,就让用户正常访问,否则就跳转到登陆界面。
这是非常常见的场景,通过使用 session 来实现这个功能。
一般的loginServlet中会将用户名保存在session中,那么经过loginServlet成功运行后会跳转到需要访问的页面 该页面servlet会进行查看session中是否为空。如果为空,就表示用户没有登陆过,就跳转到登陆页面
所以 判断用户是否登录涉及到两个及以上的servlet判断
示例:
if ("admin".equals(name) && "123".equals(password)) {
request.getSession().setAttribute("userName", name);//一般对象为request 其操作是面向服务端的
response.sendRedirect("listHero");//这一段就是在判断用户的输入是否正确 正确就会向服务端请求将其保存于session中并设置其参数
} else {
response.sendRedirect("login.html");
}
所跳转的页面servlet 判定session中是否该参数为空:
String userName = (String) request.getSession().getAttribute("userName");
if (null == userName) {
response.sendRedirect("login.html");
return;
}
从session中取出userName,如果是空,就表示用户没有登录,或者登录已经超过了30分钟。 客户端跳转到login.html,让用户重新登陆