分享人:曹樾
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
先介绍下背景
web.xml是什么?
web.xml是网络程序中的一个配置文件
web.xml文件的规则?
有且只有一个根节点,大小写敏感,标签不嵌套,必须配对,同HTML
web.xml文件的作用
用来初始化配置信息
比如servlet,servlet-mapping,filter,listener等
假如web工程没用到这些,可以不用来web.xml来配置
web.xml文件的作用
在web.xml的模式(Schema)文件中定义了多少种标签元素
web.xml中就可以出现它的模式文件所定义的标签元素
它就能拥有定义出来的那些功能。
web.xml文件中的主要标签及其含义
< welcome-file-list >< welcome-file>index.jsp< /welcome-file>< /welcome-file-list>
还可以继续添加欢迎页面显示顺序从第一个找
第一个找不到就找第二个
(1)为servlet命名
(2)为servlet定制URL
可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值
可以通过“异常类型”或“错误码”来指定错误处理页面
比如设置一个编码过滤器,过滤所有资源
Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,
主要的用途是过滤字符编码、做一些业务逻辑判断等。
其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,
它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;
同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。
它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。
Servlet的监听器Listener,
它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,
它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
主要作用是: 做一些初始化的内容添加工作、设置一些基本的内容、
比如一些参数或者是一些固定的对象等等。
web.xml 文件中一般包括 servlet, spring, filter, listener的配置。
那么他们是按照一个什么顺序加载呢?
加载顺序为: listener >> filter >> servlet >> spring
加载顺序会影响对spring bean 的调用。
比如filter 需要用到 bean ,但是加载顺序是 先加载filter 后加载spring,则filter中初始化操作中的bean为null;
但加载顺序与他们在web.xml文件中的先后顺序无关。
其中/和/*的区别
< url-pattern > / 不会匹配到*.jsp,
即:*.jsp不会进入spring的 DispatcherServlet类
< url-pattern > /*会匹配*.jsp,
会出现返回jsp视图时再次进入spring的DispatcherServlet类
导致找不到对应的controller所以报404错。
好叶叶孤城的博客——web.xml有什么用
百度
感谢观看,如有出错,恳请指正
BY : 曹樾