一,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. PyCharm Django Python 开发环境配置 详细教程

    PyCharm Django Python 开发环境配置 详细教程 1. Python 下载及安装 (1)根据需要的版本去 Python 官网(https://www.python.org/downl ...

  2. python地理空间(1)--概念引入

    1 python与地理空间分析 1.1 与我们的生活 ushahidi是一个优秀的地理空间地图应用,回寝FQ看一下. ushahidi有一个python库-ushapy 地理空间救灾建模程序是最近比较 ...

  3. 第二次SQLServer试验解

    1 --给BookInfo表的BookId建立主键约束,给BookInfo表的BookName建立非空约束 2 create table BookInfo( 3 BookId int primary ...

  4. [loj539]旅游路线

    考虑枚举加油的位置,当确定某次在第$i$个位置加油后,且下一次到$j$加油,那么$i$到$j$必然会选择不超过$c_{i}$条边且最长的路径,记作$d_{i,j}$ 如果能求出$d_{i,j}$,再设 ...

  5. [loj3342]制作菜品

    当$n-1\le m$,不妨令$d_{1}\le d_{2}\le...\le d_{n}$,则$(n-1)k\le mk=\sum_{i=1}^{n}d_{i}\le d_{1}+(n-1)d_{n ...

  6. [noi1755]Trie

    定义S对应的数组为$a_{i}=\min_{0\le j<i,S_{j}=S_{i}}i-j$,特别的,若不存在j,令$a_{i}=i$,那么容易发现存在双射关系就意味这两者对应的数组相同 因此 ...

  7. Vulnhub-Empire: Breakout题解

    Vulnhub-Empire: Breakout题解 这是Empire系列的靶机Breakout,地址:Vulnhub-EMPIRE: BREAKOUT 目标扫描 使用arp-scan 命令识别靶机I ...

  8. CF1288

    A 考虑\(x + 1 = \sqrt{d}\)时在有理域上有最优界. 那我在整数域上附近取三个点取min就行了. // code by fhq_treap #include<bits/stdc ...

  9. 洛谷 P6914 - [ICPC2015 WF]Tours(割边+找性质)

    洛谷题面传送门 神仙题. 深夜写题解感受真好 我们考虑两个简单环 \(C_1,C_2\)​​​,我们假设颜色种类数为 \(k\)​​​,那么我们需要有 \(C_1,C_2\)​​​ 均符合条件,而由于 ...

  10. 【python】python之list

    1.判断list是否为空 方式一: list_temp=[] if len(list_temp): #非空即为真 print('list is not empty') else: print('lis ...