一,ServletContext介绍

  • web容器在启动时,它会为每一个web应用程序都创建一个ServletContext对象,它代表当前web应用
  • 多个Servlet通过ServletContext对象实现数据共享
  • 获取web应用的初始化参数
  • 用ServletContext实现请求转发
  • 使用ServletContext对象读取资源文件

二,通过servletContext对象实现数据共享

1,通过this获得ServletContext,实现数据的共享

//存入数据
response.setCharacterEncoding("UTF-8");
ServletContext context = this.getServletContext();
String username="清水河";
context.setAttribute("name",username);
response.getWriter().print("设置name成功:"+username);
//读取数据
response.setCharacterEncoding("UTF-8");
ServletContext context = this.getServletContext();
String name = (String) context.getAttribute("name");
response.getWriter().print("我们获取的信息为:"+name);

2,运行结果



三,通过servletContext对象读取网站配置文件

1,新建一个properties文件

driver=com.mysql.jdbc.Driver
username=root
password=123456
url=jdbc:mysql://localhost:3306/smbms

2,编写servlet类

//获取配置文件的路径
String realPath = this.getServletContext().getRealPath(
"WEB-INF/classes/resources/database.properties");
System.out.println("获取的路径:"+realPath); Properties properties = new Properties();

FileInputStream is = new FileInputStream(realPath); //把文件流加载到配置文件对象中

properties.load(is); String driver = properties.getProperty("driver");

String username = properties.getProperty("username");

String password = properties.getProperty("password");

String url = properties.getProperty("url");
//响应到网页

response.getWriter().print(driver);

response.getWriter().print(username);

response.getWriter().print(password);

response.getWriter().print(url);

3,配置web.xml

<servlet>
<servlet-name>ServletTest03</servlet-name>
<servlet-class>com.kuang.servlet.ServletTest03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest03</servlet-name>
<url-pattern>/s3</url-pattern>
</servlet-mapping>

4,访问查看

localhost:8080/demo02/s3

四,简单验证码

       //自动刷新网页
response.setHeader("refresh","2");
    <span class="hljs-comment">//验证码是一个图片 , 我们需要制作一个图片</span>
BufferedImage image = <span class="hljs-keyword">new</span> BufferedImage(<span class="hljs-number">100</span>,<span class="hljs-number">30</span>,BufferedImage.TYPE_3BYTE_BGR); <span class="hljs-comment">//图片写入一些东西</span>
Graphics2D graphics = image.createGraphics();
graphics.setColor(Color.red);
<span class="hljs-built_in">String</span> <span class="hljs-built_in">num</span> = <span class="hljs-built_in">String</span>.valueOf(newRandom());
graphics.drawString(<span class="hljs-built_in">num</span>,<span class="hljs-number">10</span>,<span class="hljs-number">10</span>); <span class="hljs-comment">//想办法让浏览器知道我们给的是一张图片</span>
response.setContentType(<span class="hljs-string">"image/jpg"</span>); <span class="hljs-comment">//让网站去打开图片</span>
ImageIO.write(image,<span class="hljs-string">"jpg"</span>,response.getOutputStream());
} <span class="hljs-comment">//生成随机数</span>
public <span class="hljs-built_in">int</span> newRandom(){
<span class="hljs-built_in">int</span> <span class="hljs-built_in">num</span> = (<span class="hljs-built_in">int</span>)(Math.random()*<span class="hljs-number">9</span>+<span class="hljs-number">1</span>)*<span class="hljs-number">100000</span>;
<span class="hljs-keyword">return</span> <span class="hljs-built_in">num</span>;
}

Servlet(2):通过servletContext对象实现数据共享的更多相关文章

  1. servlet中的ServletContext对象

    ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整 ...

  2. 重温Servlet学习笔记--servletContext对象

    一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对 ...

  3. Servlet学习(二)——ServletContext对象

    1.什么是ServletContext对象 ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象内部封装是该web应用的信息,一个web应用只有一个S ...

  4. javee学习-通过ServletContext对象实现数据共享

    1,设置值. ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象 // ...

  5. Servlet(八):ServletContext对象和ServletConfig对象

    ServletContext 对象:问题: Request 解决了一次请求内的数据共享问题,session 解决了用户不同请求的数据共享问题,那么不同的用户的数据共享该怎么办呢?解决: 使用 Serv ...

  6. Servlet接口的实现类,路径配置映射,ServletConfig对象,ServletContext对象及web工程中文件的读取

    一,Servlet接口实现类:sun公司为Servlet接口定义了两个默认的实现类,分别为:GenericServlet和HttpServlet. HttpServlet:指能够处理HTTP请求的se ...

  7. [Servlet]研究ServletContext对象

    作者信息 作者姓名:金云龙 个人站点:http://www.longestory.com 个人公众帐号:搜索"longestory"或"龙哥有话说" Servl ...

  8. mvc-servlet---ServletConfig与ServletContext对象详解(转载)

    ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...

  9. ServletConfig与ServletContext对象(接口)

    ServletConfig:封装servlet的配置信息. 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. <ser ...

随机推荐

  1. CobaltStrike上线Linux

    为获得最佳的阅读体验,请访问我的个人主页: https://xzajyjs.cn/ 在红蓝对抗中,我们常需要对目标进行长时间的控制,cobaltstrike原生对于上线windows比较轻松友好,但如 ...

  2. Linux mem 2.4 Buddy 内存管理机制

    文章目录 1. Buddy 简介 2. Buddy 初始化 2.1 Struct Page 初始化 2.2 Buddy 初始化 3. 内存释放 4. 内存分配 4.1 gfp_mask 4.2 nod ...

  3. css--元素居中常用方法总结

    前言 元素居中是日常开发和学习中最常见的问题,同时也是面试中经常考察的知识点,本文来总结一下这方面的知识点. 正文 1.水平居中 (1)子父元素宽度固定,子元素设置 margin:auto,并且子元素 ...

  4. 大爽Python入门教程 2-4 练习

    大爽Python入门公开课教案 点击查看教程总目录 方位输出 第一章有一个思考题,方位变换: 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (3 ...

  5. Redis | 第4章 Redis中的数据库《Redis设计与实现》

    目录 前言 1. Redis中的数据库 2. 数据库的键空间 3. 键的生成时间与过期时间 4. Redis中的过期键删除策略 5. AOF.RDB和复制功能对过期键的处理 5.1 生成 RDB 文件 ...

  6. 【Linux】(1)安装

    VMware虚拟机安装Linux,IP地址显示为127.0.0.1的解决方案 ① 打开该虚拟机,点击导航栏"虚拟机(M)",选择"设置(S)..." ② 将&q ...

  7. 从零开始学Kotlin第五课

    函数式编程入门: package EL fun main(args: Array<String>) { var names= listOf<String>("tom& ...

  8. java番外茶余饭后闲聊

    java番外茶余饭后闲聊 **本人博客网站 **IT小神 www.itxiaoshen.com 今天聊点题外话没事时可以作为平时沟通交流的谈资,接下来一起简单了解下个人知晓对Java界开发产生深远影响 ...

  9. x86汇编反编译到c语言之——(1)表达式求值及赋值语句

    一. 反编译一种可能的实现方式 我们的目的是将多种平台的汇编如x86,ARM,6502反编译为c语言,所以实现时先将多种汇编转化为 特定虚拟机汇编语言,然后只需要将虚拟机汇编语言反编译为c语言.其中多 ...

  10. HDU 5322 Hope

    HDU 5322 Hope 考虑 $ dp[n] $ 表示 长度为 $ n $ 的所有排列的答案. 首先,对于一个排列来说,如果最大值在 $ i $ 位置,那么前 $ i - 1 $ 个数必然与 $ ...