课程目标:

① 在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之间的关系的更多相关文章

  1. 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)

    写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...

  2. Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系

    以下内容为个人理解,如有误还请留言指出,不胜感激! Web容器 web容器(web服务器)主要有:Apache.IIS.Tomcat.Jetty.JBoss.webLogic等,而Tomcat.Jet ...

  3. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. The confusion about jsp four scopes and ServletContext,HttpSession,HttpServletReqest,PageContext

    The jsp four scopes are same with ServletContext,HttpSession,HttpServletRequest,PageContext? How ser ...

  5. JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response

    1.  ServletConfig  有一些东西不合适在程序中写死,应该写在web.xml中,比如 文字怎么显示, 访问数据库名 和 密码, servlet要读取的配置文件 等等.. l在Servle ...

  6. Kali Linux Web 渗透测试视频教程— 第七课 OpenVas

    Kali Linux Web 渗透测试视频教程— 第七课 OpenVas 文/玄魂 视频教程地址:http://edu.51cto.com/course/course_id-1887.html 目录 ...

  7. NeHe OpenGL教程 第七课:光照和键盘

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. 【C语言探索之旅】 第二部分第七课:文件读写

    内容简介 1.课程大纲 2.第二部分第七课: 文件读写 3.第二部分第八课预告: 动态分配 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏 ...

  9. 【C语言探索之旅】 第一部分第七课:循环语句

    内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编 ...

随机推荐

  1. IDEA下maven工程的classpath

    IDEA开发maven项目,此工程的classpath就是指src/main/java,src/main/resources,src/main/webapp,假如在main文件夹下新建一个文件prop ...

  2. 每日命令:(14)tune2fs

    tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检.Linux系统下面也有文件系统自检,而 ...

  3. MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表

    摘要: 外键 一对多 外键 多对多 外键 一对一 --------------------------------------------------------------------------- ...

  4. 如何将表的行数赋值给变量(MySQL)

    delimiter $$ drop procedure if exists test_at $$ create definer=root@localhost procedure test_at() b ...

  5. Sql Server数据库视图的创建、修改

    if OBJECT_ID('Sales.USACusts') is not null drop view Sales.USACusts; go create view Sales.USACusts a ...

  6. UVA624 CD,01背包+打印路径,好题!

    624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...

  7. [转]fedora国内源常见配置

    1.参考:1.http://mirrors.ustc.edu.cn/2.http://mirrors.fedoraproject.org/publiclist#CN3.http://mirrors.n ...

  8. 获得HttpServletRequest 和HttpSession对象

    package org.jeecgframework.core.util; import java.util.HashMap; import java.util.Map; import javax.s ...

  9. ASP.NET程序开发中经典常用的三十三种代码实例[确实有用]

    原文发布时间为:2008-11-10 -- 来源于本人的百度文章 [由搬家工具导入] ASP.NET程序开发中经典常用的三十三种代码实例:1. 打开新的窗口并传送参数: 传送参数:response.w ...

  10. usort 使用(转载)

    private function arrCmp($a,$b){ if($a['day_time'] == $b['day_time']){  return 0; } return($a['day_ti ...