ServletContext 20111019

ServletContext

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。

由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

ervletContext应用

多个Servlet通过ServletContext对象实现数据共享。

获取WEB应用的初始化参数。

实现Servlet的转发。

利用ServletContext对象读取资源文件。

得到文件路径

读取资源文件的三种方式

课堂代码:

第一种:

1、读出的是res包下的a.jpg

public void text1(HttpServletResponse response, ServletContext context)

throws IOException {

//第一步:读取资源的位置

//第一种方式读取外部的资源文件

InputStream is=context.getResourceAsStream("/WEB-INF/classes/res/a.jpg");

response.setHeader("Content-Type", "/image/jpeg");

OutputStream os = response.getOutputStream();

byte buffer[] = new byte[1024];

int len =0;

while((len=is.read(buffer))!=-1){

os.write(buffer,0,len);

}

os.close();

is.close();

}

2.读出的是images文件下的a.jpg

public void text2(HttpServletResponse response, ServletContext context)

throws IOException {

//第一步:读取资源的位置

//第一种方式读取外部的资源文件

InputStream is=context.getResourceAsStream("/images/a.jpg");

response.setHeader("Content-Type", "/image/jpeg");

OutputStream os = response.getOutputStream();

byte buffer[] = new byte[1024];

int len =0;

while((len=is.read(buffer))!=-1){

os.write(buffer,0,len);

}

os.close();

is.close();

}

第二种:

public void prop(HttpServletResponse response)

throws FileNotFoundException, IOException {

ServletContext context = this.getServletContext();

String path=context.getRealPath("WEB-INF/classes/db.properties");

//

File file = new File(path);

 /*根据file文件对象 创建输入流*/

InputStream is = new FileInputStream(file);

 /*解析properties的文件*/

Properties prop = new Properties();

//从输入流中读取属性列表(键和元素对)。

prop.load(is);

Set<String> set = prop.stringPropertyNames();

//遍历Set集合

Iterator<String> it = set.iterator();

while(it.hasNext()){

String key = it.next();

String value = prop.getProperty(key);

System.out.println(key+"---"+value);

}

response.getWriter().print("haha");

}

第三种:

public void text3(HttpServletResponse response)

throws FileNotFoundException, IOException {

request.setCharacterEncoding("UTF-8");

ServletContext context = this.getServletContext();

URL url = context.getResource("WEB-INF/classes/db.properties");

InputStream is = url.openStream();

 /*解析properties的文件*/

Properties prop = new Properties();

//从输入流中读取属性列表(键和元素对)。

prop.load(is);

Set<String> set = prop.stringPropertyNames();

//遍历Set集合

Iterator<String> it = set.iterator();

while(it.hasNext()){

String key = it.next();

String value = prop.getProperty(key);

System.out.println(key+"---"+value);

}

response.getWriter().print("ha");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值