理解web.xml

最近在学习restful框架,恰好对web.xml文件不太熟悉,于是有了以下的研究,以下多位自己的见解,若有不对,还请大神指点


就拿我的web项目来看

点开WEB-INF目录下发现有个web.xml藏在里,我们来看看葫芦里面卖的是什么药

 粗略的看整个xml文件里面密密麻麻的的标签是不是让人感觉摸不着头脑 别急!

我们知道一个web项目要部署到服务器(例如,Tomcat)上,然后通过客户端的url去访问我们的web项目,那么当我们把项目Add到server上之后


然后启动servers就可以了,我的好奇点就是,服务器背后是如何获取到我的项目的各种信息的呢?原来他是通过web.xml的一些配置信息来实现的


我们把话题扯远一点,我们浏览器是怎样通过浏览器去访问部署在servers上的web项目呢(即web app),


    当我们的web项目部署到了tomcat容器上后容器就会自动生成一个context即web项目

tomcat的server.xml文件也能看出来,当我们点击Add之后tomcat自动在xml里面生成代码


我们在回来看web.xml

有人会问,项目是Add上去了,那我们怎么去使用项目里的各种类去完成各种功能呢,这就牵涉到我们的xml了


启动web项目的时候tomcat容器首先会去读取xml的两个标签


	即<listener></listener><context-param></context-param>

	下面拿我的项目举例

	
	<context-param>
		<param-name>resteasy.resources</param-name>
		<param-value>restful.api.MyAPI,restful.api.UserLogin</param-value>
	</context-param>
	
1.容器以<context-param></context-param>name作为键,value作为值,将其转化为键值对,存入Context
	
2.容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会 					contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:
ServletContext application =ServletContextEvent.getServletContext();
context-param的值= application.getInitParameter("context-param的键");
得到这个context-param的值之后,你就可以做一些操作了。
	现在我们已经拿到了两个类,然后我们需要去利用restful框架的原理去利用它搞事情呀
我们具体来看内容
	我们来看MyAPI.java:(这是一个servlet程序)
	

这是一个我们在浏览器中输入 localhost:8080/test1/a/id 就可以去施行查询目标学生的名字的功能了

我们再来看web.xml

我们在url-pattern中设置了/a/*    一旦我们在浏览器中有/a/xxx 则会被该servlet拦截,我们可知该servlet是一个实现转发功能的servlet:当他发现我们的url里面出现localhost:8080/test1/a/id,则它会把我们响应的请求转发值MyAPI.java中然后执行响应的方法

当然以上都是我一个人意淫出来的结果,若有哪里不对还请大佬们指出来



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值