【JavaWeb】09-四大作用域对象

JavaWeb09(购物车操作) 优点: Cookie是存储在客户端的,占用很少的资源,可以减轻服务器的压力。缺点: 基于Cookie开发的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效, 如果换一台机器再去登录的话,就会丢失购物车信息。 阅读详情

1. 四大作用域

  1. application: 应用
作用域是整个项目
项目关闭、重启数据会丢失
如果项目不关闭,所有用户访问该项目的所有页面都可以获取application
  1. session: 会话
作用域是一次会话
关闭浏览器数据会丢失
如果会话不中断,本次会话访问的所有页面都可以获取session中的数据
  1. request: 请求
作用域是一次请求
发送另一次请求时数据无法传递
  1. pageContext: 页面上下文
作用域是一个页面
不同页面无法共享域中的数据。

2. 作用域存放数据的方式是key-value形式,key是String,value是Object

  1. 基本使用
//我们在page1.jsp中存值。
application.setAttribute("name","123");
session.setAttribute("name","123");
request.setAttribute("name","123");
pageContext.setAttribute("name","123");

//我们在page1.jsp中取值
application域:<%=application.getAttribute("name") %><br>
session域:<%=session.getAttribute("name") %><br>
request域:<%=request.getAttribute("name") %><br>
pageContext域:<%=pageContext.getAttribute("name") %><br>
这时,四个值都是可以取到的

//此时,定义一个page2.jsp,按照相同的方法取值
application域:<%=application.getAttribute("name") %><br>
session域:<%=session.getAttribute("name") %><br>
request域:<%=request.getAttribute("name") %><br>
pageContext域:<%=pageContext.getAttribute("name") %><br>
这时,request和pageContext的数据会丢失

//当我们浏览器重启之后,session的数据会丢失
  1. request域的转发
request.setAttribute("name","123");
request.getRequestDispatcher("page06.jsp").forward(request, response);
//此时在page06.jsp也可以获得request域的值。
//转发只可在项目内的页面跳转不可转发到其他项目中去
 request.getRequestDispatcher("http://www.baidu.com").forward(request, response);
  1. response的重定向
request.setAttribute("name","123");
response.sendRedirect("page06.jsp");
//此时在page06.jsp中访问不到request的值
//重定向可以访问到百度,但是值发不过去
response.sendRedirect("http://www.baidu.com")

3. session的实际使用:

  1. 保存在线用户的信息
  2. 判断用户是否登录:
//利用表单制作用户的登录界面
//在表单提交时做session的存储
request.setCharacterEncoding("utf-8");

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

UserService userService = new UserService();
User user = userService.login(username, password);
//如果用户存在则放在session中,不存在显示登录失败!
if (user != null) {
	//out.write(user.getNickname() + "登陆成功!");
	// 把当前用户保存到session
	session.setAttribute("onlineUser", user);
	response.sendRedirect("");
} else {
	//out.write("登陆失败!");
	request.setAttribute("message", "用户名密码错误!");
	request.getRequestDispatcher("login.jsp").forward(request, response);
}

// 在其他页面中加入头部
Object onlineUserSession = session.getAttribute("onlineUser");
//如果session的值不是null则表示登录成功
if (onlineUserSession == null) {
	// response.sendRedirect("login.jsp");
	request.setAttribute("message", "请先登录再访问其他页面!");
	request.getRequestDispatcher("login.jsp").forward(request, response);
}
User onlineUser = (User)onlineUserSession;
  1. 实现权限:
    1. 视图权限:例如权限不够看不见操作的按钮
    2. 接口权限:权限不够不能请求相应的路径
//这里使用枚举去做了一个简单的管理员校验

Object onlineUserSession1 = session.getAttribute("onlineUser");
if (onlineUserSession1 == null) {
	request.setAttribute("message", "请先登录再访问其他页面!");
	request.getRequestDispatcher("login.jsp").forward(request, response);
} else if (((User)onlineUserSession1).getRole() != RoleEnum.ADMIN.ordinal()) {
	response.sendRedirect("403.jsp");
}
//枚举类
public enum RoleEnum {
	
	ADMIN("管理员"),
	USER("普通用户");
	
	private String desc;

	private RoleEnum(String desc) {
		this.desc = desc;
	}

	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc;
	}
}

4. application域的实例

网站访问量的统计
    1. 使用数据库记录访问量:
        优点:可以实现持久化
        缺点:效率低、浪费资源
    2. application记录访问量
        优点:效率高,节省系统资源
        缺点:项目重启,数据会丢失
        
// 记录访问量
Object count = application.getAttribute("web_access_count");
if (count == null) {
	application.setAttribute("web_access_count", 1L);
} else {
	application.setAttribute("web_access_count", (Long)count + 1);
}
JavaWeb核心技术系列教程(09)——HttpServletResponse对象详解 Servlet最核心的工作就是处理客户端请求并向客户端作出响应。为此,针对Servlet的每次HTTP请求,Web服务器在调用service (HttpServletRequest request,HttpServletResponse response)方法之前,都会创建HttpServletRequest 和HttpServletResponse。其中,HttpServletRequest用于封装HTTP请求消息,简称request对象;HttpServletResponse用于封装HTTP响应消息, 阅读详情

相关推荐

AUTO-DL平台快速部署BEVFormer:Nuscenes数据集完整训练避坑指南

本文详细介绍了在AUTO-DL平台高效部署BEVFormer模型并利用Nuscenes数据集进行完整训练的实战指南。重点解析了平台数据管理、环境配置、数据集迁移解压、预处理及训练启动等全流程中的关键步骤与常见避坑技巧,帮助研究者和工程师快速复现这一前沿视觉感知模型,节省云端训练时间与成本。

weixin_29188043的博客 330

servlet的9大内置对象

隐式对象 说明 request 转译后对应HttpServletRequest/ServletRequest对象 response 转译后对应HttpServletRespons/ServletResponse对象 session 转译后对应HttpSession对象 application 转译后对应ServletContext对象 out 转译后对应JspWriter对象,其内部关联一个PringWriter对象 page 转译后对应this config 转译后...

卑微柠檬怪的博客 675

单片机控制双向可控硅的5种实用触发电路设计(附完整电路图)

本文深入解析了单片机控制双向可控硅的5种实用触发电路设计,涵盖从基础隔离到复杂负载驱动的实战方案。重点探讨了光电耦合器选型、过零检测同步、RC吸收电路精密计算以及应对感性负载和高噪声环境的加固策略,并提供了完整的电路图与调试避坑指南,旨在帮助开发者实现安全可靠的交流负载控制。

joy55的博客 2197

java_web 快速入门之第八章 application&JavaBean封装

一:application(全局应用程序对象) 不同用户的sesion对象互不相同,但有时候用户之间可能需要一个共享对象,当Web服务器对象启动后就产生了这样一个唯一的内置对象application。 任何用户在访问同一Web服务目录的各个页面时,共享一个application对象,直到服务器关闭,这个application对象被取消为止。 application对象也可以进行数据的存储。 application对象在整个应用区域中都有效,而ses...

qq_61313896的博客 2207

HDR标准核心参数全解析:从PQ/HLG到元数据,一篇搞懂技术选型

本文全面解析HDR标准的核心参数,包括PQ/HLG传输函数和元数据机制,帮助读者理解技术选型的关键因素。通过对比主流HDR标准的技术细节,提供从内容创作到硬件适配的实用指南,助力实现更真实的视觉体验。

weixin_31766003的博客 300

kaggle——销量预测的baseline(M5 Forecasting - Accuracy)

前言 在刚刚结束的kaggle比赛M5 Forecasting - Accuracy中,因为是第一次参加,笔者也是花了大量的时间和精力在上面,最终拿到一块银牌(所以我拿到了大学第一个考试挂科。。。求求电磁场老师高抬贵手给点平时分放我一马吧。。。早上看到kaggle成绩异常兴奋,中午考完直接爆炸=。=),当然运气占了很大因素,这次比赛private leadboard的shake up非常大,排名波动几千名都存在的。笔者运气不错,是向上的shake:)。这里总结一下销量预测的基本流程。 从下图可以看到这次比

weixin_43901221的博客 5431

JavaWeb中的作用域

JavaWeb中的作用域

qq_51606563的博客 364

YOLOv8首发优化:遥感目标检测 | 专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块,解决低空间分辨率、传感器噪声、目标模糊、低光照退化和部分遮挡等限制

一种轻量级网络,其创新性地整合了专为低质量遥感图像设计的边缘 - 高斯聚合(EGA)模块。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 486

Servlet 三大作用域

在 JavaWeb 中,Servlet 中三大域对象分别是 request,session,application,其只要是用来存放共享数据的。 ​  request: HttpServletRequest ​  session: HttpSession   application: ServletContext 1 request 作用域 request是表示一个请求,只要发出一个请求就会创建一个request,它的作用域:仅在当前请求中有效。 用处:常用于服务器间同一请求不同页面之间的

yuyangll的博客 899

[明道云] -基础教学5- 明道云 40 种控件详解与场景解析

明道云工作表提供40种业务控件,涵盖文本、数值、关联、公式等类型,支持各类业务场景。文本类支持多行输入、正则校验;数值/金额类提供进度条、百分比显示等功能;关联类实现多表数据引用;公式/函数类支持复杂逻辑运算;自动化类包括打印模板、API调用等控件。合理使用这些控件可提升数据收集质量和自动化效率,同时需注意控件联动的性能影响和权限配置。关键控件包括关联记录、级联选择、公式计算等,适用于订单管理、客户信息关联等业务场景。

每日出拳老爷子的博客 8541

YOLOv12创新改进 | 全网独家创新篇、小目标检测改进 | AAAI 2025 | 引入HS-FPN中的HFP和SDP创新点,从频域增强小目标特征,淘汰FPN进行升级,助力YOLOv12有效涨点

本文提出了HS-FPN(高频和空间感知特征金字塔网络),通过HFP(高频感知)模块增强小目标特征,SDP(空间依赖感知)模块捕获像素间空间依赖关系。实验在AI-TOD等小目标数据集上验证了该方法的有效性,相比FPN显著提升检测性能。文章详细介绍了HS-FPN的网络结构、核心代码实现及在YOLOv12中的应用方法,并提供多种改进版本的yaml配置文件,为小目标检测任务提供了有效的解决方案。

Ai缝合怪、助力小伙伴高效发论文 336

作用域java实现_JavaWeb的三大作用域

三大作用域描述名称类型描述requestHttpServletRequest将数据放在请求作用域中,在一次请求中实现数据的共享,比如请求转发sessionHttpSession将数据放在当前的会话作用域中,只要浏览器不关闭,都能共享applicationServletContext将数据放在当前应用作用域中,应用在服务器启动的时候创建,关闭的时候销毁三种作用域的测试都用到两个Servlet,即As...

weixin_39562606的博客 224

YOLO小目标检测优化:9种实用方案,准确率直接提升15%

小目标检测是个系统工程,没有银弹,但有明确的优化路径。优先搞数据。Copy-Paste + 提升分辨率,这俩加起来成本最低、收益最大,能解决80%的小目标问题。别一上来就改模型结构。调参走在改结构前面。锚框聚类、损失加权、增强优化,这些都是零成本的,先做满了再说改模型的事。P2层是大杀器,但不要轻易用。加了P2层,TensorRT部署、后处理、速度都要跟着调,工程化工作量翻倍。数据和训练做到位还不够,再加也不迟。滑动窗口是兜底的。能从训练端解决的问题,就不要拖到推理端。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 186

【JavaWeb09】Web 开发会话技术 -Cookie&Session

当用户使用浏览器再去访问服务器中的 web 资源时,就会带着各自的数据去。3.cookie 的总数量没有限制,但是每个域名的 COOKIE 数量和每个 COOKIE 的大小是有限制的 (不同的浏览器限制不同, 知道即可) , Cookie 不适合存放数据量大的信息。大家在访问某个网站的时候,是否能看到提示你上次登录网站的时间,而且要注意的是不同用户上次登录的时间肯定是不一样的,这是怎么实现的?大家在访问某个购物网站的时候,是否能看到提示你曾经浏览过的商品,不同用户浏览过的商品肯定不一样,这是怎么实现的?

qq_74232707的博客 1480

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【JavaWeb学习】09Request&Response

JavaWeb(B站黑马)学习笔记09Request&Response

weixin_48074431的博客 695

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JAVAWeb九大内置对象,session,cookie

1,Web四大请求域和九大内置对象 javaWeb jsp (四大请求域) 1,pageContext 只能在当前jsp页面中访问 2,request 请求域,只要是同一请求对象。都能访问到请求域中 的值。在做请求转发操作的时候吗,服务器是将原始的请求对象,原封不动的转发给目标页面,目标页面也是可以服务请求域中的数据的。 3,session 会话级别 打开浏览器,发送请求,表示开启了跟服...

qq_42693568的博客 674

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JavaWeb-09 JDBC

实现第一个JDBC程序 1.搭建数据库环境 在MySQL中创建一个名称为jdbc的数据库,然后在该数据库中创建一个users表,创建 数据库和表的SQL语句如下所示。 数据库和表创建成功后,再向users表中插入3条数据: 为了查看数据是否添加成功,使用SELECT语句查询users表中的数据,执行结果如图: 2.创建项目环境,导入数据库驱动 在Eclipse中新建一个名称为chapter09的Web项目,将MySQL的数据库驱动文件mysql-connector-java-5.1.13-bin.ja

qq_55680228的博客 245

JavaWeb开发_Day09

JavaWeb开发_Day09,包含 Mybatis基础操作、MyBatis XML映射文件 和 MyBatis动态SQL 写于2024/07/23

ZZHow Blog 1118

javaweb项目用JDBC连接mysql数据库

文章目录一、需求二、项目结构三、步骤1、创建数据库、数据表,插入数据2、创建javaweb项目3、下载驱动包4、导入驱动包5、创建包,创建类6、程序7、运行结果 一、需求 创建一个javaweb项目,读取bookinfo表中的数据,并输出到控制台 二、项目结构 JDBC.java用来写主程序 mysql-connector-java-5.1.47.jar是java连接mysql需要导入的jar包...

龟的小号的博客 6万+

JavaWeb09(Listener监听器、定时器、Calendar日历对象、自动发送邮件案例)

Part01:Listener监听器 1、Listener监听器的概念: 监听器其实就是一个实现特定接口的普通Java程序,这个程序专门用于监听另一个Java对象的方法的调用或者属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行 2、Listener监听器的作用 监听JavaWeb的三个对象:ServletContext、ServletRequest、HttpSession 3...

么古的博客 988

JavaWEB快速入门之分页【09】

二、javaweb分页 实现javaweb中的数据分页将依赖于伪列 (1)分析每一页显示多少条数据 (2)找到每一页与条数之间的关系 (3)将找到的sql规律利用到javaweb中 (4)编写分页和显示条数的方法 4.1 简单的分页和显示条数的方法功能 4.2 携带模糊查询的分页和显示条数的方法功能 (5)主页代码显示(携带模糊查询) (6)结果界面显示

m0_67768699的博客 1530

JavaWeb 课堂笔记 —— 09 MySQL 概述 + DDL

本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)》,章节分布参考视频教程,为同样学习JavaWeb系列课程的同学们提供参考。

Celeste的博客 827

JavaWEB笔记09 Javascript中的内置对象(下)

JavaWEB笔记09 Javascript中的内置对象(下) 文章目录JavaWEB笔记09 Javascript中的内置对象(下)一.正则表达式对象:二.BOM对象:1.BOM对象介绍及组成部分:2.BOM中的window对象:3.BOM中的location对象:4.BOM中的history对象和其他对象:三.定时器:四.DOM文档对象:1.DOM对象介绍:2.DOM获取标签对象:3.DOM设置或获取标签之间的内容:4.DOM动态的操作标签:五.DOM中事件的绑定:1.事件的介绍:2.事件的绑定和解绑:

RainOnTheMoon的博客 283

09_JavaWeb会话

域对象: 一些用于存储数据和传递数据的对象,传递数据不同的范围,我们称之为不同的域,不同的域对象代表不同的域,共享数据的范围也不同请求域会话域应用域整个服务器的应用域有且仅有一个。

m0_52474839的博客 2999

javaweb基础打卡09

web概念概述 1.JavaWeb: 使用Java语言开发基于互联网的项目 2.软件架构: 1.C/S:Client/Server 客户端/服务器端 - 在用户本地有一个客户端程序,在远程有一个服务器端程序 - 如:QQ,迅雷... - 优点: 1.用户体验好 - 缺点: 1.开发、安装、部署、维护麻烦 2.B/S:Browser/Server 浏览器/服务器端 - 只需要一个浏览器,用户通过不同的网址(URL),可以访问不同的服务器端程序 - 优点: 1.开

weixin_42411963的博客 168

【JavaWeb】Day09.JavaScript自定义对象和BOM对象

(JavaScript 对象中的)名称:值对被称为属性。

m0_74197695的博客 562
上一篇: 【JavaWeb】08-request和response
下一篇: 【JavaWeb】10-jsp的动作标签
JeffHan^_^
博客等级 码龄7年 1万+粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JeffHan^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值