会话_课后回顾和相关案例

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 LoginServlet
14  */
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         // 获取session
29         HttpSession session = request.getSession();
30
31         // 得到session中存储的数据名称
32         Enumeration<String> 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 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Insert title here</title>
 6 </head>
 7 <body>
 8     <form action="LoginServlet">
 9         用户名:<input type="text"  name="username" /> <br/>
10         密码:<input type="password" name="password"/ ><br />
11         <input type="submit" name="operate" value="login">
12          <input type="submit" name="operate" value="register">
13
14     </form>
15 </body>
16 </html>
时间: 2024-10-11 13:33:58

会话_课后回顾和相关案例的相关文章

.Net常用技巧_导出 Excel 和相关打印设置

Excel.Application myExcel = new Excel.Application();发 表Excel.Workbook workbookData = myExcel.Application.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);Excel.Worksheet xlSheet = (Worksheet)workbookData.Worksheets[1];//取得sheet1 1) 显示当前窗口: xlSheet.

关于DOM的事件操作/DOM介绍/关于DOM操作的相关案例

一.关于DOM的事件操作 1.JavaScript基础分为三个部分: ECMAScript: JavaScript的语法标准,包括变量,表达式,运算符,函数,if语句,for语句 DOM: 文档对象模型, 操作网页上的元素的API, 比如让盒子移动, 变色,  轮播图等.. BOM: 浏览器对象模型, 操作浏览器部分功能的API, 比如让浏览器自动滚动 2.事件 JS是以事件驱动为核心的一门语言 3.事件的三要素 (1).事件的三要素: 事件源, 事件, 事件驱动程序 (2).总结: 事件源:

ServletContext及相关案例

ServletContext对象 (域对象) 定义:WEB容器在启动时,它会为每个WEB运用程序都创建一个对应的ServletContext对象,它代表当前WEB运用. 一个WEB运用对应一个ServletContext对象 一个WEB运用下有多个Servlet程序 所有的Servlet程序都共享同一个ServletContext对象 作用 1.获取WEB运用的全局初始化参数         案例和ServletConfig类似 String getInitParameter(String na

6.Maven聚合和继承,相关案例配置

 1有时候一个项目中有很多个模块,要想各个模块之间影响较小,可以将每个模块拿出来作为一个项目模块,对每个项目模块进行独立的开发. 2在这些过程中会遇到关于聚合和继承的问题. 3何为聚合? A如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合,也就是说当我们点击一个pom的时候,同时运行多个项目模块.这时候要用到以下的标签,将各个项目模块整合在一起. <modules> <module>-</module> </modules> 4何为继承

区块链与公证、记录相关案例

Stampery是一家想用比特币的区块链代替公证人的创业公司.你可以用Stampery证明任何文件.它的创始人表示:"你可以为任何文件生成不可改变的.准确的证明,证明其存在性和完整性.世界上的任何人都可以不花一分钱自动证明某个文件是在何时创建的且之后再未改动过,相比于文件公证,Stampery的优势在于你不必带着纸质文件亲自去公证人那里,可节省不少时间.我们不是受信的证明人.这意味着即使Stampery不复存在,我们生成的每个证明依然能够被验证,我们没有会被黑客攻击的集中化数据库.由于法律证明是

DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

12-关于DOM操作的相关案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

13-javascript-DOM操作的相关案例

1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; }

2016年4月6日第十课_课后习题解答

第18章.风险管理 1.风险管理包括哪六个过程?(记) 答:1).风险管理规划: 2).风险识别: 3).定性风险分析: 4).定量风险分析: 5).应对计划编制: 6).风险监控: 2.什么是应急计划?请举例. 答:应急计划:是指当一项可能的风险事件实际发生时项目团队将采取的预先确定的措施: 例如:当项目经理根据一个新的软件产品开发的实际进展情况,预计到该软件开发成果奖不能及时集成到正在按合同进行的信息系统项目中时,他们就会自动应急计划. 3.什么是应急储备?请举例. 答:应急储备:是指根据项