Java基础回顾Application(一)
Java Web 中application(应用级) session(会话级) request(请求级)
在JavaWeb 中实现数据共享往往通过定义属性的方法来实现,而什么是属性呢?它类似于Hashmap中的键值对,有属性名和属性值作为设置属性方法的参数,而在其他的地方通过属性名去获取属性的值。
而定义定义不同级别的值,数据共享的范围是有区别的,接下来我就详细的介绍下我对application(应用级) session(会话级) request(请求级)这三种级别的认知。
首先是application(应用级):应用级所作用的范围是最大的,它利用到的类是ServletContext,在一个web被创建时,会自动初始化一个ServletContext对象,我们可以通过getServletContext()方法去获取这个对象,通过setAttribute(参数名, 参数值)方法来进行属性的设置,因为这是一个应用级对象所以你只要在当前的应用中都可以通过获取应用的ServletContext对象然后再通过getAttribute(属性名),去获取到该属性的值从而实现数据的共享。
接下来说说session(会话级) :会话级作用的范围仅此于应用级,那么什么是会话级呢?所谓的会话级,就是创建一个页面后执行的跳转、重定向、整合等都可以是一个回话,只要你不关闭浏览器页面,就是一次会话。 它通过HttpSession类来实现一次会话中的数据共享。类似于ServletContext,首先通过request.getSession()方法去获取一个HttpSession对象,然后采用setAttribute(参数名, 参数值)方法来进行属性的设置,在会话其它部分再通过getAttribute(属性名),去获取到该属性的值从而实现数据的共享。
最后是request(请求级):请求级作用的范围是最小的,它仅作用于一次请求,也就是说客户端向服务器发送一次请求的过程中,这也就意味着重定向是无法访问到request(请求级)的属性的,要想在一次请求中获取请求级属性值,同时还想到另一个Servlet只能选择跳转RequestDispatcher rd = request.getRequestDispatcher("RS2");
rd.forward(request, response);和整合rd.include(request, response);,至于属性的设置和获取用到的是request.setAttribute("name", name)和request.getAttribute("name")方法。
Java基础回顾Application(一)的更多相关文章
- Java基础回顾Application(二)
application对象 1 什么是application对象 ? (1) 当Web服务器启动时,Web服务器会自动创建一个application对象.application对象一旦创建,它将一直存 ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- 【Spring学习】【Java基础回顾-数据类型】
Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...
- Java基础回顾_第二部分_Java流程控制
Java基础回顾_第二部分 Java流程控制 Scanner对象(扫描器,捕获输入) import java.util.Scanner; public class Demo01 { public st ...
- Java基础回顾_第一部分
Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...
- 1、java基础回顾与加强
一. 基础回顾 1 集合 1.1 集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, ...
- Java基础回顾
学习基础背景:Acmer.有C/C++基础 以[Java语言程序设计(基础篇)]第10版为参考(感谢YJJ的推荐),列出部分知识点,注意思考背后的原因和好处坏处. [14-16章——关于可视化编程的章 ...
- java基础回顾(2)
java中只有两种类型:基础类型.引用类型 8中基本类型:byte short int long float double char boolean,其中byte类型取值范围[-2^7~2^7-1] ...
- java基础回顾之IO
Java的IO 是Java运用重要部分之一,涉及到的内容也比较多,容易混淆,一段时间不用,可能就会遗忘,要时常回顾记忆一下: (图片来源于网络) Java 流在处理上分为字符流和字节流. 字符流处理的 ...
随机推荐
- Python序列结构
python中常用的序列结构由列表.元组.字典.字符串.集合等,列表.元组.字符串等有序序列以及range对象均支持双向索引 是否有序 序列结构 是否是可变序列 有序序列 元组 不可变序列 有序序列 ...
- 3 week work—Grid Layout
HTML: <div class="wrapper"> //建立一个三列轨道网格. <div class="one">One</d ...
- ubuntu下chrome浏览器安装flash插件(pepperflashplugin-nonfree)
安装前说明: ubuntu的Google 已经不能使用Adobe Flash了,需要用PepperFlashPlayer来替代 Adobe Flash才行. 安装步骤: 1.安装pepperflash ...
- iostat 命令详解
前言 话说搞运维的人没有两把"刷子",都不好意思上服务器操作.还好,我还不是搞运维的,我一直都自诩是开发人员,奈何现在的东家运维人员"水"的一比,还要我这个自诩 ...
- VB.NET 定义多行文本字符的几种方式
vbCrLf 在 .NET 刚刚推出的时候,VB作为一款被微软用来"衬托"C#的语言,在许多细节设计上远不如C#方便. 比如在C#中写一个多行文本,就有各种方式: string s ...
- c++ 异常处理(1)
异常 (exception) 是 c++ 中新增的一个特性,它提供了一种新的方式来结构化地处理错误,使得程序可以很方便地把异常处理与出错的程序分离,而且在使用上,它语法相当地简洁,以至于会让人错觉觉得 ...
- 关于java集合的一些操作
1.数组转集合 java提供了一个方法:Arrays.asList(T... a)的方法. 测试: String[] arr = {"Lida","huanda" ...
- 2D转换与3D转换的区别
2D与3D的区别——2D 转换元素能够改变元素 x 和 y 轴.3D 转换元素还能改变其 Z 轴.
- 自学vue笔记 (二) : 实例与生命周期
一: 什么是实例 我们说了,Vue 应用都应该从构建一个 Vue 实例开始.它管理着挂载在它身上的所有内容,因此实例是一个根实例, 所有的组件都应该挂载在根实例上面.创建一个 Vue 实例,需要通过 ...
- IOS 整体框架类图值得收藏
Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助. 1.Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境. 是什么因素使一个程序成为Co ...