java url mapping

[size=medium]java url mapping比较简单,也可以说功能比较弱,但是可扩展也就高了.
mapping分为四类
1.以 '/'开头,'/*'结尾的pattern是表示路径匹配,
比如 /hello/*.
/* 也属于此类

2.扩展名匹配: 比如 *.jspx

3.默认匹配 '/',

4.其他的为精确匹配,如 hello

匹配的顺序是:
精确匹配->路径匹配->扩展名匹配->默认匹配

一般的servlet container定义默认servlet和匹配.jsp的servlet,
所以请求jsp文件可以正确处理.

对于没有前端服务器(如nginx)情况,所有的请求都会发往容器进行处理,
包括请求css,js,图片等(默认servlet处理这些请求).
如果有前端服务器,一般将这些media内容过滤掉,直接让前端服务器处理(返回/缓存)这些静态文件. 而将其他请求发往后端服务器,也就是我们的servlet container 之类的应用.


web.xml中 context-param, listener, filter, serlvet的加载顺序是
context-param -> listener -> filter -> servlet

当容器初始化完成时,listener的contextInitialized(ServletContextEvent event)被调用.

当一个请求进来时,首先通过filter-mapping匹配,执行filter的doFilter(),如果有多个filter-mapping匹配都会依filter加载顺序执行doFilter().而不像servlet只要匹配一个就忽略其他.
filter的作用是当请求要被服务前的最后屏障,可以在这里验证用户权限,转换编码等.

servlet是实际处理请求的对象,是线程级运行的,当有多个同样的请求时,会初始化线程进行处理.


[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值