Servlet 02 ----javaweb-05

Posted Charles_H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 

 

 

以上是关于Servlet 02 ----javaweb-05的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb05-HTML篇笔记

JavaWeb05-HTML篇笔记

02_Servlet规范

Java实战之04JavaWeb-05事务和连接池

JavaEE基础(02):Servlet核心API用法详解

JavaEE基础(02):Servlet核心API用法详解