我是靠谱客的博主 勤奋小兔子,最近开发中收集的这篇文章主要介绍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);

}

最后

以上就是勤奋小兔子为你收集整理的java servletcontext_ServletContext常用方法的全部内容,希望文章能够帮你解决java servletcontext_ServletContext常用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部