java servletcontext_ServletContext常用方法

ServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。

ServletContext定义了servlet用于与其servlet容器通信的一组方法,例如:获取文件的MIME类型、分派请求或写入日志文件。

对于每个Java虚拟机,每个 “web应用程序”  都有一个上下文。“web应用程序”是安装在服务器URL名称空间的特定子集(如/catalog)下的servlet和内容的集合,可能通过.war文件安装。

ServletContext对象包含在ServletConfig对象中,当servlet初始化时,Web服务器提供servlet。

获取Tomcat的初始化参数

java.lang.String getInitParameter(java.lang.String name)

返回一个字符串,该字符串包含指定的上下文范围初始化参数的值,如果该参数不存在,则返回null。

java.util.Enumeration getInitParameterNames()

以字符串对象枚举的形式返回上下文的初始化参数的名称,如果上下文没有初始化参数,则返回空枚举。

boolean setInitParameter(java.lang.String name, java.lang.String value)

在这个ServletContext上使用给定的名称和值设置上下文初始化参数。

(1)获取Tomcat的server.xml中设置Context的初始化参数。例如:

privileged="true" antiResourceLocking="false" antiJARLocking="false"

debug="0" reloadable="true">

java代码:protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

ServletContext servletContext = req.getSession().getServletContext();

String val = servletContext.getInitParameter("name");

System.out.println("val=" + val);

}

(2)获取在项目下的web.xml中设置Context的初始化参数。例如:

name

from web.xml file

java代码:protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

ServletContext servletContext = req.getSession().getServletContext();

String val = servletContext.getInitParameter("name");

System.out.println("val=" + val);

}

记录Tomcat日志

void log(java.lang.Exception exception, java.lang.String msg)

弃用,使用log(String message, Throwable throwable)替代。

void log(java.lang.String msg)

将指定的消息写入servlet日志文件,通常是事件日志。

void log(java.lang.String message, java.lang.Throwable throwable)

将指定的消息和异常堆栈信息写入到日志文件

在server.xml文件中,使用logger元素来设置日志文件。

prefix="localhost_log." suffix=".txt" timestamp="true"/>

java代码:protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

ServletContext servletContext = req.getSession().getServletContext();

servletContext.log("测试日志信息");

}

访问资源文件

getResource(String parh)

其中path必须是/开头,代表当前web应用程序的根目录。返回的一个代表某个资源的URL对象。

getResoutceAsStream(String parh)

返回文件流。这个好处是可以使用相对于根目录的路径访问到web目录下的所有文件,而不必知道绝对路径。

例如:在WEB-INF下新建文件test.properties,内容为:appName=servlet-test

version=1.0.0

java代码:protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

ServletContext servletContext = req.getSession().getServletContext();

InputStream is = servletContext.getResourceAsStream("/WEB-INF/test.properties");

Properties prop = new Properties();

prop.load(is);

String appName = prop.getProperty("appName");

String version = prop.getProperty("version");

System.out.println("appName = " + appName);

System.out.println("version = " + version);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值