仓酷云
标题:
发布一篇Servlet和Filter的url婚配url-pattern
[打印本页]
作者:
变相怪杰
时间:
2015-1-18 11:15
标题:
发布一篇Servlet和Filter的url婚配url-pattern
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
Servlet和filter是J2EE开辟中经常使用的手艺,利用便利,设置复杂,老小咸宜。
估量年夜多半伴侣都是间接设置用,也没有体贴过详细的细节,明天碰到一个成绩,上彀查了servlet的标准才发明,servlet和filter中的url-pattern仍是有一些文章在内里的,总结了一些工具,放出来供人人参考,以避免碰到成绩又要华侈工夫。
1、servlet容器对url的婚配历程:
当一个哀求发送到servlet容器的时分,容器先会将哀求的url减往以后使用高低文的路径作为servlet的映照url,好比我会见的是http://localhost/test/aaa.html,我的使用高低文是test,容器会将http://localhost/test往失落,剩下的/aaa.html部分拿来做servlet的映照婚配。这个映照婚配历程是有按次的,并且当有一个servlet婚配乐成今后,就不会往剖析剩下的servlet了(filter分歧,后文会提到)。其婚配划定规矩温柔序以下:
1.准确路径婚配。例子:好比servletA的url-pattern为/test,servletB的url-pattern为/*,这个时分,假如我会见的url为http://localhost/test,这个时分容器就会先举行准确路径婚配,发明/test恰好被servletA准确婚配,那末就往挪用servletA,也不会往剖析其他的servlet了。
2.最长路径婚配。例子:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/a/*,此时会见http://localhost/test/a时,容器会选择路径最长的servlet来婚配,也就是这里的servletB。
3.扩大婚配,假如url最初一段包括扩大,容器将会依据扩大选择符合的servlet。例子:servletA的url-pattern:*.action
4.假如后面三条划定规矩都没有找到一个servlet,容器会依据url选择对应的哀求资本。假如使用界说了一个defaultservlet,则容器会将哀求丢给defaultservlet(甚么是defaultservlet?前面会讲)。
依据这个划定规矩表,就可以很分明的晓得servlet的婚配历程,以是界说servlet的时分也要思索url-pattern的写法,以避免堕落。
关于filter,不会像servlet那样只婚配一个servlet,由于filter的汇合是一个链,以是只会有处置的按次分歧,而不会呈现只选择一个filter。Filter的处置按次和filter-mapping在web.xml中界说的按次不异。
2、url-pattern详解
在web.xml文件中,以下语法用于界说映照:
以”/’开首和以”/*”开头的是用来做路径映照的。
之前缀”*.”开首的是用来做扩大映照的。
”是用来界说defaultservlet映照的。
剩下的都是用来界说具体映照的。好比:/aa/bb/cc.action
以是,为何界说”/*.action”如许一个看起来很一般的婚配会错?由于这个婚配即属于路径映照,也属于扩大映照,招致容器没法判别。
主要缺点就是:速度比较慢,没有C和C++快
作者:
分手快乐
时间:
2015-1-20 18:46
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者:
透明
时间:
2015-1-29 14:48
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者:
飘飘悠悠
时间:
2015-2-7 02:53
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者:
简单生活
时间:
2015-2-19 21:34
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者:
谁可相欹
时间:
2015-3-4 22:08
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
深爱那片海
时间:
2015-3-11 21:14
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
莫相离
时间:
2015-3-19 13:29
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者:
精灵巫婆
时间:
2015-3-28 02:52
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2