美文网首页
<JavaWeb>Servlet配置

<JavaWeb>Servlet配置

作者: 普通一般社会人 | 来源:发表于2016-04-20 03:59 被阅读211次

一个Web应用程序的结构一般而言都如下图所示,


webapp目录结构

首先是公共资源部份,即用户可以通过URL访问到的静态资源,通常包括前四个文件目录,即css,html,js和images。在使用这些资源的时候,要记得根据资源的类型进行分类,会显得更有条理。
Web应用一般还会包括一个META-INF目录,存放了架构包的源信息,定义了包扩展属性,类的加载路径等,还可以定义一些自定义属性。
Web应用的核心部分是WEB-INF目录,它是web应用的专用区,并不提供给用户,也无法通过URL访问到。在这个目录下存放的主要是类文件以及类所依赖的库,它主要包括classes和lib这两个子目录,其中classes目录中存放的主要是编译后的类文件以及编写的代码,lib目录存放的主要是web应用依赖的架包,比如说第三方库等。Servlet的核心配置文件,web.xml文件也存放在这个目录下。

Web.xml

Web.xml也被称作部署描述符,采用xml语法,主要是用来描述一个web应用,设置web应用程序的组件部署信息。
而对于Servlet容器来说,需要支持部署描述符中的所有元素。
今天所记录的所有元素,都属于web.xml文件。
Servlet声明
Servlet的声明依靠两个元素,分别是<servlet>和<servlet-mapping>元素,它们的结构如下:

<servlet>
    <servlet-name>名称</servlet-name>
    <servlet-class>Servlet类的package路径</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>名称,要和上方的名字相同</servlet-name>
    <url-pattern>对外映射的相对路径/url</url-pattern>
    <url-pattern>映射路径可以有多个,指向同一个Servlet</url-pattern>
    <url-pattern>路径支持模糊匹配,即/hello/*,所有的URL都会指向这个servlet</url-pattern>
</servlet-mapping>

servlet-mapping在进行路径匹配时,按照从高到低的优先级规则进行匹配,直到匹配到为止。如果没有匹配到,就会返回错误信息。
匹配规则:
1.精确路径匹配,完全匹配
2.最长路径匹配,最长前缀匹配
3.扩展名匹配(如/admin.jsp)
4.default servlet(/)或者放弃匹配
需要说明的是,如果servlet的url是/hello,而请求url为/hello.jsp,并不会转发给/hello的servlet,而是给*.jsp的servlet,/hello/a.jsp才会给/hello的servlet。
ServletConfig配置
ServletConfig配置主要是用来存放固定的配置信息,以Servlet为单位,无法共享,配置也在Servlet元素当中。

<servlet>
    <init-param>
        <param-name>配置名称key</param-name>
        <param-value>配置值value</param-value>
    </init-param>
</servlet>

存放在哪个<servlet>标签中,就属于哪个servlet。
ServletContext配置
ServletContext不依赖于Servlet,属于一个webapp,可以在多个Servlet之间共享。

<context-param>
    <param-name>Context名</param-name>
    <param-value>Context值</param-value>
</context-param>

由于ServletContext属于webapp,所以在层次上与<servlet>标签属于同一层。
启动
默认情况下,Servlet会在第一次被请求时,才会加载到Servlet容器中,执行init方法,如果我们想要在Servlet容器启动时进行操作的话,需要进行一些配置。

<servlet>
    <load-on-startup>0</load-on-startup>
</servlet>

它支持改变servlet的默认初始化时间,当load-on-startup的值大于等于0的时候,就表示Servlet容器在启动时,加载对应的Servlet,没有设置或者为负数时,采用默认设置。
当多个Servlet都设置了加载时间时,会按照值的大小,从小到大依次加载。
自定义错误界面

<error-page>
    <error-code>404</error-code>//HTTP错误状态码
    <location>/404.html</location>//跳转指定页面位置,路径相对于webapp目录
</error-page>

更高级的做法可以添加exception-type元素来捕获一个JAVA异常类型。当系统中出现了对应的异常,就会跳转到对应的界面。
请求访问中不包含servlet
如果我们请求了一个不包含特定servlet的界面,会跳转到index.html页面,即欢迎页面。

<welcome-file-list>
    <welcome-file>/index.html</welcome-file>
</welcome-file-list>

MIME类型影射
MIME(Multipurpose Internet Mail Extensions),即多用途互联网邮件拓展类型。最初是为了标记邮件附件类型,后来拓展为一个描述消息类型的互联网标准,即描述一个特定的扩展名文件用特定应用程序打开。当特定扩展名的文件被访问时,浏览器会自动调用对应的应用程序去打开。

<mime-mapping>//对应扩展名文件映射类型
    <extension>扩展名</extension>
    <mime-type>mime标准</mime-type>
</mime-mapping>

mime扩展标准跳转

相关文章

  • <JavaWeb>Servlet配置

    一个Web应用程序的结构一般而言都如下图所示, 首先是公共资源部份,即用户可以通过URL访问到的静态资源,通常包括...

  • <JavaWeb>Servlet技术简介

    笔记总结自网易云课堂Servlet系列课程 什么是Servlet Servlet == Server + Appl...

  • <JavaWeb>Servlet-Cookie与Se

    会话 会话可以认为是从用户打开客户端开始,到用户关闭客户端结束。会话中包含整个HTTP请求的过程。 会话使用 在会...

  • <JavaWeb>Servlet接口与实现类(上)

    Servlet生命周期 我们如果想要在Servlet处理逻辑之前做一些准备工作,或者在Servlet实例被销毁之前...

  • <JavaWeb>Servlet接口与实现类(下)

    Servlet共享配置信息 数据库的配置信息一般是有多个Servlet共享的,那么在这种情况下,上一份笔记中的方法...

  • Servlet

    Servlet介绍 Servlet开发步骤 创建Servlet 配置Servlet 配置Servlet中设置初始化...

  • servlet 笔记

    servlet servlet 声明周期 Servlet 的线程安全 Servlet 获取配置信息 Servlet...

  • Servlet 路径配置,初始化参数.

    1.Servlet路径配置问题 首先是在servlet里配置 注解配置:@WebServlet("/TestIni...

  • <JavaWeb>Maven简介

    笔记总结自网易云课堂Maven课程 什么是Maven Maven是由Apache基金会出品的,使用JAVA编写的开...

  • Servlet第二部分

    一、Servlet体系结构 二、Servlet相关配置

网友评论

      本文标题:<JavaWeb>Servlet配置

      本文链接:https://www.haomeiwen.com/subject/xryzlttx.html