1.    获取web的上下文路径

2.    获取全局的参数

3.    作为域对象使用

4.    请求转发

5.    读取web项目的资源文件

package day10.about_servletcontext.get_resource;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 【context对象的作用-5】:读取web项目的资源文件
*
*
* @author mzy
*/
public class ContextDemo05 extends HttpServlet { private static final long serialVersionUID = -8190742959528279701L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
/**
* 复习:如何读取properties文件?
*/
// 此相对路径出错
/*
* 此相对路径出错:"./src/news.properties"
* 当前路径应该是相对于java运行的目录
*/
// File f = new File(".");
// D:\Users\Administrator\AppData\Local\MyEclipse 2017 CI\.
// System.out.println(f.getAbsolutePath());
/*
* 通过以上的测试,我得出当前的相对路径在:D:\Users\Administrator\AppData\Local\MyEclipse 2017 CI\
* 我尝试在此目录下新建了一个src文件夹,在下面新建了一个news.properties
* 测试就通过了,说明当前的相对路径和我认为的相对路径并不相同;
*
*
* 所以建议我们在web项目下不要使用相对路径!
*
* 所以在web下提供了三种读取web项目的资源文件:
* java.lang.String getRealPath(java.lang.String path)
* java.InputStream getResourceAsStream(java.lang.String path)
* java.net.URL getResource(java.lang.String path)
*
*/
/*
// FileInputStream in = new FileInputStream("./src/news.properties");
// 1) 使用properties对象
Properties prop = new Properties();
// 2) 使用load方法加载properties文件
prop.load(in);
// 3) 通过getProperty() 获取内容
System.out.println(prop.getProperty("name"));
System.out.println(prop.getProperty("password"));
*/ /*
* 因为src路径只是我们开发的时候才会用的路径:
* 而真实的环境下,我们的项目应该是跑在tomcat环境下的,
* 在tomcat环境下的话,我们的所有class文件都应该存放在
* WEB-INF/classes文件夹下的。
* 那么我们的news.properties文件存放在我们开发的src文件
* 夹中,那么此文件就应该在我们的classes文件夹下。
*
* 因为这个动作是在服务器中进行的,所以这个应该是一个服务器
* 行为
*
* 服务器行为下的绝对路径定位到我们的项目根目录,并非站点的根目录
* 所以我们书写的语句如下:
*
*/ // 获取到当前在网站运行下的真实的路径:
// 通过 / 返回到根目录下(当前的服务器行为:项目根目录) // 1. getRealPath() 获取资源文件的真实路径: String path
// String path = this.getServletContext().getRealPath("/WEB-INF/classes/news.properties");
// FileInputStream in = new FileInputStream(new File(path)); // 2. getResourceAsStream() 直接获得资源文件的输入流; InputStream
// InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/news.properties"); // 3. getResource() 获得资源文件的URL 与第一种相似
URL url = this.getServletContext().getResource("WEB-INF/classes/news.properties");
String path = url.getPath();
InputStream in = new FileInputStream(new File(path)); // 1) 使用properties对象
Properties prop = new Properties();
// 2) 使用load方法加载properties文件
prop.load(in);
// 3) 通过getProperty() 获取内容
System.out.println(prop.getProperty("name"));
System.out.println(prop.getProperty("password")); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8"); } }

servlet中servletContext的五大作用(五)的更多相关文章

  1. servlet中servletContext的五大作用(三)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  2. servlet中servletContext的五大作用(二)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  3. servlet中servletContext的五大作用(四)

    1.    获取web的上下文路径 2.    获取全局的参数 3.    作为域对象使用 4.    请求转发 5.    读取web项目的资源文件 package day10.about_serv ...

  4. servlet中servletContext的五大作用(一)

    获取web的上下文路径 获取全局的参数 作为域对象使用 请求转发 读取web项目的资源文件 package day10.about_servletcontext.get_path; /** * 首先区 ...

  5. web中servletcontext和applicationContext

    参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletCo ...

  6. [转]web.xml中servlet ,filter ,listener ,interceptor的作用与区别

    原文链接:https://blog.csdn.net/netdevgirl/article/details/51483273 一.概念: 1.servlet:servlet是一种运行服务器端的java ...

  7. JavaWeb(一)Servlet中的ServletConfig与ServletContext

    前言 前面我介绍了一下什么是servlet,它的生命周期,执行过程和它的原理.这里我们做一个简单的回顾! 什么是Servlet? servlet 是运行在 Web 服务器中的小型 Java 程序(即: ...

  8. Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)

    一.Servlet简介  1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...

  9. servlet中的ServletContext对象

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

随机推荐

  1. Scala学习——模式匹配

    scala模式匹配 1.基础match case(类似java里switch case,但功能强大些) object MatchApp { def main(args: Array[String]): ...

  2. Python_结合Re正则模块爬虫

    ##### 爬取古诗文import reimport requestsdef parse_page(url): headers = { 'User-Agent':'Mozilla/5.0 (Windo ...

  3. Linux下Apache(HTTP)基础知识梳理-运维笔记

    HTTP介绍: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...

  4. 消息队列 折腾ActiveMQ时遇到的问题和解决方法

    1.先讲严重的:服务挂掉. 这得从ActiveMQ的储存机制说起.在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage&g ...

  5. pip批量安装库

    将需要安装的库名和版本号都写在一个txt文档中,每个库名占一行,例如requests==2.24.0. 然后在用pip install -r命令去找到这个txt文档批量安装里面填写的库,如果嫌速度太慢 ...

  6. jvm源码解读--09 创建oop对象,将static静态变量放置在oop的96 offset处 第二篇

    先打断点systemDictionary.cpp 1915行 Universe::fixup_mirrors(CHECK); 进入 void Universe::fixup_mirrors(TRAPS ...

  7. 【Web动画】科技感十足的暗黑字符雨动画

    本文将使用纯 CSS,带大家一步一步实现一个这样的科幻字符跳动背景动画.类似于这样的字符雨动画: 或者是类似于这样的: 运用在一些类似科技主题的背景之上,非常的添彩. 文字的竖排 首先第一步,就是需要 ...

  8. GhostScript 沙箱绕过(命令执行)漏洞(CVE-2019-6116)

    影响范围 Ghostscript 9.24之前版本 poc地址:https://github.com/vulhub/vulhub/blob/master/ghostscript/CVE-2019-61 ...

  9. djinn靶机

    仅供个人娱乐 靶机信息 https://download.vulnhub.com/djinn/djinn.ova 一.主机探测 二.漏洞的查找和利用 21端口ftp 匿名登录 7331端口 命令执行  ...

  10. CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003

    Title/ CSS Grid 布局(Grid Layout)完全指南 #flight.Archives003 序 : 写完这篇文章后,我准备一直做下去了,包括flight的各个分区,也看到前方的路. ...