1.课程回顾:
会话管理:
1.会话管理:管理浏览器与服务器之间的会话过程产生的会话数据
2.Cookie技术:会话数据保存在浏览器的客户端
Cookie核心的API:
2.1在服务器端创建Cookie对象
Cookie cookie = new Cookie(name,value)
2.2把cookie发送给浏览器端(通过响应头:set.cookie)
response.addCookie(cookie)
2.3 浏览器带着cookie信息访问服务器(通过请求头),服务器就能得到Cookie信息
Cookies[] cookies = request.getCookies()
局限:
1.只能保存字符串类型,不能保存中文
2.一个cookie不能超过4kb
3.session技术:会话数据保存在服务器端(内存)
session核心的API
1.创建或是得到session
HttpSession = request.getSession()
只是得到session : request.getSession(false)
2.会话数据保存在session中
setAttribute(name,数据):保存数据
session.getAttribute(name):得到数据
removeAttribute(name)
注意:
1.session.setIntactiveInterval(时间):设置session的过期时间:秒
2.session.invalidate() 手动销毁session对象
2.session案例:(保存在服务器端的硬盘上,即使服务器重启,数据依然在)
用户登录
1 package com.java.session; 2 3 import java.io.IOException; 4 import java.util.Enumeration; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse;10 import javax.servlet.http.HttpSession;11 12 /**13 * Servlet implementation class LoginServlet14 */15 public class LoginServlet extends HttpServlet {16 protected void doGet(HttpServletRequest request, HttpServletResponse response)17 throws ServletException, IOException {18 request.setCharacterEncoding("utf-8");19 20 response.setContentType("text/html;charset=utf-8");21 22 // 处理页面传过来的数据:登陆或注册 用户名和密码23 24 String name = request.getParameter("username");25 String password = request.getParameter("password");26 String operate = request.getParameter("operate");27 28 // 获取session29 HttpSession session = request.getSession();30 31 // 得到session中存储的数据名称32 Enumerationnames = session.getAttributeNames();33 34 boolean b = true;35 36 if ("login".equals(operate)) {37 // 如果是登陆操作 判断用户名密码是否正确38 while (names.hasMoreElements()) {39 String name2 = names.nextElement();40 if (name.equals(name2)) {41 System.out.println(name2);42 // 找到用户名43 b = false;44 String p = (String) session.getAttribute(name2);45 System.out.println(p);46 if (password.equals(p)) {47 // 用户名与密码匹配48 response.getWriter().write("登陆成功");49 } else {50 // 用户名与密码不匹配51 response.getWriter().write("用户名与密码不匹配:" + "用户名:" + name + "===" + "密码:" + password);52 }53 }54 }55 if (b) {56 // 没找到用户名57 response.getWriter().write("用户名错误!!!");58 }59 60 } else if ("register".equals(operate)) {61 // 如果为注册 判断用户名是否重复62 while (names.hasMoreElements()) {63 String name2 = names.nextElement();64 if (name.equals(name2)) {65 // 用户名已存在66 response.getWriter().write("此用户名已存在,请重新注册!");67 b=false;68 }69 }70 71 if (b) {72 // 用户名不存在73 session.setAttribute(name, password);74 response.getWriter().write("注册成功!!!" + "用户名:" + name + "======" + "密码:" + password);75 }76 77 }78 79 }80 81 }
1 2 3 4 515 16Insert title here 6 7 8