Session经常用来完成系统权限和认证功能
- 权限:在用户身份认证后,根据权限知道 — 你能做什么
- 认证:用户登陆 — 你是谁
将登陆用户信息保存到Session 有什么作用 ? —- 如果session中没有用户信息 未登陆
欢迎界面
<body>
<h1>系统主页</h1>
<%
// 因为session会保存登陆用户信息,如果session中没有该信息 说明用户未登录
if(request.getSession().getAttribute("username")==null){
//未登录
out.println("你还没有登陆,<a href='/Login/Session/demo/login.jsp'>去登陆</a>");
}else{
// 已经登陆
out.println("欢迎你,"+request.getSession().getAttribute("username"));
}
%>
</body>
注册界面:
<script type="text/javascript">
function change(){
//切换验证码
document.getElementById("myimg").src="/Login/checkcode?"+new Date().getTime();
}
</script>
</head>
<body>
<h1>登陆页面</h1>
<h3 style="color:red;">${requestScope.msg }</h3>
<form action="/Login/login" method="post">
用户名 <input type="text" name="username" /><br/>
密码 <input type="password" name="password" /><br/>
请输入验证码 <input type="text" name="checkcode" /><img id="myimg" src="/Login/checkcode" style="cursor:pointer; " onclick="change();"/><br/>
<input type="submit" value="登陆" />
</form>
</body>
注册Servlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 用户登陆
*
* @author megustas
*
*/
public class LoginServlet extends HttpServlet {
//用于保存用户账号密码
private Map<String, String> userInfo = new HashMap<String, String>();
@Override
public void init() throws ServletException {
// 制作用户假数据,模拟数据库
userInfo.put("aaa", "111");
userInfo.put("bbb", "222");
userInfo.put("ddd", "333");
userInfo.put(