zoukankan      html  css  js  c++  java
  • Servlet 02 ----【javaweb-05】

    SERVLET

    1、Servlet原理

      客户端发送请求至服务器;服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。下面就让我用一张原理图来展示一下吧。
      

    2、Servlet的映射

      我们需要将内容响应给浏览器时,我们需要使用到映射。在一般的maven项目中,都会有一个web.xml的文件,我们将在其中使用mapper映射即可响应给浏览器。(在Servlet 01的展示中,我们同样也是用到了mapper,才让浏览器展示出内容)

      具体代码:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app 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"
             version="4.0"
             metadata-complete="true">
    
      <!--  注册servlet-->
      <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.charles.servlet.HelloServlet</servlet-class>
      </servlet>
    
      <!--  servlet的请求路径-->
      <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
      </servlet-mapping>
    </web-app>

    注册和请求路径缺一不可,其中servlet-name 和 url-pattern是自定义的,但是请求路径和注册的servlet-name要一一对应。

    1. 优先级问题:倘若指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;

    <!--404-->
    <servlet>
        <servlet-name>error</servlet-name>
        <servlet-class>com.kuang.servlet.ErrorServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>error</servlet-name>
        <url-pattern>/*</url-pattern> <!-- 默认的请求路径 -->
    </servlet-mapping>

    2. 可以自定义后缀实现请求映射:

    <!--注意点,*前面不能加项目映射的路径-->
    
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>*.charles</url-pattern>
    </servlet-mapping>

    3. 一个Servlet可以指定通用映射路径

        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello/*</url-pattern>
        </servlet-mapping>

    4. 一个Servlet可以指定多个映射路径

        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello2</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello3</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello4</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
            <url-pattern>/hello5</url-pattern>
        </servlet-mapping>
  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/Charles-H/p/Learning_Web_05.html
Copyright © 2011-2022 走看看