这种是放在static中,03_用servlet、request和Druid技术写登录案例   java——数据库连接池——druid_基本使用

这是放在ServletContext中,使用ServletContext缓存数据源  通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

pageContext,Request,Session,servletContext,类变量,局部变量六个范围的区别:
1) Request: 保存的键值仅在同一个request范围中可以取回来。它的范围比Session和servletContext小,缺点是;因范围小无法取,比如访问了两次,第二次无法 取回第一次的,就只能想办法,比如用Session。优点:和Session和servletContext相比,用完就仍,省服务器内存。 
2) Session: 与每一个用户浏览器相对应。从Session第一次创建直到关闭,数据都一直保存在服务器内存,所以客户可以一直访问,不用每次都去数据库抓取,提高了性 能。缺点:每个客户的session不能像servletContext那样共享,可能造成大量重复数据;另外session技术建立在cookie和 url重写的基础上。为了让服务器能识别每一个用户浏览器,在来往过程中,需带上Session ID的信息,这样会用掉一点点网络带宽。当有很多用户访问服务器时,这是一笔不小的开销。
3)servletContext:   你的web应用从启动到关闭,这个对象一直有效。所有范围中,它最大。保存的数据可以被所有用户所有servlet访问。(servletContext和servlet的类变量的区别就是:servlet的类变量只能被本身这个servlet访问,不能被其它servlet访问。)优点:少访问数据库。缺点:不像Session一样私密。

Servlet里的ServletContext与类静态变量的区别
大家都知道Servlet里的ServletContext放数据是整个网站共享,而我用一个类定义一个静态变量,这个静态变量也可以被整个网站共享。
比如说,我现在要统计网站的访问人数,使用ServletContext可以,但其实我在Servlet里使用一个静态变量来做记录也可以,请问这两者的区别是什么?

------解决方案--------------------
静态变量是写在代码里的,如果需要修改,每次都要改源码,再重新编译。
ServletContext可以读取配置文件,就不需要重新编译了。

ServletContext与静态变量(static)的区别,数据库连接池放在哪里的更多相关文章

  1. 静态变量(static)的特点

    静态变量(static):有局部变量,也有全局变量. 静态局部变量:在函数体内用static说明的变量称为静态局部变量,属于静态类别. 特点: (1)它占据一个永久性的存储单元.随着文件的存在而存在. ...

  2. 静态变量static和extern外引用

    静态变量--加static关键字的变量,特点: (1)在全局数据区中分配内存,每次对其值得修改都会保留结果,直至程序结束. (2)若静态变量没显示初始化,那会被自动初始化为0,并且只能初始化一遍. 1 ...

  3. java中的静态变量---static

    用static修饰符修饰的数据成员,并不是属于那个对象的,而是属于类.静态数据成员在定义的时候已经分配了内存,而此时对象还没有建立好. 当然它也是被保存到类的方法中的,而不是对象内存中,大家都是可以访 ...

  4. android中少用静态变量(android静态变量static生命周期)

    在android中,要少用静态变量. 我现在做的一个应用中,之前的开发人员使用静态变量来存储cookie,这个全局的静态变量用来验证身份. 这时客户反应,应用长时间不使用,再次使用,会提示身份过期. ...

  5. 静态变量static

    1.在我们平时些程序中我们经常需要一些变量的他们能纪录我们所需要的值,但是平常的int类型达不到这样的目的,所以呢就有了static的基态变量,静态变量就像  B/S中的session,cookio等 ...

  6. swift -- 静态变量static

    import UIKit class ViewController: UIViewController {     //静态变量  swift中的static静态变量,只能在这里声明,不能在方法中声明 ...

  7. Java中的静态变量static

    package com.wangcf; public class Test { String name="你好"; static String sex="男"; ...

  8. php静态变量static

    静态变量 function test() { static $a = 0; echo $a; $a++; } test(); test(); test();

  9. C#中为什么不能再方法里定义静态变量(Static)

    c#的静态变量是在对象生成的时候分配内存空间的,而不是函数执行的时候. 如果在函数里定义,那么这个变量就需要在函数执行的时候分配内存空间,这是C#不允许的,至于为什么不允许,个是因为垃圾回收机制的问题 ...

  10. SpringBoot项目给静态变量static注入@Value

    @value不能直接注入值给静态属性,spring 不允许/不支持把值注入到静态变量中:spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量 @Component publ ...

随机推荐

  1. 深度系统deepin/uos动态壁纸

    深度系统deepin下使用动态壁纸 演示视频: https://www.bilibili.com/video/BV1bB4y1c7Fq 最新版本(2022/2/9): uos版本 : https:// ...

  2. Scrum Master,这九个问题你问了吗?

    从团队技术负责人到Scrum Master或PO,我们需要从做决策转为提问题. 一.2个关于估算的问题 团队在进行项目前需要进行粗略估算,但这并不是要求团队成员一定按照估算出的结果进行. 问题一:估算 ...

  3. 关于cc1链-lazymap版复现

    关于cc1链-lazymap版复现 思路,在cc链中最重要的其实是transform方法;其反射调用执行的性质+transformchain性质,导致可以通过构造反射调用链子,也就是Runtime.e ...

  4. Hoic对网站的测试使用

    禁止使用该项技术攻击一切未经允许的公网网站,违者将受到法律制裁. 下载地址:https://wwl.lanzout.com/iiJa11zsqljg 下载完成后解压,并打开. 打开 \(hoic2.1 ...

  5. Flannel相关问题记录

    k8s的Pod无法分配IP 报错信息 E0222 07:22:36.762074 83 remote_runtime.go:113] RunPodSandbox from runtime servic ...

  6. 直播预约丨《袋鼠云大数据实操指南》No.2:实时开发,如何成为数据智能化的有效驱动力

    近年来,新质生产力.数据要素及数据资产入表等新兴概念犹如一股强劲的浪潮,持续冲击并革新着企业数字化转型的观念视野,昭示着一个以数据为核心驱动力的新时代正稳步启幕. 面对这些引领经济转型的新兴概念,为了 ...

  7. 搭建一个图片变视频的AI(一):模型介绍

    在AI如火如荼发展的今天,让图片变视频的功能已经相当成熟了,很多AI软件都可以实现:上传一张图片,一段描述,就可以输出一个视频,实现了让一张图片动起来的效果. 今天教大家这么在自己的电脑上搭建一个:让 ...

  8. 从被喷“假开源”到登顶 GitHub 热榜,这个开源项目上演王者归来!

    故事的序幕,在 2024 年 1 月的 GitHub 上悄然拉开. 当时,一个名为 RustFS 的开源项目横空出世,号称要做一个基于 Rust 的企业级分布式存储系统,旨在成为 MinIO 的一个开 ...

  9. CF1956C Nene's Magical Matrix 题解

    CF1956C Nene's Magical Matrix 被这题送走了,纪念一下. 巧妙的构造题,考虑比较方便处理的方案,假设我们从左上角的顶点开始涂,每次涂一个 \(1,2,3\dots n\) ...

  10. ShuffleTest java 使用集合的方式进行排序

    简介 使用结合的方式进行排序 TIPS 里面使用了随机打乱shuffle函数. result [0, 1, 10, 16, 20, 34] code import java.util.ArrayLis ...