Servlet配置方式
- 全路径匹配
以 /开始
例 /aa/bb
localhost:8080/项目名称/aa/bb
- 路径匹配 , 前半段匹配
以 / 开始 , 但是以 * 结束
例: /aa/*
* 其实是一个通配符,匹配任意文字
localhost:8080/项目名称/aa/bb
- 以扩展名匹配
写法: 没有/ 以 * 开始 *.扩展名
例; *.aa *.bb
ServletContext
Servlet 上下文
每个web工程都只有一个ServletContext对象。 说白了也就是不管在哪个servlet里面,获取到的这个类的对象都是同一个。
如何得到对象
//1. 获取对象
ServletContext context = getServletContext();
有什么作用
- 获取全局配置参数
- 获取web工程中的资源
- 存取数据,servlet间共享数据 域对象
1 .可以获取全局配置参数
获取全局参数
2. 可以获取Web应用中的资源
- 获取资源在tomcat里面的绝对路径
ServletContext context = getServletContext();
context.getRealPath("") //这里得到的是项目在tomcat里面的根目录。
// D:\tomcat\apache-tomcat-7.0.52\apache-tomcat-7.0.52\wtpwebapps\Demo03\
String path = context.getRealPath("file/config.properties");
// D:\tomcat\apache-tomcat-7.0.52\apache-tomcat-7.0.52\wtpwebapps\Demo03\file\config.properties
-
getResourceAsStream 获取资源 流对象
直接给相对的路径,然后获取流对象。
通过classloader去获取web工程下的资源
3.使用ServletContext存取数据。
ServletContext 何时创建, 何时销毁?
创建: 服务器启动的时候,会为托管的每一个web应用程序,创建一个ServletContext对象
销毁: 从服务器移除托管,或者是关闭服务器。
ServletContext 的作用范围
只要在这个项目里面,都可以取。 只要同一个项目。 A项目 存, 在B项目取,是取不到的, 因为 ServletContext对象不同。