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>
  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/Charles-H/p/Learning_Web_05.html
Copyright © 2011-2022 走看看