第三篇-->Servlet从细节开始(二)

8.ServletContext

1).可以由ServletConfig获取,    ServletContext context=arg0.getServletContext();

2).该对象代表当前WEB应用:可以认为ServletContext是当前Web应用的一个大管家,可以获取当前WEB应用的各方面信息

<!-- 配置当前WEB应用的初始化参数-->

<context-param>

<param-name>driver</param-name>

<param-value>com.mysql.jdbc.Driver</param-value>

</context-param>

<context-param>

<param-name>jdbcUrl</param-name>

<param-value>jdbc:mysql:///lee</param-value>

</context-param>

<servlet>

.......

</servlet>

<servlet>

.......

</servlet>

它是和servlet节点是并列的,是当前站点的全局信息。

它同样可以获取这些配置信息,不过它获取的是全局配置信息,而当前的ServletConfig是获取当前的Servlet的信息

Enumeration <String> names=context.getInitParameterNames();

换句话说,任何一个Servlet都可以获取这个全局信息。

3)获取站点目录下的资源的绝对路径

方法一

String path=context.getRealPath("/hello.jsp");    将获得hello.jsp在服务器上发布之后的真正路径。    /hello.jsp是其在这个项目中的根目录下的路径

InputStream inputStream=context.getResourceAsStream("/WEN-INF/classes/test.txt");

String path=context.getRealPath("/WEN-INF/classes/test.txt");

路径只能写成/hello.jsp这种形式,\\不行

然而如果是src下的文件路径,假设src下有test.txt这样一个文件,如果想获得它的真正路径,写成 /WEB-INF/classes/test.txt,因为src下的文件都会被放到/WEN-INF/classes/test.txt的目录下,换言之,服务器加载完这个项目开始运行后,根本不存在src目录。

说明这个方法得到的都是服务器上的绝对路径,而不是部署前的路径

方法二

类加载器:
     ClassLoader classLoader=this.getClass().getClassLoader();
     InputStream inputStream=classLoader.getResourceAsStream("test.txt");

时间: 2024-08-30 17:31:55

第三篇-->Servlet从细节开始(二)的相关文章

第三篇--&gt;Servlet从细节开始(一)

package cn.lee; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class  HelloServlet

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.

Java提高篇(三六)-----java集合细节(二):asList的缺陷

在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷: 一.避免使用基本数据类型数组转换为列表 使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷.先看如下程序: public static void main(String[] args) { int[] ints = {1,2,3,4,5}; List list = Arrays.asList(ints); System.out.println("list'size:&

C语言中容易被忽略的细节(第三篇)

前言:本文的目的是记录C语言中那些容易被忽略的细节.我打算每天抽出一点时间看书整理,坚持下去,今天是第一篇,也许下个月的今天是第二篇,明年的今天又是第几篇呢?--我坚信,好记性不如烂笔头.第三篇了,fight~... 第一篇链接:C语言中容易被忽略的细节(第一篇) 第二篇链接:C语言中容易被忽略的细节(第二篇) 1.__attribute__((noreturn)) __attribute__可设置函数属性.变量属性和类型属性.__attribute__((noreturn))设置了函数属性,n

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl

HttpApplication处理对象与HttpModule处理模块 (第三篇)

一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplication. HttpRuntime管理一个定义在System.Web命名空间下的HttpApplicationFactory类的时候,HttpApplicationFactory通过工厂模式管理HttpApplication对象.在HttpApplicationFactory内部维护了一个HttpA

Servlet之javaweb应用(二)

一. 使用 JavaEE 版的 Eclipse 开发动态的 WEB 工程(JavaWEB 项目) 1). 把开发选项切换到 JavaEE 2). 可以在 Window -> Show View 中找到 Package Explorer, 并把其拖拽到开发区的左边 3). 在 Servers 面板中新建 Tomcat 服务器. 一定要关联到 Tomcat 安装的根目录 4). 新建一个 Dynamic Web Project(如果没有,下载Eclipse组件.或者去Eclipse官网下载Eclip

认识元数据和IL(上) &lt;第三篇&gt;

说在,开篇之前 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有<第一回:恩怨情仇:is和as>那么迅速,但是Metadata和IL却是绝对重量级的内容,值得我们在任何时间关注,本文就是开始. 1 引言 你可曾想到,我们的C#代码,编译之后究竟为何物?你可曾认知,我们的可执行程序,运行之时的轨迹究竟为哪般?那么,本文通过对Metadata(元数据)和IL(Intermediate Language, 中间语

第三篇 读后感

      今天读了大道至简中的第三篇关于团队缺乏的不只是管理的文章,其中作者引用了<汉书>中的“言人三人众”,来说明团队是至少以三个人为规模的,而三人构成的团队,这样便具备了团队的一些基本特征:主从.监督和责任.团队并不是个体能够组成的,两个人同样不能成为一个团队,两人则互相支撑,正如古文中“从”字是二人互立的,并没有监督.老师课上所说的一个和尚有水喝,两个和尚抬水喝,三个和尚没水喝的故事,三个和尚之所以没水喝是因为没有能够的安排没有领导人,三个人本能比一个人有更高的效率,正如文中所说的的一