Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系
课程目标:
① 在Servlet中懂得ServletContext HttpSession 以及HttpServletRequest之间的关系
② 懂得怎样使用它们
概念介绍:
1. [共同点]不管对象的作用域怎样,共享变量和获得变量的 方法都是一致的
–setAttribute(“varName”,obj);
–getAttribute(“varName”);
2. 变量的作用域
ServletContext–范围最大,应用程序级别的,整个应用程序都能訪问
HttpSession – 次之。会话级别的,在当前的浏览器中都能訪问[不论是在同一浏览器开多少窗体,都能够訪问],可是换个浏览器就不行了,就必须又一次创建session
HttpServletRequest –范围最小,请求级别。请求结束,变量的作用域也结束[也就是仅仅是一次訪问。訪问结束,这个也结束]
3. 实例
插播广告:博客之星评选,点击投我一票,谢谢。
以上三个数据的设置:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1
ServletContext sc = this.getServletContext();
sc.setAttribute("sc_name", "sc_value");
// 2
HttpSession session = request.getSession();
session.setAttribute("session_name", "session_value");
// 3
request.setAttribute("request_name", "request_value");
String sc_value = (String) sc.getAttribute("sc_name");
String session_value = (String) session.getAttribute("session_name");
String request_value = (String) request.getAttribute("request_name");
System.out.println(sc_value+":"+session_value+":"+request_value);
// request.getRequestDispatcher("MyServlet2").forward(request, response);
}
Servlet2 的获取:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext sc = this.getServletContext();
HttpSession session = request.getSession();
String sc_value = (String) sc.getAttribute("sc_name");
String session_value = (String) session.getAttribute("session_name");
String request_value = (String) request.getAttribute("request_name");
System.out.println(sc_value+":"+session_value+":"+request_value);
}
结论:
HttpServletRequest 仅仅是浏览器的一次訪问。除非servlet做处理,比方
request.getRequestDispatcher("MyServlet2").forward(request, response);
就会传递。
Session 用于同一浏览器,能够互相调用数据
ServletContext 整个应用程序都能够訪问
Servlet第七课:ServletContext HttpSession 以及HttpServletRequest之间的关系的更多相关文章
- 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)
写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...
- Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系
以下内容为个人理解,如有误还请留言指出,不胜感激! Web容器 web容器(web服务器)主要有:Apache.IIS.Tomcat.Jetty.JBoss.webLogic等,而Tomcat.Jet ...
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- The confusion about jsp four scopes and ServletContext,HttpSession,HttpServletReqest,PageContext
The jsp four scopes are same with ServletContext,HttpSession,HttpServletRequest,PageContext? How ser ...
- JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response
1. ServletConfig 有一些东西不合适在程序中写死,应该写在web.xml中,比如 文字怎么显示, 访问数据库名 和 密码, servlet要读取的配置文件 等等.. l在Servle ...
- Kali Linux Web 渗透测试视频教程— 第七课 OpenVas
Kali Linux Web 渗透测试视频教程— 第七课 OpenVas 文/玄魂 视频教程地址:http://edu.51cto.com/course/course_id-1887.html 目录 ...
- NeHe OpenGL教程 第七课:光照和键盘
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 【C语言探索之旅】 第二部分第七课:文件读写
内容简介 1.课程大纲 2.第二部分第七课: 文件读写 3.第二部分第八课预告: 动态分配 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏 ...
- 【C语言探索之旅】 第一部分第七课:循环语句
内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编 ...
随机推荐
- Spring框架针对dao层的jdbcTemplate操作crud之update修改数据库操作
使用jdbcTemplate 原理是把加载驱动Class.forName("com.mysql.jdbc.Driver"); 和连接数据库Connection conn=Drive ...
- js实现音量拖拽的效果模拟
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>js ...
- luogu P1519 穿越栅栏 Overfencing
题目描述 描述 农夫John在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个“完美的”迷宫:即你能从迷宫中的任意 ...
- centos7 中源码安装nginx
使用nginx有一段时间了,还是有很多东西不懂的,在这里做一下自己学习过程中的一些整理,能使自己得到提升. 1.环境:centos7 1511 最小化安装 2.下载nginx,可以在系统中下载,也可 ...
- (16) Cloudflare pki公钥基础设施
该工具组共有8个工具 1.cfssl 常用的可用指令: sign signs a certificate bundle build a certificate bundle genkey genera ...
- (15) openssl签署和自签署证书的多种实现方式
1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成私钥:2.创建证书请求:3.使用私钥对证书请求签名. 由于测试环境,所以自建的CA只能是根CA. 所使用的配置文件如下: [ ...
- EmpireofCode文档翻译 https://empireofcode.com/game/
In Campaign mode, you can check your strategies on already defeated bases. You will not lose your tr ...
- MyBatis 3 分页
利用MyBatis 3进行分页,选定的数据库表c_province,有3列,id列,provinceid列,province列,用Oracle数据库.首先建立一个对应的实体类,Province有3个属 ...
- 大数据学习——实现多agent的串联,收集数据到HDFS中
采集需求:比如业务系统使用log4j生成的日志,日志内容不断增加,需要把追加到日志文件中的数据实时采集到hdfs,使用agent串联 根据需求,首先定义以下3大要素 第一台flume agent l ...
- lr函数之lr_eval_string()函数的使用学习
lr_eval_string() 函数的主要作用:返回脚本中的一个参数当前的值(从参数中取得对应的值,并且转换为一个字符串). 格式:lr_eval_string("{参数名}") ...