zoukankan      html  css  js  c++  java
  • servlet(二):Servlet的web.xml配置

     

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
         <!--配置Servlet  -->
             <!--配置servlet类路径  -->
             <servlet>
                 <servlet-name>Myservlet</servlet-name>
                 <servlet-class>com.servlet.MyServlet</servlet-class>
             </servlet>
             <!--配置访问方式  -->
             <servlet-mapping>
                 <servlet-name>MyServlet</servlet-name>
                 <url-pattern>/my</url-pattern>
             </servlet-mapping>
         <!--配置第二个servlet  -->
             <servlet>
                 <servlet-name>my2</servlet-name>
                 <servlet-class>com.servlet.MyServlet2</servlet-class>
             </servlet>
             <servlet-mapping>
                 <servlet-name>my2</servlet-name>
                 <url-pattern>/my2</url-pattern>
             </servlet-mapping>
    </web-app>
    复制代码

     <servlet>和<servlet-Mapping>,这两个一个是配置Servlet,一个是配置其映射信息,其中<servlet>中的<servlet-name>可以随意指定,但要有一定的意义,一般取为类的名称,例如我的类名为MyServlet,这里取名为MyServlet,下面的<servlet-class>是类的全路径,package+calssname,一定要是全路径!
    <servlet-Mapping>是映射信息,它也有一个<servlet-name>,里面的名字是对应的Servlet名,也就是我们上面配置的Servlet名字,这里是MyServlet,下面的是映射路径,也就是访问Servlet的名称,这里也是以方便和有意义为前提的,是我们在访问Servlet在浏览器地址栏后面输入的那个信息,例如我的映射路径命名为/my,在地址栏中输入http://localhost/20181210/my

    Servlet的细节

    一个已经注册的Servlet可以被多次映射

    复制代码
             <servlet>
                <servlet-name>Demo1</servlet-name>
                <servlet-class>com.web.Demo1</servlet-class>
            </servlet>
            <servlet-mapping>
                <servlet-name>Demo1</servlet-name>
                <url-pattern>/Demo1</url-pattern>
            </servlet-mapping>
            <servlet-mapping>
                <servlet-name>Demo1</servlet-name>
                <url-pattern>/nmsl</url-pattern>
            </servlet-mapping>
    复制代码

    无论我访问的是http://localhost:8080/Demo1还是http://localhost:8080/nmsl。我访问的都是Demo1。

    Servlet映射的URL可以使用通配符

    这里说一下在配置映射路径的时候,有以下两种:
                        url-pattern                         浏览器输入
    精确匹配             /servlet                   http://localhost:8080/day10/servlet
                                                       
     
    模糊匹配             /*                   http://localhost:8080/asd/任意路径
                             /lm/*                 http://localhost:8080/asd/lm/任意路径
                         *.后缀名              http://localhost:8080/asd/任意路径.do

     
    注意:
                       1)url-pattern要么以 / 开头,要么以*开头。  绝对不能漏掉斜杠
                       2)不能同时使用两种模糊匹配,例如 /lm/*.do是非法路径
                       3)当有输入的URL有多个servlet同时被匹配的情况下:
                                         3.1 精确匹配优先
                                         3.2以后缀名结尾的模糊匹配先级最低
  • 相关阅读:
    Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
    Spring Boot 2 快速教程:WebFlux 快速入门(二)
    ES 集群上,业务单点如何优化升级?
    Spring Boot 2.x 系列教程:WebFlux 系列教程大纲(一)
    泥瓦匠想做一个与众不同的技术"匠"
    java编程行业微信群,无论新手老手欢迎加入,会一直更新
    Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling
    解决方案:如何防止数据重复插入?
    阿里 Java 手册系列教程:为啥强制子类、父类变量名不同?
    品阿里 Java 开发手册有感
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/10593807.html
Copyright © 2011-2022 走看看