ServletContext对象及url-pattern的设置模式

ServletConfig就是web.xml文件里的Servlet的配置信息

获取ServletConfig对象:

public class SomeServlet implements Servlet{
	private ServletConfig config;
	public void init(ServletConfig config) throws ServletException{
		this.config=config;//servlet的注册信息作为实参对config进行初始化
	} 
}

**获取ServletContext对象

通过ServletConfig可以获得ServletContext对象(Servlet上下文:servlet的运行环境。别名:application),一个应用中所有Servlet的上下文环境一样,即一个应用程序对应一个ServletContext。

public void service(ServletRequest req,ServletResponse res) 
throws ServletException,IOException{
	ServletContext sc=config.getServletContext();
	//获取所有初始化参数名
	Enumeration<String>names=sc.getInitParameterNames();
	//遍历枚举,方式与集合中的迭代器对象Iterator类似
	while(names.hasMoreElements){
		String name=names.nextElement();
		String value=sc.getInitParameter(name);
		System.out.println(name+"="+value);
	}
}

***ServletContext对象的方法

1,getInitParameterNames();//获取web.xml文件的context-param指定的上下文参数值(设置的参数一个应用里的Servlet都可以访问)
2,setAttribute();//设置域属性(一个应用中的所有servlet均可访问)
3,getAttribute();//获取域属性
4,removeAttribute();//删除域属性
5,getContextPath();//获取当前应用在Web容器中名称
6,getRealPath();//获取当前Web应用中指定文件或目录在本地文件系统中的路径,是基于盘符的路径。

<!--定义ServletContext的初始化参数-->
<context-param>
	<param-name>address</param-name>
	<param-value>shanghai</param-value>
</context-param>

<!--注册Servlet-->
<servlet>
	<servlet-name>someservlet</servlet-name>
	<servlet-calss>全限定性类名</servlet-class>
	<!--定义Servlet的初始化参数-->
	<init-param>
		<param-name>...<param-name>
		<param-value>...</param-value>
	</init-param>
</servlet>
<servlet-mapping>
	...
</servlet-mapping>

url-pattern的设置模式

(1)精确路径模式:请求路径必须与url-pattern的值完全相同才可被当前servlet处理。

<servlet-mapping>
	<servlet-name>...</servlet-name>
	<url-pattern>/aaa/bbb/ccc</url-pattern>
</servlet-mapping>

(2)通配符路径模式:该路径由精确路径部分与通配符部分组成,请求路径中只有携带了url-pattern值中的精确部分才可被当前servlet处理。

<servlet-mapping>
	<servlet-name>...</servlet-name>
	<!--/*与/都是全路径模式,但有区别
		/*是真正的全路径模式,可以拦截所有请求,无论是动态资源请求,还是静态资源请求,均会被拦截。
		/只会拦截静态资源请求,对于动态资源请求是不进行拦截的。
	-->
	<url-pattern>/aaa/bbb/*</url-pattern>
</servlet-mapping>

(3)后缀路径模式

<servlet-mapping>
	<servlet-name>...</servlet-name>
	<url-pattern>/*.some/url-pattern>
</servlet-mapping>

url-pattern 的匹配原则

(1)路径优先后缀匹配原则
(2)精确路径优先匹配原则
(3)最长路径优先匹配原则(比(2)更精确)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值