博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
会话_课后回顾和相关案例
阅读量:4959 次
发布时间:2019-06-12

本文共 3949 字,大约阅读时间需要 13 分钟。

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         Enumeration
names = 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 
5 Insert title here 6 7 8
9 用户名:
10 密码:
11
12
13 14
15 16

 

转载于:https://www.cnblogs.com/syousetu/p/6547565.html

你可能感兴趣的文章
Java回顾之多线程
查看>>
sqlite
查看>>
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
Git 笔记 - section 1
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
DataTable和 DataRow的 区别与联系
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
mysql数据库中数据类型
查看>>
Fireworks基本使用
查看>>
两台电脑间的消息传输
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>