servlet的ServletContext接口
ServletContext
Servlet 上下文
每个web工程都只有一个ServletContext对象,也就是不管在哪个servlet里面,获取到的这个ServletContext对象都是同一个
web.xml
<servlet>
<servlet-name>hello2</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet2</servlet-class> </servlet>
<servlet-mapping>
<servlet-name>hello2</servlet-name>
<url-pattern>/h2</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.qf.servlet.HelloServlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/h3</url-pattern>
</servlet-mapping>
servlet类
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("helloServlet2:"+getServletContext());
}
}
-------------------------------------------------------------
public class HelloServlet3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("helloServlet3:"+getServletContext());
//testServletConfig();
}
}
浏览器先后访问url(http://localhost:8080/HelloServlet/h2、http://localhost:8080/HelloServlet/h3),查看console输出
helloServlet2:org.apache.catalina.core.ApplicationContextFacade@4b020c18
helloServlet3:org.apache.catalina.core.ApplicationContextFacade@4b020c18
所以两个servlet获取的是同一个ServletContext对象
ServletContext对象的获取
ServletContext context = getServletContext();
ServletContext的作用
获取全局配置参数
web.xml配置
<context-param>
<param-name>name</param-name>
<param-value>wxf</param-value>
</context-param>
<context-param>
<param-name>age</param-name>
<param-value>21</param-value>
</context-param>
servlet代码
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = getServletContext();
Enumeration<String> names = context.getInitParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
System.out.println(name+"==="+context.getInitParameter(name));
}
}
}
console输出
name===wxf
age===21
获取web工程中的资源(webContent目录下的资源)

config.properties
name=zhangsan
age=123
servlet类
public class HelloServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = getServletContext();
//1.获取资源所在的绝对路径位置
//这里得到的是项目在tomcat里面的根目录
String path = context.getRealPath("");
System.out.println("path==="+path);
//这里得到的是项目在tomcat里面的根目录
String path2 = context.getRealPath("config.properties");
System.out.println("path2==="+path2);
System.out.println("-------------------------");
//2.getResourceAsStream 获取资源 流对象 相对路径
InputStream stream = context.getResourceAsStream("config.properties");
Properties prop = new Properties();
prop.load(stream);
String name = prop.getProperty("name");
System.out.println("name==="+name);
}
}
console输出
path===F:\eclipse\workspace\develop_study\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HelloServlet
path2===F:\eclipse\workspace\develop_study\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HelloServlet\config.properties
-------------------------
name===zhangsan
注:
- 通过classloader去获取web工程下的资源的方式:this.getClass().getClassLoader().getResource("../../config.properties")
- src对应的是/WEB-INF/classes,如果想要使用ServletContext获取src目录下的文件可以使用context.getResourceAsStream("/WEB-INF/classes/config.properties")
存取数据,servlet间共享数据 域对象
ServletContext context = getServletContext();
context.setAttribute("name", "qf");
System.out.println("name==="+context.getAttribute("name"));
console输出
name===qf
servlet的ServletContext接口的更多相关文章
- Servlet笔记4--ServletConfig接口和ServletContext接口
ServletConfig接口: ServletContext接口: 代码详解: (1)web.xml配置文件: <?xml version="1.0" encoding=& ...
- Java EE javax.servlet中的ServletContext接口
ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...
- javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)
Servlet总结01——servlet的主要接口.类 (一)servlet类 Servlet主要类.接口的结构如下图所示: 要编写一个Servlet需要实现javax.servlet.Servlet ...
- Servlet常用的接口和类
使用接口和类的作用:Servlet也是依靠继承父类和实现接口来实现的.使用Servlet必须要引入两个包:javax.servlet和javax.servlet.http.所有的Servlet应用都是 ...
- 与servlet相关的接口
(二)与servlet相关的接口 从servlet仅有的5个方法当中,我们知道其涉及3个接口,分别是: ServletConfig ServletRequest ServletResponse 2.1 ...
- java学习笔记—ServletConfig、ServletContext接口(13)
ServletConfig是一个由Tomcat服务器在初始化Servlet的时候创建并传递进来的一个对象. 该对象主要描述的时候一个servlet的配置信息. 如: <servlet> ...
- ServletContext接口(六)
javax.servlet.ServletContext接口 ServletContext(上下文)是公用的,就是.net中的application,主要用到的就是全局set设置值,get获取值,ja ...
- SERVLET类常用接口及方法
SERVLET类常用接口及方法 2011-09-09 16:14:43 [size=xx-small]SERVLET类常用接口及方法2007年04月05日 星期四 04:46 P.M.基本类和接 ...
- JavaWeb学习——Servlet相关的接口和类
JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...
随机推荐
- HDU 6470 /// 矩阵快速幂
题目大意: f[1]=1 f[2]=2 f[n]=f[n-1]+2*f[n-2]+n^3 在某博客截的图 现在忘记原博位置了 抱歉 根据递推式1和递推式3构造出两个矩阵 #include <bi ...
- Python基础篇(初始函数)
Python初始函数: 一.什么是函数 1.我们到目前为止, 已经可以完成一些软件的基础功能了. 那么我们来完成这样一个功 能: 约x: print("拿出手机") print(& ...
- Apache之默认配置文件解释
一.默认配置文件 # 定义apache运行的目录,即程序所在的位置 ServerRoot "/usr/local/apache2" # 定义Apache服务监听的端口 Listen ...
- DB2实例
实例是逻辑数据库管理环境,可以在此环境中对数据库进行编目和设置配置参数.根据需要, 可以在一台服务器上创建多个实例,该服务器为每个实例提供唯一的数据库服务器环境. 默认实例:DB2 显示实例: ...
- Nginx实现rewrite重写
目录 Rewrite基本概述 Rewrite标记Flag Rewrite规则实践 Rewrite场景示例 Rewrite规则补充 rewrite优先级实战 Rewrite基本概述 什么是rewrite ...
- 对struct typedef *的认识
typedef struct node { ……… }NODE,*PNODE; 应该等价于 typedef struct node NODE;//struct node = NODE,eg:struc ...
- cookieUtils.js
cookieUtils.js export default { data () { return { } }, created () { }, methods: { arrayContain (arr ...
- sql的分页
public static string GetPageSql(string sql, int start, int end) { return string.Fo ...
- 【Dart学习】--Dart之正则表达式相关方法总结
一,部分属性 RegExp exp = new RegExp(r"(\w+)"); 返回正则表达式的哈希码 print(exp.hashCode); 正则表达式是否区分大小写 pr ...
- select into outfile的sql语句
SELECT INTO…OUTFILE语句把表数据导出到一个文本文件中,并用LOAD DATA …INFILE语句恢复数据.但是这种方法只能导出或导入数据的内容,不包括表的结构,如果 ...