(七)JSP教程——session对象

        浏览器和Web服务器之间的交互通过HTTP协议来完成,HTTP协议是一种无状态的协议,服务器端无法保留浏览器每次与服务器的连接信息,无法判断每次连接的是否为同一客户端。为了让服务器端记住客户端的连接信息,可以使用session对象来记录每个客户端与服务器的连接信息。

        客户端与服务器端的一次会话,从客户连接到服务器开始,直到与服务器断开连接为止,这之间可以访问session对象的属性和方法。session对象可以用来保存每个用户的信息,从而跟踪每个用户的操作状态。

        当客户端第一次访问服务器时,JSP引擎会为客户端创建一个session对象用来保存客户端在访问各个页面期间所提交的各种信息,并且为该对象分配一个String类型的ID号。

        在响应客户端请求的同时,把ID号发送到客户端的Cookie中。这样就建立了客户端与服务器端的一一对应关系,不同的客户端有不同的session,服务器可以通过不同的ID号来识别不同的客户端。

        下面的实例就是通过表单将数据传递到服务器端,然后再将数据保存到session中。

        此处我们省略掉创建Web项目的步骤。

        首先我们创建一个login.jsp页面,页面的代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>Refresh实例</title>

</head>

<body bgcolor="pink">

<center>

<form action="loginCL.jsp" method="post">

用户名: <input type="text" name="username"/> <br> <br>

密 码: <input type="password" name="password"/> <br> <br>

<input type="submit" value="提交"/>

</form>

</center>

</body>

</html>

        然后创建session的处理界面loginCL.jsp,界面的代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>session实例</title>

</head>

<body>

<%

//接收用户名和密码,完成对用户的验证

String u = request.getParameter("username");

String p = request.getParameter("password");

//在session中保存用户名和密码

session.setAttribute("userName", u);

session.setAttribute("userPassword", p);

%>

    您的用户名和密码已被写入session中,请<a href="context.jsp">猛击</a>查看内容

</body>

</html>

        最后创建context.jsp页面用来查看session信息,界面代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Session实例</title>
</head>
<body>
<%
   String uName = (String) session.getAttribute("userName");
   String uPassword = (String) session.getAttribute("userPassword");
   if (uName == null || uPassword == null) {
      out.println("您还未登录!");
   } else {
      out.println("您的用户名:" + uName + "<br>");
      out.println("您的密码:" + uPassword + "<br>");
   }
   out.println("session对象的创建时间:" + session.getCreationTime() + "毫秒<br>");
   out.println("session对象ID号:" + session.getId() + "<br>");
   out.println("上次方位的最后时间:" + session.getLastAccessedTime() + "毫秒<br>");
   out.println("session的生存时间:" + session.getMaxInactiveInterval() + "<br>");
   out.println("该session对象是否是创建的:" + session.isNew() + "<br>");
%>
</body>
</html>

        启动该应用后,在浏览器地址栏中输入URL:http://localhost:8080/s001/login.jsp
打开的界面如下图所示

        输入相应的用户名和密码,然后点击提交按钮后的界面显示如下图所示

        然后点击页面中的超链接后界面展示如下图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/607872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java毕设之基于springboot的医护人员排班系统

运行环境 开发语言:java 框架:springboot&#xff0c;vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7&#xff0c;8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) 系统详细实现 医护类型管理 医护人员排班系统的系统管理员可以对医护类型添加修改删除以及…

Error: error:0308010C:digital envelope routines::unsupported 问题如何解决

Error: error:0308010C:digital envelope routines::unsupported 通常与 Node.js 的加密库中对某些加密算法的支持有关。这个错误可能是因为 Node.js 的版本与某些依赖库不兼容导致的。特别是在 Node.js 17 版本中&#xff0c;默认使用 OpenSSL 3&#xff0c;而一些旧的加密方式…

电商核心技术揭秘53:社群营销的策略与实施

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘相关系列文章合集&#xff08;3&#xff09; 电商技术揭秘四十一&#xff1a;电商平台的营销系统浅析 电商技术揭秘四十二&#…

Python轻量级Web框架Flask(13)—— Flask个人博客项目

0、前言: ★这部分内容是基于之前Flask学习内容的一个实战项目梳理内容,没有可以直接抄下来跑的代码,是学习了之前Flask基础知识之后,再来看这部分内容,就会对Flask项目开发流程有更清楚的认知,对一些开发细节可以进一步的学习。项目功能,通过Flask制作个人博客。项目架…

YOLOv9中模块总结补充|RepNCSPELAN4详图

专栏地址&#xff1a;目前售价售价69.9&#xff0c;改进点70 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 1. RepNCSPELAN4详图 RepNCSPELAN4是YOLOv9中的特征提取-融合模块&#xff0c;类似前几…

制造业的智慧进化:机器学习与人工智能的全方位渗透

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

libcity 笔记:添加自定义dataset

假设我们把libcity/data/dataset/trajectory_dataset.py复制一份到libcity/data/dataset/dataset_subclass/GeolifeDM_dataset.py&#xff0c;里面内容不变&#xff0c;只是把class的名字换了 那其他需要修改哪些内容&#xff0c;使得这个dataset生效呢 libcity/data/dataset/d…

国内唯一!阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”

近日&#xff0c;在MongoDB用户大会纽约站上&#xff0c;阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”。这是阿里云连续第五年斩获MongoDB合作伙伴奖项&#xff0c;也是唯一获此殊荣的中国云厂商。 MongoDB是当今全球最受欢迎的非关系型数据库之一。凭借灵活的模式和丰富…

Web3探索加密世界:如何避免限制并增加空投成功的几率

今天分享空投如何避免限制以提高效率&#xff0c;增加成功几率&#xff0c;首先我们来了解什么是空投加密&#xff0c;有哪些空投类型。 一、什么是空投加密&#xff1f; 加密货币空投是一种营销策略&#xff0c;包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

【Linux】深浅睡眠状态超详解!!!

1.浅度睡眠状态【S】&#xff08;挂起&#xff09; ——S (sleeping)可中断睡眠状态 进程因等待某个条件&#xff08;如 I/O 完成、互斥锁释放或某个事件发生&#xff09;而无法继续执行。在这种情况下&#xff0c;进程会进入阻塞状态&#xff0c;在阻塞状态下&#xff0c;进程…

Python批量修改图片文件名中的指定名称

批量处理图像时&#xff0c;图片名有时需要统一&#xff0c;本教程仅针对图片中名如&#xff1a;0001x4.png&#xff0c;批量将图片名中的x4去除&#xff0c;只留下0001.png的情况。 如果想要按照原图片顺序批量修改图片名&#xff0c;参考其它博文&#xff1a;按照原顺序批量…

Joplin:自由、安全、多功能的笔记应用

什么是 Joplin&#xff1f; Joplin是一款免费、开源的笔记和待办事项应用程序&#xff0c;可以处理整理到笔记本中的大量笔记。这些笔记是可搜索的&#xff0c;可以直接从应用程序或从您自己的文本编辑器中复制、标记和修改。笔记采用Markdown 格式 功能亮点 功能丰富&#x…

科技云报道:从亚运到奥运,大型国际赛事共赴“云端”

科技云报道原创。 “广播电视转播技术拯救了奥运会”前奥委会主席萨马兰奇这句话广为流传。 奥运会、世界杯、亚运会这样的全球大型体育赛事不仅是体育竞技的盛宴&#xff0c;也是商业盛宴&#xff0c;还是技术与人文的融合秀。随着科技的进步&#xff0c;技术在体育赛事中扮…

google地图js,添加标记,以及infowindow信息弹窗

&#xff08;谷歌地图版本V3&#xff09; var contentString "<div classdevinfo><P>设备ID: BJ-20240507</p> <P>设备状态: 正常</p> <P>通讯信号: 89% </p> <P>设备位置: 中国</p> <P>剂量率: 988</p&…

MATLAB 自定义实现点云随机抽稀方法(66)

MATLAB 自定义实现点云随机抽稀方法(66) 一、算法介绍二、算法实现1.代码2.结果三、数据链接一、算法介绍 MATLAB虽然提供了点云随机抽稀的内置函数,但是我们也可以自己实现这个功能,有助于理解,下面是具体的实现效果和代码(直接复制粘贴即可使用): 使用提供的数据直接…

Matlab如何导出高质量论文插图?科研效率UpUp第8期

当你用Matlab绘制了一张论文插图&#xff1a; 想要所见即所得&#xff0c;原封不动地将其保存下来&#xff0c;该怎么操作呢&#xff1f; 虽说以前总结过7种方法&#xff08;Matlab导出论文插图的7种方法&#xff09;&#xff0c;但要说哪一种可以满足上面的要求&#xff0c;想…

树(数据结构)

树的定义 一个根结点&#xff0c;其余结点分为 m 个不相交的集合&#xff0c; 其中每个集合本身又是一棵树&#xff0c;并且称为根的子树。 树的根结点没有前驱&#xff0c;其他结点有且仅有一个前驱。 所有结点可以有0个或多个后继。 基本术语 结点的度 树的度 &#xff1a; 树…

String类 StringBuffer 类 StringBuilder 类

String 类的理解和创建对象 1&#xff0c;String 对象用于保存字符串&#xff0c;也就是一组字符数列2&#xff0c;字符串常量对象是用双引号括起的字符序列。例如&#xff1a;“你好”、“12.97”、“boy”等3&#xff0c;字符串的字符使用Unicode字符编码&#xff0c;一个字…

与Apollo共创生态:助力自动驾驶迈向新台阶

引言Apollo七周年大会企业协同工具链携手伙伴共创生态未来展望与总结 引言 2024年4月19日&#xff0c;一场智能汽车未来的盛宴正朝我们走来——Apollo开放平台的七周年大会。 此次大会主题为“破晓•拥抱智变时刻”其中“破晓”象征着新时代的曙光&#xff0c;意味着智能汽车技…

phpstudy(MySQL启动又立马停止)问题的解决办法

方法一&#xff1a;查看本地安装的MySQL有没有启动 1.鼠标右击开始按钮选择计算机管理 2.点击服务和应用程序 3.找到服务双击 4.找到MySQL服务 5.双击查看是否启动&#xff0c;如启动则停止他&#xff0c;然后确定&#xff0c;重新打开phpstudy,启动Mysql. 方法二&#xff…