Servlet自学第28讲:ServletContext详解

ServletContext引入

需求1:
这里写图片描述
需求2:
这里写图片描述

ServletContext快速入门

这里写图片描述

  1. ServletContext 是在服务器创建
  2. ServletContext被所有客户端共享
  3. ServletContext 当web应用启动时自动创建,
  4. ServletContext 当web应用关闭 重启动 或服务器关闭时都会造成ServletContext销毁

对ServletContext的用法小结:
//获取ServletContext的两种方法

this.getServletContext();
this.getServletConfig().ServletContext();

//添加属性

servletcontext.setAttribute(String , object);

//取出属性

servletcontext.getAttribute("属性名");

//删除

servletcontext.removeAttribute("属性名");

ServletContext的应用

一、 获取web应用的初始化参数

<!-- 如果希望所有的Servlet都可以访问该配置-->
<context-param>
<param-name>name</param-name>
<param-value>socott</param-value>
</context-param>

如何获取

String val=this.
getServletContext().getInitParameter("name");

二、实现servlet页面跳转
目前跳转到页面有几种方法

 ①. response.sendRedirect("/web应用名/资源URL");
 ②. resquest.getRequestDispatcher("/资源URL").forward(resuest,response);

区别
a: getRequestDispatcher跳转发生在服务器而sendRedirect跳转发生在浏览器
b: 如果resquest.setAttribute(“name”,”gust”);希望下个页面可以使用其属性则用getRequestDispatcher
c:如果session.setAttribute(“uname”,”顺平”);希望下个页面可以使用其属性则用两种方法都可以,建议使用getRequestDispatcher 因为效率高些
d:如果我们要跳转到本应用外的URL则使用sendRedirect

③:this.getServletContext().getRequestDispatcher("/资源URL").forward(resuest,response);
跟第二种方法一样...

三、读取文件,和获取文件的路径
//读取文件

InputStream is = this.getServletContext().getResourceAsStream("dbinfo.properties");
//创建properties
Properties pp = new Properties();
pp.load(is);
Out.println("name="+pp.getProperty("username"));
//如果文件在src目录下要用类加载器去读
InputStream is=Servlet类名.class.getClassLoader().getResoureAsStream("dbinfo.properties");

//获取文件全路径
String path=this.getServletContext().getRealPath("/imgs/a.jpg");
Out.println("path="+path);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值