Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】(中)

简介: 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解

load-on-startup

如果在元素中配置了一个元素,那么WEB应用程序在启动时,就会装载并创建Servlet的实例对象、以及调用Servlet实例对象的init()方法

58.jpg59.jpg

作用:

  1. 为web应用写一个InitServlet,这个servlet配置为启动时装载,为整个web应用创建必要的数据库表和数据
  2. 完成一些定时的任务【定时写日志,定时备份数据】

在web访问任何资源都是在访问Servlet

当你启动Tomcat,你在网址上输入http://localhost:8080。为什么会出现Tomcat小猫的页面?

这是由缺省Servlet为你服务的

  • 我们先看一下web.xml文件中的配置,web.xml文件配置了一个缺省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>
  • 什么叫做缺省Servlet?凡是在web.xml文件中找不到匹配的
    元素的URL**,它们的访问请求都将交给缺省Servlet处理,也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求
  • 既然我说了在web访问任何资源都是在访问Servlet,那么我访问静态资源【本地图片,本地HTML文件】也是在访问这个缺省Servlet【DefaultServlet】
  • 证实一下:当我没有手工配置缺省Servlet的时候,访问本地图片是可以访问得到的

60.jpg

  • 现在我自己配置一个缺省Servlet,Demo1就是我手工配置的缺省Servlet,覆盖掉web.xml配置的缺省Servlet

<servlet>

       <servlet-name>Demo1</servlet-name>

       <servlet-class>zhongfucheng.web.Demo1</servlet-class>

   </servlet>


   <servlet-mapping>

       <servlet-name>Demo1</servlet-name>

       <url-pattern>/</url-pattern>

   </servlet-mapping>

  • 下面我继续访问一下刚才的图片,此时输出的是Demo1这个Servlet写上的内容了

61.jpg

总结:无论在web中访问什么资源【包括JSP】,都是在访问Servlet。没有手工配置缺省Servlet的时候,你访问静态图片,静态网页,缺省Servlet会在你web站点中寻找该图片或网页,如果有就返回给浏览器,没有就报404错误

目录
相关文章
|
7月前
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
|
2月前
|
Java 应用服务中间件 Spring
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
【终极解决方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
38 0
|
存储 应用服务中间件 API
JavaWeb 速通Servlet(ServletConfig和ServletContext)
JavaWeb——ServletConfig 和 ServletContext 内容分享。
70 1
|
前端开发 Java Spring
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
解决Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/Servlet
393 0
|
存储 安全 Java
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)3
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
78 1
|
前端开发 JavaScript 小程序
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
Servlet 技术--ServletConfig类--ServletContext 类--HTTP 协议
58 0
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]【解决方案】
Servlet学习(六):ServletContext对象的作用
Servlet学习(六):ServletContext对象的作用
118 0
Servlet学习(六):ServletContext对象的作用
|
4月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
41 3