Servlet 容器如何处理请求资源路径

一、什么是请求资源路径

在浏览器地址栏中输入的地址格式如下:

http://ip:port/appName/xx.html

其中appName/xx.html 即为请求资源路径

二、Web服务器对请求路径的处理过程

在浏览器地址栏中输入http://ip:port/appName/xx.html

  1. 浏览器依据ip,port建立与Servlet容器之间的连接,然后将请求资源路径appName/xx.html 发送过去给容器
  2. 容器依据应用名“/appName”找到应用所在的文件夹,容器会默认请求的是一个Servlet,查找web.xml文件中所有的Servlet配置“”,看是否有匹配的Servlet.

三、匹配Servlet规则

1、精确匹配

通过将请求资源路径中的具体资源名称与web.xml文件中的“”进行对比,严格匹配相等后找到对应资源并执行

- 如:abc.html

- 尽管应用中有abc.html这个具体的页面,也会去执行该url-pattern对应的Servlet,而不是返回具体的abc.html页面.

2、通配符匹配

3、后缀匹配

- 不能使用斜杠开头,使用“*.”开头的任意多个字符

- 如:*.do会匹配以”.do”结尾的所有请求

- http://ip:port/appName/abc.do 匹配成功

- http://ip:port/appName/abc/abc.do 也匹配成功

4、无匹配的Servlet的处理

  • 如果精确匹配、通配符匹配、后缀匹配都没有匹配成功时,容器会查找相应的文件
  • 查到对应文件则返回
  • 找不到返回404

注:优先级最高的是 精确匹配

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 02:33:18

Servlet 容器如何处理请求资源路径的相关文章

Servlet容器如何处理请求资源路径

1.. 什么是请求资源路径 在地址栏中输入的请求地址中,端口号之后的部分都是请求资源路径.紧跟端口号的是部署到Web服务器上的应用名(appName),紧跟应用名的则是具体的应用内的组件路径. 2. Web服务器对请求地址的处理过程 浏览器依据地址中的IP和端口号与Web服务器建立连接,服务器会获取到请求资源路径信息.根据端口号后面的应用名找到服务器上对应的应用.默认情况下容器会认为应用名后面的是一个Servlet,所以回到web.xml文件中所有是否有与该值匹配的<url-pattern>,

Servlet学习教程(二)----Servlet容器处理请求过程图解

上篇文章大致介绍的请求的流转,本文主要是详细介绍一下容器处理请求的过程. 第一步,用户点击一个链接指向一个servlet,而不是静态页面. 第二步,容器可以分辨出请求指向servlet,所以容器会产生两个对象: 1.HttpServletRequest 2.HttpServletResponse 第三步,容器对请求的URL根据配置找到对应的servlet,为这个请求创建或者分配一个线程,并将请求和响应对象传递给这个Servlet线程. 第四步,容器会调用Servlet的service方法,根据请

Servlet容器container

通俗点说,所谓容器,就是放东西的地方.Servlet容器自然就是放Servlet的地方.J2EE开发,是有分工的.一般的程序员,写得都是应用开发,我们会按照一定的规则,开发我们的系统,比如用Servlet开发,我们就要按照Servlet的规则写代码. 那么我们写的代码就是在Servlet容器中运行.容器会按照规则加载类,并运行它. 有一部份程序员就是写容器的,如Tomcate就是web容器.tomcat就是一个Servlet容器. servlet容器基本概念:1,Tomcat是Servlet的运

vue-cli,history 与 tomcat服务器,刷新404,请求资源404,解决办法

前文:CSDN也发布了相同文章,https://blog.csdn.net/qq_41797950/article/details/104373743. 问题:vue-cli,路由history,tomcat服务器,刷新404问题,刷新后请求资源路径不对. 配置:vue-cli:版本2.9.6服务器:tomcat 注:仅是本项目的解决办法,可以参考,希望能帮到大家 1- config文件夹index.js,build下的 assetsPublicPath 改为 ‘/ec/’,名字根据项目自己定义

Servlet容器如何同时来处理多个请求

工作者线程Work Thread:执行代码的一组线程调度线程Dispatcher Thread:每个线程都具有分配给它的线程优先级,线程是根据优先级调度执行的Servlet采用多线程来处理多个请求同时访问.servlet依赖于一个线程池来服务请求.线程池实际上是一系列的工作者线程集合.Servlet使用一个调度线程来管理工作者线程.当容器收到一个Servlet请求,调度线程从线程池中选出一个工作者线程,将请求传递给该工作者线程,然后由该线程来执行Servlet的service方法.当这个线程正在

servlet资源路径加载详解(3)

1.对于servlet的读取资源文件,要考虑工程文件路径和tomcat服务器的部署后的文件,所以一定要弄清楚加载文件路径位置,同时要考虑采用哪种方式: 一般有三种方式: (1).采用传统方式即jdk中提供的InputStream is = new FileInputStream("config.properties"); (2).采用ServletContext对象加载 (3).采用类加载器的方式 2.用代码检验 package cn.wwh.www.web.servlet; impo

JavaEE实战——Servlet入门、Servlet生命周期、绝对路径、ServletContext

前言 接下来的三篇博客我会分别介绍Servlet的以下三个方面: 1.Servlet程序编写 ----- 生命周期 2.ServletAPI Request Response 3.Cookie 和 Session Servlet的作用:Servlet 用来 动态web资源 开发 静态web资源 : 固定数据文件 动态web资源 : 通过程序动态生成数据文件 Servlet技术基于Request-Response编程模型 ---- HTTP协议也是基于请求响应 模型 * Servlet技术 用来

servlet和http请求

1.servlet servlet是和平台无关的服务器组件,可以交互式的来浏览和修改数据,生成动态的web内容.它运行于 servlet容器中2.servlet容器 servlet容器负责servlet和客户的通信和调用servlet方法. servlet和客户通信采用“请求/相应”模式.3.创建servlet,及其工作原理 (1)创建一个HelloServlet.java类,实现Servlet接口,实现接口方法 init() service(); getServletConfig(); get

深入剖析tomcat之servlet容器

其实我们开发中经常用tomcat应用服务器,tomcat就一个servlet容器,能够运行基于serlvlet的应用程序并响应相应的http请求,开发时间长了,还是想想具体知道它是怎么运行的,尤其是servlet容器的机理,所以有幸拜读了外国人的<深入剖析tomcat>,感觉挺不错的,可以在此点击免费下载电子书,建议大家有时间读读,在读的过程中边读边翻阅着tomcat的源码,更有助于你理解它的各个机制,此处有tomcat 7的源码,点击可免费下载. 本人目前时间和组织语言能力及功力有限,记录纸