HttpSession
HttpSession

案例:保存用户登陆信息+验证码
LoginForm.jsp
<body> <script type="text/javascript"> function change() { var img = document.getElementById("img"); img.src = "/review/VerifyServlet?a=" + new Date().getTime(); } </script> <% String name = ""; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie c : cookies) { if ("uname".equals(c.getName())) { name = c.getValue(); } } } %> <% String message = ""; String msg = (String) request.getAttribute("msg"); if (msg != null) { message = msg; } %> <h1><%=message%></h1> <form action="/review/LoginServlet" method="post"> 用户名:<input type="text" name="username" value="<%=name%>"><br> 密 码:<input type="text" name="password"><br> 验证码:<input type="text" name="verifycode" size="3"> <img id="img" src="/review/VerifyServlet"><a href="javascript:change()">换一张</a><br> <input type="submit" value="登录"> </form> </body>
LoginServlet.java
public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //验证码认证 String num1 = request.getParameter("verifycode"); String num2 = (String)request.getSession().getAttribute("Verify_code"); if(!num1.equalsIgnoreCase(num2)) { request.setAttribute("msg", "验证码有误!!!"); request.getRequestDispatcher("/login/LoginForm.jsp").forward(request, response); return; } request.setCharacterEncoding("utf-8"); String name = request.getParameter("username"); String psw = request.getParameter("password"); if ("zq".equals(name) && "cmlx".equals(psw)) { Cookie cookie = new Cookie("uname", name); cookie.setMaxAge(60 * 60); response.addCookie(cookie); HttpSession session = request.getSession(); session.setAttribute("name", name); response.sendRedirect("/review/login/succ1.jsp"); } else { request.setAttribute("msg", "你输入的信息有误!!!"); request.getRequestDispatcher("/login/LoginForm.jsp").forward(request, response); } } }
VerifyServlet.java
public class VerifyServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 1.生成图片 * 2.保存图片上的文本到session * 3.把图片响应给客户端 */ VerifyCode vc = new VerifyCode(); BufferedImage image = vc.getImage(); request.getSession().setAttribute("Verify_code", vc.getText()); VerifyCode.output(image, response.getOutputStream()); } }
succ.jsp
<body> <% String s1 = (String)session.getAttribute("name"); if(s1 == null){ request.setAttribute("msg", "你还没登录呢!"); request.getRequestDispatcher("/login/LoginForm.jsp").forward(request, response); } %> <% String msg = ""; String s = (String)session.getAttribute("name"); if(s != null){ msg = s; } %> <h1>欢迎<%=msg %>来到本网站!</h1> </body>
HttpSession原理
HttpSession的其他方法

web.xml中配置session的最大不活动时间

URL重写



浙公网安备 33010602011771号