web.xml里的主要配置都包括什么,都代表什么含义?


讲解视频

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

web.xml作用:

当我们用IDEA创建一个webapp项目时,往往在WEB-INF文件夹下,会生成一个web.xml文件,这个配置文件的作用,就是初始化配置信息的。

比如:Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。如果工程不需要上述配置时,则web.xml就不是必需的了。

2.知识剖析

web.xml配置元素:

web.xml配置元素

1.根元素

web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素中, 都必须标明这个web.xml使用的是哪个模式文档。其它的元素都放在之中,也是根节点。

2.上下文参数

含有一对或多对参数名和参数值,用作应用的Servlet上下文初始化参数,参数名在整个Web应用中必须是惟一的, 在web应用的整个生命周期中上下文初始化参数都存在,Servlet和jsp任何时候可以对其进行访问。

3.监听器

Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。

在application,session,request三个对象创建、销毁或者属性变动时自动执行代码的功能组件。

常见的listener有:ServletContextListener、ServletRequestListener、HttpSessionListener等。

4.过滤器

过滤器对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。

5.servlet

servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。 Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。

servlet后常跟servlet-mapping,该元素在Servlet和URL样式之间定义一个映射,即servlet类提供一个url,在地址栏输入对应的映射路径就可以访问servlet。

3.常见问题

web.xml的加载过程,元素的加载顺序

4.解决方案

WEB容器启动时,加载过程如下:

1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。

2.然后,容器创建一个ServletContext,这个web项目的所有部分都将共享这个上下文。

3.容器将转换为键值对,并交给servletContext。

4.容器创建&lft;listener>中的类实例,创建监听器。

首先可以肯定的是,加载顺序与它们在web.xml文件中的先后顺序无关。即不会因为filter写在listener的前面而会先加载filter。 同时还存在着这样一种配置节:context-param,它用于向ServletContext提供键值对,即应用程序上下文信息。

web.xml的加载顺序是:context-param->listener->filter->servlet而同个类型之间的实际程序调用的时候的顺序是根据对应的mapping的顺序进行调用的。

load-on-startup元素标记容器是否在启动的时候就加载这个servlet,当配置了多个servelet的时候,容器就需要读取它的值来决定加载顺序。

当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet。

正数的值越小,该servlet的优先级越高,应用启动时就越先加载。所以,x,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

5.编码实战

6.扩展思考

filter、listener、interceptor之间的区别

filter能够在一个请求到达servlet之前预处理用户请求,也可以在离开servlet时处理http响应: 在执行servlet之前,首先执行filter程序,并为之做一些预处理工作; 根据程序需要修改请求和响应; 在servlet被调用之后截获servlet的执行

listener的作用则与接口类型有关,监听器是在发生关注的事件后回调开发者提供的方法。

interceptor 拦截器,类似于filter,不过它不在web.xml中配置,跟使用的框架有关,如果使用Spring框架则在spring容器指定的配置文件中配置;并且不是针对URL的,而是针对action,当页面提交 action时,进行过滤操作。

7.参考文献

https://www.cnblogs.com/shangxiaofei/p/5328377.html

http://www.blogjava.net/xzclog/archive/2011/09/29/359789.html

8.更多讨论

web.xml可选元素和出现次数?

web-app (icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*,env-entry*, ejb-ref*, ejb-local-ref*

问号(?)表示子元素是可选的,而且只能出现一次。星号(*)表示子元素可在部署描述符中出现零次或多次。

url-pattern有哪些匹配规则?

精确匹配 路径匹配 匹配任意的url

ptteng.github.io/PPT/PPT-java/JAVA-task2-web.xml.html#/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容