前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Servlet执行流程

Servlet执行流程

作者头像
关忆北.
发布2020-10-15 15:49:17
6790
发布2020-10-15 15:49:17
举报
文章被收录于专栏:关忆北.关忆北.

Servlet执行流程

本文主要解释服务器在收到客户端的请求后在服务器内部的执行过程。

什么是映射

客户端通过URL地址访问服务器中的资源,所以Servlet程序要是想被外界访问,必须把servlet映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。

元素用于注册Servlet

它包含两个主要的子元素:

设置Servlet的注册名称

:设置Servlet的完整类名。

元素用于映射一个已注册的Servlet的一个对外访问路径

它含有两个子元素:

:指定Servlet的注册名

:Servlet的对外访问路径。

index.html用来设置第一页面。

代码语言:javascript
复制
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>      <!--  设置访问首页,index.html可以改成你要进入的网站首页-->
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>StudentListServlet</display-name>
    <servlet-name>StudentListServlet</servlet-name>
    <servlet-class>com.it.servlet.StudentListServlet</servlet-class>          <!-- 本类在工程中完整的包名 -->
  </servlet>
  <servlet-mapping>
    <servlet-name>StudentListServlet</servlet-name>
    <url-pattern>/StudentListServlet</url-pattern>
  </servlet-mapping>

浏览器请求

当浏览器发出访问服务器资源的请求时,用户主要通过一下步骤来访问服务器的资源。

Servlet访问流程

在这里插入图片描述
在这里插入图片描述
  1. 浏览器通过URL地址里的请求信息来访问服务器的/xxxx
  2. 通过访问路径(url-pattern)来找到已经注册的servlet名称。
  3. 根据映射找到相应的Servlet。
  4. 根据名称找到service所在的tomcat中的路径。

上述就是Servlet内部执行流程,主要是通过servlet容器对url进行匹配。

注意: url-pattern属性内容可以自定义 两个子元素中的servlet-name属性必须一致,否则报错 获取工程中完整的包名,可右键该servlet的java文件,选择copy qualified name然后粘贴即可。 在开发时,新建servlet的同时,软件就已经在web.xml文件中自动注册,所以在开发中尽量不要动web.xml文件,否则可能因误操作出异常。

模糊匹配

精确匹配:/first

​ /first.index.html

模糊匹配:

​ /* http://localhost:8080/myshop/任意路径

​ /test/* http://localhost:8080/myshop/test/任意路径

.后缀名 http://localhost:8080/myshop/任意路径后缀名

注意:
  • servlet的路径映射必须以/开头或*开头
  • servlet的路径映射中,不能同时存在两种"模糊匹配"的规则。例如 /test/*.do 会报错。
  • 当浏览器的路径同时匹配多个servlet的时候 ​ a)精确度越高的URL(最像url的)优先被匹配。 ​ b)以后缀名结尾的URl优先级最低。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Servlet执行流程
    • 什么是映射
      • 浏览器请求
        • Servlet访问流程
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档