servlet映射路径
1 访问映射过程
问题:访问URL:http://localhost:8080/day10/first ,服务器如何相应的?
前提: tomcat服务器启动时,首先加载webapps中的每个web应用的web.xml配置文件。
web.xml
<!-- 配置一个servlet -->
<!-- servlet的配置 -->
<servlet>
<!-- servlet的内部名称,自定义。尽量有意义 -->
<servlet-name>FirstServlet</servlet-name>
<!-- servlet的类全名: 包名+简单类名 -->
<servlet-class>gz.itcast.a_servlet.FirstServlet</servlet-class>
</servlet> <!-- servlet的映射配置 -->
<servlet-mapping>
<!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
<servlet-name>FirstServlet</servlet-name>
<!-- servlet的映射路径(访问servlet的名称) -->
<url-pattern>/first</url-pattern>
</servlet-mapping>
http://: http协议
localhost: 到本地的hosts文件中查找是否存在该域名对应的IP地址
127.0.0.1
8080: 找到tomcat服务器
/day10 在tomcat的webapps目录下找 day10的目录
/first 资源名称。
1)在day10的web.xml中查找是否有匹配的url-pattern的内容(/first)
2)如果找到匹配的url-pattern,则使用当前servlet-name的名称到web.xml文件中查询是否相同名称的servlet配置
3)如果找到,则取出对应的servlet配置信息中的servlet-class内容:
字符串: gz.itcast.a_servlet.FirstServlet
2 servlet映射路径
url-pattern匹配过程:
精确匹配: /first http://localhost:8080/day10/first
/test/demo1 http://localhost:8080/day10/itcast/demo1
模糊匹配: /* http://localhost:8080/day10/任意路径
/itcast/* http://localhost:8080/day10/itcast/任意路径
*.后缀名 http://localhost:8080/day10/任意路径.do;除了*.do,还有*.action、*.html(伪静态)等
注意:
1)url-pattern要么以 / 开头,要么以*开头。 例如, itcast是非法路径。
2)不能同时使用两种模糊匹配,例如 /itcast/*.do是非法路径
3)当有输入的URL有多个servlet同时被匹配的情况下:
3.1 精确匹配优先。(长的最像优先被匹配)
3.2 以后缀名结尾的模糊url-pattern优先级最低!!!
3 sevlet缺省路径
servlet的缺省路径(<url-pattern>/</url-pattern>)是在tomcat服务器内置的一个路径。该路径对应的是一个DefaultServlet(缺省Servlet)。这个缺省的Servlet的作用是用于解析web应用的静态资源文件。
问题: URL输入http://localhost:8080/day10/index.html 如何读取文件????
1)到当前day10应用下的web.xml文件查找是否有匹配的url-pattern。
2)如果没有匹配的url-pattern,则交给tomcat的内置的DefaultServlet处理
3)DefaultServlet程序到day10应用的根目录下查找是存在一个名称为index.html的静态文件。
4)如果找到该文件,则读取该文件内容,返回给浏览器。
5)如果找不到该文件,则返回404错误页面。
结论: 先找动态资源,再找静态资源。
servlet映射路径的更多相关文章
- servlet映射路径匹配解析
开头 servlet是javaweb用来处理请求和响应的重要对象,本文将从源码的角度分析tomcat内部是如何根据请求路径匹配得到处理请求的servlet的 假设有一个request请求路径为/tex ...
- 001_JavaWeb之Servlet的路径映射问题
001_JavaWeb之Servlet的路径映射问题 在web.xml中写入: <servlet> <servlet-name>DeleteStudent</servle ...
- servlet虚拟路径映射
在web.xml文件中,一个<servlet-mapping>元素用于映射一个Servlet的对外访问路径,该路径也称为虚拟路径.例如<url-pattern>/TestSer ...
- Servlet映射
转载自https://blog.csdn.net/xinluke/article/details/51449594 映射请求到Servlet |-- Context Path --|-- Servle ...
- Servlet----------Servlet 的映射路径细节
在使用servlet时候,有些时候都需要自己来配置web.xml文件,在配置的时候,我们可以配置多个<url-pattern></url-pattern> 比如在这里绑定了3个 ...
- tomcat映射路径(应用程序基本目录)的配置方法
tomcat映射路径的配置方法 一.默认配置 位置:/conf 文件夹里的server.xml文件 <Host appBase="webapps"> appBase:可 ...
- JavaWeb_通过xml配置文件配置servlet访问路径
Servlet两种访问路径 一.在Servlet类中通过设置@WebServlet标注访问 二.在web.xml中编写配置文件 第一种能比较直观看到Servlet路径,但当项目发布后不好再对Servl ...
- Springboot 2.X的RequestMapping 的映射路径怎么看不到了?
在使用spring boot 1.X的时候我们可以在console中看到mapping的映射路径 2020-01-12 19:10:19.996 INFO 2711 --- [ main] s.w.s ...
- Maven关于web.xml中Servlet和Servlet映射的问题
在配置Servlet时,有两个地方需要配置. 一个是<servlet>,另一个是<servlet-Mapping>,这两个一个是配置Servlet,一个是配置其映射信息. &l ...
随机推荐
- Java并发编程:浅析几种线程安全模型 [转]
多线程编程一直是老生常谈的问题,在Java中,随着JDK的逐渐发展,JDK提供给我们的并发模型也越来越多,本文摘取三例使用不同原理的模型,分析其大致原理.目录如下: 1.COW之CopyOnWrite ...
- JavaScript预解析
定义:JavaScript"预解析",可以理解为把变量或函数预先解析到它们被使用的环境中. 通俗点讲,即认为浏览器在正式运行JavaScript代码前, 第一步,会预先根据关键字v ...
- 北京Uber优步司机奖励政策(12月19日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Farpoint使用一点小总结
Farpoint表格编辑的功能是非常强大的,记录下自己常用到的地方. 使用的版本:FarPoint.Win.Spread.5.0 1.Farpoint 设置为不可编辑状态 this.FPProxyIt ...
- JS dataTables
原文地址: http://www.cnblogs.com/haogj/archive/2011/03/04/1971328.html 数据来源有四种: 1. 网页DOM对象 $(document) ...
- dva 路由跳转
1.从props取出并传递history 取 const { history } = this.props 用 <button onClick={ () => history.push(' ...
- android分析windowManager、window、viewGroup之间关系(一)
本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数wind ...
- hdu2149Public Sale(巴什博弈)
Public Sale Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- selenium自动化一点记录
UI自动化 1.webdriver的findElement方法可以查找页面某元素,通常使用方式是通过id和name进行查找 1.By ID根据id进行定位 WebElement element=dri ...
- [JSON].toString()
语法:[JSON].toString() 返回:[String] 说明:获取[JSON]实例的字符串结果 示例: <% jsonString = "{div: 'hello word! ...