文章目录

  • 1.1 各类Web服务器默认servlet名称
  • 1.2 查看默认servlet
  • 1.3 tomcat解析JSP对应的servlet

1.1 各类Web服务器默认servlet名称

Web容器 默认servlet名称
Tomcat, Jetty, JBoss, and GlassFish default
Google App Engine _ah_default
Resin resin-file
WebLogic FileServlet
WebSphere SimpleFileServlet

1.2 查看默认servlet

以tomcat8为例,conf/web.xml文件中有如下配置。拦截了所有的请求:

首先所有的请求进入tomcat,都会经过servlet,如果没有匹配到任何应用指定的servlet,那么就会流到默认的servlet。

<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup>
</servlet>......<servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern>
</servlet-mapping>

springMvc有个标签:

<mvc:default-servlet-handler/>

标签说明如下:

Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet.
Use of this handler allows using a “/” mapping with the DispatcherServlet while still utilizing the Servlet
container to serve static resources.
This handler will forward all requests to the default Servlet. Therefore it is important that it remains last
in the order of all other URL HandlerMappings. That will be the case if you use the “annotation-driven” element
or alternatively if you are setting up your customized HandlerMapping instance be sure to set its “order”
property to a value lower than that of the DefaultServletHttpRequestHandler, which is Integer.MAX_VALUE.

注意点,此标签作用,为将静态资源,转发到Servlet容器的默认Servlet。对应源码如下:

文件DefaultServletHttpRequestHandler:

public class DefaultServletHttpRequestHandler implements HttpRequestHandler, ServletContextAware {/** Default Servlet name used by Tomcat, Jetty, JBoss, and GlassFish */private static final String COMMON_DEFAULT_SERVLET_NAME = "default";/** Default Servlet name used by Google App Engine */private static final String GAE_DEFAULT_SERVLET_NAME = "_ah_default";/** Default Servlet name used by Resin */private static final String RESIN_DEFAULT_SERVLET_NAME = "resin-file";/** Default Servlet name used by WebLogic */private static final String WEBLOGIC_DEFAULT_SERVLET_NAME = "FileServlet";/** Default Servlet name used by WebSphere */private static final String WEBSPHERE_DEFAULT_SERVLET_NAME = "SimpleFileServlet";......@Overridepublic void handleRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {RequestDispatcher rd = this.servletContext.getNamedDispatcher(this.defaultServletName);if (rd == null) {throw new IllegalStateException("A RequestDispatcher could not be located for the default servlet '" +this.defaultServletName + "'");}rd.forward(request, response);}

1.3 tomcat解析JSP对应的servlet

用途:解析JSP

<servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class><init-param><param-name>fork</param-name><param-value>false</param-value></init-param><init-param><param-name>xpoweredBy</param-name><param-value>false</param-value></init-param><load-on-startup>3</load-on-startup>
</servlet>
......
<servlet-mapping><servlet-name>jsp</servlet-name><url-pattern>*.jsp</url-pattern><url-pattern>*.jspx</url-pattern>
</servlet-mapping>

Web容器默认的servlet相关推荐

  1. j2ee servlet 和 threadlocal ,synchronized 与 web容器

    在传统的Web开发中,我们处理Http请求最常用的方式是通过实现Servlet对象来进行Http请求的响应.Servlet是J2EE的重要标准之一,规定了Java如何响应Http请求的规范.通过Htt ...

  2. Servlet生命周期与Web容器架构及处理请求详解

    一.Servlet对象 Servlet对象运行在Servlet容器中,Servlet的生命周期由容器管理(Servlet容器的基本思想是在服务器端使用Java来动态生成网页). (一)Servlet对 ...

  3. Web容器和Servlet生命周期

    为何需要Web容器 Web服务器本身主要用于支持http协议,包括监听和相应http请求.web服务器一般处理静态的请求,如文件系统中的静态文件.web容器则是为web相关的组件提供运行环境,可以从' ...

  4. 初学Java Web(3)——第一个Servlet

    这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...

  5. Spring容器 SpringMVC容器 web容器的关系

    说到spring和springmvc,其实有很多工作好多年的人也分不清他们有什么区别,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibernat ...

  6. 什么是 web 容器(如tomcat)

    什么是web容器? a.web容器是一种服务程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器.一个服务器可以有多个容器. b.启动结束一 ...

  7. Web服务器与Web容器的概念

    Web服务器的功能:处理HTTP协议栈.文件系统映射及I/O.多线程处理请求/响应.日志记录.代理服务. 只使用Web服务器,我们只能实现Web1.0的部分功能--静态网页,因为Web服务器应用只能提 ...

  8. 什么java web容器_什么是java web容器,_Java_ 少侠科技

    详细内容 我们讲到servlet可以理解服务器端处理数据的java小程序,那么谁来负责管理servlet呢?这时候我们就要用到web容器.它帮助我们管理着servlet等,使我们只需要将重心专注于业务 ...

  9. spring boot没有web.xml,如何向嵌入式的servlet容器中注册servlet组件

    1. Spring boot默认使用Tomcat作为嵌入式的servlet容器,只要引入spring-boot-starter-web依赖,就会默认用Tomcat作为servlet容器. 2. Spr ...

最新文章

  1. Android 利用addView 动态给Activity添加View组件
  2. Oracle Minus 取差集
  3. mysql数据库在查询的时候不能使用字段别名,字段别名只在显示的时候显示出来
  4. 3种常见的Class级别的错误
  5. 错误检测dP-bitstream-ei_flag runRestrictRef
  6. 计算机的数学发展史论文,数学简史论文范文
  7. Windows2003四大必知版本
  8. html5 机构化元素
  9. 自制 Chrome Custom.css 设置网页字体为微软雅黑扩展
  10. 计算机工作组如何添加打印机,局域网添加打印机,详细教您局域网打印机怎么添加...
  11. PS放大图片而不模糊的操作方法
  12. python -- 计算 平方、乘方、平方根_Python中math模块进行数学运算的示例
  13. gopro lrv文件和thm文件
  14. 2012 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
  15. SQL中cast和convert的区别
  16. ئاندرويىد تېلېفۇندىكى ئۇيغۇرچە
  17. idea设置java-google-style
  18. 洛谷P2015 二叉苹果树
  19. 由DatePicket和TimePicker扩展延伸其他控件
  20. 全国社会媒体处理大会即将召开,一文详解四天议程精华

热门文章

  1. CUDA的线程层次结构
  2. 三大公有云托管 Kubernetes 服务 (EKS、GKE、AKS) 评估
  3. PB市净率,PE市盈率
  4. HugeTLB Pages大页内存
  5. Hadoop生态圈介绍
  6. python windows记事本_pywinauto自动化操作记事本
  7. matlab 三维显示原图像_图像分割基础
  8. python模拟内置函数all_Python内置all函数详细介绍
  9. python对比不同大小的图片_使用Python 制作对比图片相似度的程序怎么比较?
  10. c语言转图形化,「分享」C语言如何编写图形界面