zoukankan      html  css  js  c++  java
  • 部署描述符 web.xml

    google的部署描述符详解: https://cloud.google.com/appengine/docs/flexible/java/configuring-the-web-xml-deployment-descriptor?hl=zh-cn

    部署描述符是名为 web.xml 的文件。它位于应用 WEB-INF/ 目录下的 WAR 中。该文件为 XML 文件,其根元素是 <web-app>

    Servlet 和网址路径

    web.xml 定义网址路径与通过这些路径处理请求的 servlet 之间的映射。网络服务器使用此配置来标识用于处理给定请求的 servlet,并调用与请求方法相对应的类方法(例如,用于 HTTP GET 请求的 doGet() 方法)。

    要将网址映射到 servlet,您需要用 <servlet> 元素声明 servlet,然后通过 <servlet-mapping> 元素定义从网址路径到 servlet 声明的映射。

    <servlet> 元素声明 servlet,其中包括用文件中的其他元素指代 servlet 的名称,用于 servlet 的类以及初始化参数。您可以使用具有不同初始化参数的相同类声明多个 Servlet。每个 Servlet 的名称在部署描述符中必须是唯一的

    <servlet-mapping> 元素用于指定网址格式以及已声明 servlet 的名称(用于网址与格式匹配的请求)。网址格式可以在格式开头或结尾使用星号 (*) 以指示零个或多个任意字符。(该标准不支持在字符串中间使用通配符,并且不允许在一个格式中使用多个通配符。)格式会与网址的完整路径匹配,从域名后面的正斜杠 (/) 开始(含正斜杠)。

    <?xml version="1.0" encoding="UTF-8"?><!-- xml version and encoding -->
    <web-app version="4.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
        
        <!-- 部署描述符会覆盖@WebServlet标注 -->
        <servlet>
            <servlet-name>SimpleServlet</servlet-name>
            <servlet-class>app01c.SimpleServlet</servlet-class>
            
            <!-- 这个元素使得Servlet在应用启动时加载而不是爱第一次访问是加载,服务器会根据load-on-startup的大小依次对servlet进行初始化 -->
            <load-on-startup>10</load-on-startup>
        </servlet>
        
        <!--  如果url-pattern定义的是路径,那么以后所有对这个路径下资源的请求都会由servlet-name中定义的servlet处理; 
    如果url-pattern定义的是资源格式例如*.do等,那么对于所有符合这种格式的资源的请求都由指定的servlet处理。-->
        <servlet-mapping>
            <servlet-name>SimpleServlet</servlet-name>
            <!-- b个servlet可以使用多个url-pattern规则,<servlet-mapping>标签声明了与该servlet相应的匹配规则,每个<url-pattern>标签代表1个匹配规则; -->
            <url-pattern>/simple</url-pattern>
            <url-pattern>/other simple</url-pattern>
        </servlet-mapping>
    
        <servlet>
            <servlet-name>WelcomeServlet</servlet-name>
            <servlet-class>app01c.WelcomeServlet</servlet-class>
            <load-on-startup>20</load-on-startup>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>WelcomeServlet</servlet-name>
            <url-pattern>/welcome</url-pattern>
        </servlet-mapping>
        
    </web-app>
    
    <jsp-config>
          <jsp-property-group>
    <!-- 禁用所有.jsp页面使用EL --> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <scripting-invalid>true</scripting-invalid> </jsp-property-group>

      <!-- 自定义标签设置 -->
        <taglib>
        <taglib-uri>customtag.MyFirstTag</taglib-uri>
        <taglib-location>/WEB-INF/c.tld</taglib-location>
      </taglib>

      </jsp-config>
    
    
    

     JSP部署描述符

    应用可以使用 JavaServer Pages (JSP) 实现网页。JSP 是混合使用静态内容(如 HTML)和 Java 代码定义的 Servlet。

    App Engine 支持 JSP 自动编译和网址映射。应用 WAR 中文件名以 .jsp 结尾的 JSP 文件(在 WEB-INF/ 外部)自动编译为 Servlet 类,然后映射到与从 WAR 根目录到 JSP 文件的路径等效的网址路径。例如,如果应用在其 WAR 的 register/ 子目录中包含一个名为 start.jsp 的 JSP 文件,App Engine 将编译该文件并将其映射到网址路径 /register/start.jsp

    如果需要更好地控制如何将 JSP 映射到网址,您可以在部署描述符中使用 <servlet> 元素声明它,从而明确指定映射。您可以使用从 WAR 根目录到 JSP 文件的路径指定 <jsp-file> 元素,而不是 <servlet-class> 元素。JSP 的 <servlet> 元素可以包含初始化参数。

    例如:我的项目目录

    本页面的jsp部署描述符

    <?xml version="1.0" encoding="UTF-8"?><!-- xml version and encoding -->
    <web-app version="4.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
        
        <!-- 部署描述符会覆盖@WebServlet标注 -->
        <servlet>
            <servlet-name>Welcome</servlet-name>
            <jsp-file>/welcome.jsp</jsp-file>
            <load-on-startup>10</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>Welcome</servlet-name>
            <url-pattern>/welcome</url-pattern>
        </servlet-mapping>  
    </web-app>

     

  • 相关阅读:
    tomcat虚拟机配置
    日期时分秒毫秒+3位随机数
    springmvc action访问路径不带项目名
    nginx 配置模板
    AES加密
    spring-mvc里的 <mvc:resources> 及静态资源访问
    MySQL——事务(Transaction)
    mysql索引
    < aop:aspect>与< aop:advisor>的区别
    annotation-driven
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10662909.html
Copyright © 2011-2022 走看看