JSP实现数据传递与保存(二)

一、session对象

  • session机制是一种服务器端的机制,在服务器端保存信息
  • 用于存储与用户相关的会话信息

1.1 session与窗口的关系

  • 每个session对象都与一个浏览器窗口对应,重新开启一个浏览器窗口,可以重新创建一个session对象(不同版本浏览器可能有所差别)
  • 通过超链接打开新的窗口,新窗口的session与其父窗口的session相同
  • 每个session都有唯一的session ID          public String getId();

代码演示

展示session ID
//首页:
<%String sessionId = session.getId();
%>
<h1>SESSIONID:<%=sessionId%></h1>//后台首页:
<%String sessionId = session.getId();
%>
<h1>SESSIONID:<%=sessionId%></h1>

1.2 使用session对象存储数据

使用session对象存储数据的步骤:

  1. 使用属性保存数据
  2. 从属性中读取数据,必要时需要进行数据类型转换

代码演示

使用session保存数据
//doLogin:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html>
<head><title></title>
</head>
<body>
<%//修改request和response的字符集编码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//获取注册的用户名和密码String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");if ("admin".equals(userName) && "123456".equals(userPwd)) {//登录成功,使用绝对定位跳转到后台主页//重定向跳转:session.setAttribute("loginUserName",userName);     //使用session保存数据response.sendRedirect(request.getContextPath() + "/manage/index.jsp");//转发跳转://request.getRequestDispatcher("/manage/index.jsp").forward(request,response);} else {//登录失败,调回系统登录首页//这种写法也属于重定向跳转:out.print("<script>alert('登录失败');location.href=" + request.getContextPath() + "/index.jsp");out.flush();}
%>
</body>
</html>//后台首页:
<%//String userName = request.getParameter("userName");//从doLogin的session中调用数据String loginUserName = (String) session.getAttribute("loginUserName");
%>
<h2><%=loginUserName%></h2>

1.3 会话清除和过期

程序主动清除session数据有两种实现方式:

  1. 设置会话失效:session.invalidate();
  2. 只移除会话的一个属性:session.removeAttribute(String name);

服务器主动清除长时间没有再次发出请求的session,两种实现方式:

        1.通过setMaxInactiveInterval(int interval)方法,单位是秒

<%session.setAttribute("loginUser",user); session.setMaxInactiveInterval(600); response.sendRedirect("admin.jsp"); 
%>

        2.修改tomcat服务器的web.xml,单位是分钟

<session-config><session-timeout>30</session-timeout>
</session-config>

代码演示

到时间后自动失效
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html>
<head><title></title>
</head>
<body>
<%//修改request和response的字符集编码request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//获取注册的用户名和密码String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");if ("admin".equals(userName) && "123456".equals(userPwd)) {//登录成功,使用绝对定位跳转到后台主页//重定向跳转:session.setMaxInactiveInterval(30);       //到时间后自动失效(30秒)session.setAttribute("loginUserName",userName);     //使用session保存数据response.sendRedirect(request.getContextPath() + "/manage/index.jsp");//转发跳转://request.getRequestDispatcher("/manage/index.jsp").forward(request,response);} else {//登录失败,调回系统登录首页//这种写法也属于重定向跳转:out.print("<script>alert('登录失败');location.href=" + request.getContextPath() + "/index.jsp");out.flush();}
%>
</body>
</html>

小结

  • 用浏览器访问服务器——产生会话
  • 通过浏览器在网站登录——在会话中保存数据
  • 登录成功后用个人身份进行访问——会话有效期内
  • 关闭了浏览器——结束会话
  • 服务器主动结束会话——会话到期
  • 使会话失效、删除属性——及时释放会话资源
  • 程序主动结束会话、会话到期——会话中的数据丢失

二、JSP页面中的包含操作

2.1 JSP中实现页面包含操作的方法

        1.使用<%@include%>指令实现静态包含

<%@include file = "URL"%>

        2.使用<jsp:include>标签实现动态包含

<jsp:include page = "URL">

2.2 动态包含与静态包含的区别

2.3 application对象

  • application对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或servlet之间共享变量
  • application对象开始于服务器的启动,终止于服务器的关闭
  • application对象实现了用户间的数据共享,可以存放全局变量

application对象常用方法

小结

JSP常用内置对象

三、对象的作用域

3.1 作用域的分类

小结

四、Cookie

4.1 Cookie简介

Cookie是Web服务器保存在客户端的一系列文本信息

Cookie的作用:

  1. 对特定对象的追踪(Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告)
  2. 实现各种个性化服务(Cookie能帮助站点统计用户个人资料从而实现各种各样的个性化服务)
  3. 简化登录(Cookie有效期限未到时,Cookie能使用户在不重新输入用户名和密码的情况下进入曾经浏览过的一些站点)

Cookie在安全方面,容易泄露信息

4.2 session和Cookie的联系

服务器可以将session ID写入Cookie并发送返回客户端,这样客户端就可以在后续的请求中将该Cookie作为身份验证的一部分发送给服务器

4.3 Cookie常用方法

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Connection管理类实现(模块六)

目录 类功能 类定义 类实现 编译 本文使用了自定的Any类 Any类的简单实现-CSDN博客 类功能 类定义 // DISCONECTED -- 连接关闭状态 CONNECTING -- 连接建立成功-待处理状态 // CONNECTED -- 连接建立完成,各种设置已完成,可以通信状态 DISCONNECTING -- 待关闭状态 t…

羊大师讲解羊奶和牛奶的优缺点分别是什么?

羊大师讲解羊奶和牛奶的优缺点分别是什么&#xff1f; 羊奶和牛奶各有其优缺点 羊奶的优点&#xff1a; 羊奶更易消化吸收&#xff0c;因为其含有更多的α-乳清蛋白和较少的酪蛋白&#xff0c;同时其脂肪球也较小&#xff0c;含有较多的不饱和脂肪酸&#xff0c;有助于小肠中…

FPS游戏漫谈优化包体传输

在游戏服务器的部署环境中&#xff0c;机房的网络带宽都是有限制的。如果通信传输的数据总量太大&#xff0c;会挤占带宽甚至达到带宽上限&#xff0c;影响正常消息发送。另外&#xff0c;如果包体太大&#xff0c;在弱网环境下的通信质量会变差&#xff0c;更容易发生丢包重传…

Oracle EBS GL 外币折算逻辑

背景 由于公司财务在10月份期间某汇率维护错误,导致帐套折算以后并合传送至合并帐套生成合并日记帐凭证的借贷金额特别大,但是财务核对的科目余额有没有问题,始终觉得合并日记帐生成会计分发有问题,需要我们给出外币折算逻辑。 基础设置 汇率 Path: GL->设置->币种-&…

pytest-配置项目不同环境URL

pytest自动化中&#xff0c;在不同环境进行测试&#xff0c;可以将项目中的url单独抽取出来&#xff0c;通过pytest.ini配置文件实现&#xff08;类似postman中的“Environments”&#xff09; 使用步骤&#xff1a; 1&#xff09;安装pytest-base-url插件 pytest-base-url …

博客阿里云服务器2024年最新优惠价格表,61元起

博客 阿里云服务器2024年最新优惠价表&#xff0c;轻量级应用服务器61元起&#xff0c;云服务器99元起 01-30 第591章 2024年阿里云服务器最新优惠价是多少&#xff1f; 阿里云服务器的租用价格在不同时期是不同的。 进入2024年&#xff0c;阿里云服务器的优惠价格也发生了…

好书推荐丨细说Python编程:从入门到科学计算

文章目录 写在前面Python简介推荐图书内容简介编辑推荐作者简介 推荐理由粉丝福利写在最后 写在前面 本期博主给大家推荐一本Python基础入门的全新正版书籍&#xff0c;对Python、机器学习、人工智能感兴趣的小伙伴们快来看看吧~ Python简介 Python 是一种广泛使用的高级、解…

Git Windows安装教程

Git的下载 去 Git 官网下载对应系统的软件了&#xff0c;下载地址为 git-scm.com 或者 gitforwindows.org git-scm 是 Git 的官方&#xff0c;里面有不同系统不同平台的安装包和源代码gitforwindows.org 里只有 windows 系统的安装包 安装 使用许可声明 选择安装目录 选择安…

深入理解Java中的Reader类:一步步剖析

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

回归预测 | Matlab实现CPO-HKELM冠豪猪算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现CPO-HKELM冠豪猪算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现CPO-HKELM冠豪猪算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-HKELM冠豪猪算法优化混合核极限学习机…

我耀学IT—day03-徽章及进度条

一、Bootstrap5 信息提示框 Bootstrap 5 可以很容易实现信息提示框。 提示框可以使用 .alert 类, 后面加上 .alert-success, .alert-info, .alert-warning, .alert-danger, .alert-primary, .alert-secondary, .alert-light 或 .alert-dark 类来实现: 例: <div class&quo…

IO进程线程复习:进程线程

1.进程的创建 #include<myhead.h>int main(int argc, const char *argv[]) {printf("hello world\n");//父进程执行的内容int num520;//在父进程中定义的变量pid_t pidfork();//创建子进程if(pid>0){while(1){printf("我是父进程&#xff0c;num%d\n&…

[第一章 web入门]SQL注入-1 题目分析与详解

一、题目简介&#xff1a; 题目来源&#xff1a;BUUCTF网址 题目介绍如图&#xff1a;获取flag值。 二、解题思路&#xff1a; 首先看到题目主页面有一段文字&#xff0c;貌似没有什么作用&#xff0c;我们先使用HackBar导入URL。 我们发现?id1&#xff0c;可知这是一个很基…

小猫咪不喝水怎么办?主食冻干、主食罐头喂养从饮食上给猫咪补水

小猫咪不喝水怎么办&#xff1f;它们会不会在感到口渴、缺水时自己去寻找水喝呢&#xff1f;猫的祖先是来自沙漠的猫科动物&#xff0c;在沙漠几乎找不到水源&#xff0c;因此它们进化出了“低渴感”&#xff0c;并且它们的肾脏进化出了浓缩水分再吸收的功能&#xff0c;使得猫…

安全测试工具之nmap使用指南

文章目录 一、前言二、简介三、使用示例&#xff08;一&#xff09;常用命令&#xff08;二&#xff09;主机存活检测&#xff08;三&#xff09;端口探测&#xff08;四&#xff09;服务识别&#xff08;五&#xff09;操作系统识别 三、其它 一、前言 当我们在构建环境或排查…

怎么使用Python轻松打造淘宝主图视频生成神器

目录 一、引言 二、淘宝主图视频的重要性 三、Python打造淘宝主图视频生成神器的步骤 1. 准备工作 2. 收集素材 3. 制作视频 4. 调整和优化 5. 上传至淘宝 四、案例分享 五、总结 一、引言 随着电子商务的飞速发展&#xff0c;淘宝作为中国最大的网络购物平台之一&am…

【非递归版】归并排序算法(2)

目录 MergeSortNonR归并排序 非递归&归并排序VS快速排序 整体思想 图解分析​ 代码实现 时间复杂度 归并排序在硬盘上的应用&#xff08;外排序&#xff09; MergeSortNonR归并排序 前面的快速排序的非递归实现&#xff0c;我们借助栈实现。这里我们能否也借助栈去…

Qt QWiget 实现简约美观的加载动画 第三季

&#x1f603; 第三季来啦 &#x1f603; 这是最终效果: 只有三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QVBoxLayout> #include <QGridLayout> int main(int argc, char *argv[]…

一款.NET下 WPF UI框架介绍

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等&#xff0c;今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI&#xff0c;这款ui框架美观现代化&#xff0…

使用单一ASM-HEMT模型实现从X波段到Ka波段精确的GaN HEMT非线性仿真

来源&#xff1a;Accurate Nonlinear GaN HEMT Simulations from X- to Ka-Band using a Single ASM-HEMT Model 摘要&#xff1a;本文首次研究了ASM-HEMT模型在宽频带范围内的大信号准确性。在10、20和30 GHz的频率下&#xff0c;通过测量和模拟功率扫描进行了比较。在相同的频…