`

servlet的注册和映射

阅读更多
Servlet程序需要在web.xml中注册和映射,才可以被Servlet引擎加载和被外界访问,通常
存储在<WEB应用程序目录>\WEB-INF\class目录中。


1. Servlet注册

<web-app>
  ...
  <servlet>
    <servlet-name>nameToRegister</servlet-name>
    <servlet-class>com.john.Threaten</servlet-class>
  </servlet>
  ...
</web-app>

servlet-name是注册到引擎的servlet名称,需要符合规范(可以包含空格)且唯一。
servlet-class是servlet类的全限定名,就是把包名带上。


2. Servlet映射

<web-app>
  ...
  <servlet-mapping>
    <servlet-name>nameToRegister</servlet-name>
    <url-pattern>/myservlet</url-pattern>
  </servlet-mapping>
  ...
</web-app>

servlet-name是已经注册的servlet名称。
url-pattern是映射的路径,可以使用*通配符,但是只能有两种固定的格式,且不能混合使用:
a. *.扩展名
b. 斜杠(/)开头并以(/*)结尾

请求的路径符合该pattern就会调用servlet-name指定的servlet处理。


3. servlet和servlet-mapping的关联

servlet是唯一的,多个不同的servlet-mapping可以映射到同一个servlet上:

<web-app>
  ...
  <servlet-mapping>
    <servlet-name>nameToRegister</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>nameToRegister</servlet-name>
    <url-pattern>/treaty/*</url-pattern>
  </servlet-mapping>
  ...
</web-app>

url符合*.do或者/treaty/*都会映射到注册名为nameToRegister的servlet上。


4. 映射优先级

a. io文件和映射

<servlet-mapping>
  <servlet-name>nameToRegister</servlet-name>
  <url-pattern>/test/myservlet.html</url-pattern>
</servlet-mapping>

在test目录下有myservlet.html文件,那么servlet引擎是调用这个html文件还是nameToRegister呢?

答案是后者

b. 多个映射之间

有以下按照优先级从高到低的映射:
/theatre/* 映射到 ServletA
/*         映射到 ServletB
/theatre   映射到 ServletC
*.do       映射到 ServletD

当请求URL为"theatre/retreat.html"时, /theatre/*和/*都可以匹配,Servlet引擎将调用ServletA

当请求URL为"/theatre"时,"/theatre/*"和”/theatre"都可以匹配这个URL,Servlet引擎将调用ServletC

当请求URL为"/theatre/retreat.do"时,"/theatre/*"和"*.do"都可以匹配这个URL,Servlet引擎将调用ServletA

当请求URL为"/retreat.do"时,"/*"和"*.do"都可以匹配这个URL,Servlet引擎将调用ServletB

当请求URL为"/cheat/wheat/retreat.do"时,"/*"和"*.do"都可以匹配这个URL,Servlet引擎将调用ServletB

可以看出,匹配是按照最相符以及优先级原则
分享到:
评论

相关推荐

    SpringBoot 注册自己的Servlet(三种方式)(源代码)

    1,声明servlet及映射 2,加上@ServletComponentScan 才会扫描加了这个注解 运行结果 方法2:使用springboot提供的注册 Servlet 配置类 运行结果 方法3:动态注册: Servlet类 配置类 springboot内部绑定了嵌入式...

    Servlet JSP登陆注册

    本示例是一个简单的登录注册系统,虽然没有涉及到数据库交互,但对于我们理解Servlet和JSP的基本工作原理及其协作方式有着重要的学习价值。 Servlet是一种Java编写的服务器端程序,主要用于扩展服务器的功能,处理...

    jsp+Servlet+javaBean实现登录注册

    5. 配置Web应用的部署描述符(web.xml),设置Servlet映射和初始化参数。 6. 运行和测试系统,确保登录和注册功能正常工作,包括错误处理和用户验证。 以上就是“jsp+Servlet+javaBean实现登录注册”项目的核心技术...

    OSGI的servlet配置和简单实例

    1. OSGI中的Servlet注册 在OSGI环境中,我们不再通过web.xml文件来注册Servlet,而是使用OSGI服务的概念。每个Servlet都被视为一个服务,通过服务注册到OSGI框架中。这通常涉及以下步骤: - 创建Servlet类:首先,...

    基于servlet的登录注册功能

    - 配置文件(web.xml):部署描述符,用于配置Servlet的映射和初始化参数。 - 数据库连接相关类(如DBConnection.java):用于与数据库交互的辅助类。 - 可能还有其他辅助类或资源文件,如样式表(CSS)和脚本...

    struts-servlet关于管理员注册和登录的整合

    本教程将详细介绍如何使用Struts与Servlet整合来实现管理员的注册和登录功能,这对于初学者理解MVC架构和实际应用开发具有重要意义。 首先,我们来看Struts框架。Struts提供了一种结构化的方式来组织Java Web应用...

    Servlet中文API文档 servlet

    5. **Servlet配置**:Servlet的配置通常在web.xml文件中进行,包括Servlet的注册、映射URL、设置初始化参数等。例如,`&lt;servlet&gt;`、`&lt;servlet-mapping&gt;`标签用于定义Servlet及其映射。 6. **Servlet上下文**:...

    jsp+servlet+jdbc注册登录入门项目

    本项目是一个基于JSP、Servlet和JDBC技术的简单注册登录系统,旨在帮助初学者快速理解和掌握这些核心技术在实际开发中的应用。在这个项目中,开发者将使用MySQL作为后端数据库,创建一个名为`test`的数据库,并在...

    java servlet 最简单的小例子

    在`web.xml`部署描述符文件中,我们通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素来注册和映射Servlet。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/...

    servlet的分步学习的登录注册系统

    在`web.xml`文件中,我们可以通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素来配置Servlet,指定Servlet类和URL映射关系。 4. **HTTP请求与响应** Servlet通过`HttpServletRequest`和`HttpServletResponse`对象来处理...

    用于servlet程序的开发的servlet-jar包

    6. **部署描述符(web.xml)**:这是web应用的配置文件,定义了Servlet、过滤器和监听器等组件的映射、初始化参数和安全约束等。 7. **Servlet容器**:如Apache Tomcat,负责加载和管理Servlet,处理请求分发,提供...

    servlet入门servlet入门

    3. **配置web.xml**:在web.xml中注册Servlet,指定其名称和类名,并映射URL模式。 web.xml配置示例: ```xml xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=...

    Servlet注意点

    配置包括定义Servlet类、映射URL模式以及设置初始化参数。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.MyServlet&lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet-...

    servlet写的,登陆,注册,注销。

    在本文中,我们将深入探讨如何使用Java Servlet技术来构建一个基础的Web应用程序,该程序包含了登录、注册和注销的功能。Servlet是一种服务器端的Java应用程序,它扩展了Web服务器的能力,可以处理HTTP请求并生成...

    Servlet的应用与配置

    Servlet 配置是指在 web.xml 文件中定义 Servlet 的配置信息,包括 Servlet 名称、映射 URL、初始化参数等。web.xml 文件是 Java Web 应用程序的标准配置文件,用于定义应用程序的结构和行为。 四、Servlet 生命...

    Servlet框架基本源码

    在MyEclipse中,通常通过web.xml配置文件来注册和映射Servlet。例如: ```xml &lt;servlet&gt; &lt;servlet-name&gt;ServletDemo&lt;/servlet-name&gt; &lt;servlet-class&gt;com.example.ServletDemo&lt;/servlet-class&gt; &lt;/servlet&gt; ...

    Jsp/Servlet3.0 ppt和代码

    5. **动态注册**:开发者可以通过编程方式动态地注册Servlet、Filter和Listener,增强了应用的灵活性。 6. **Pluggable Servlet Container**:Servlet 3.0规范允许实现自定义的Servlet容器,进一步增强了扩展性。 ...

    达内servlet

    2. **注册Servlet**:在`web.xml`中通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素声明和映射Servlet。 3. **请求处理**:Servlet通过`HttpServletRequest`和`HttpServletResponse`对象获取请求信息并构造响应。 4. **...

    servlet 心的练习

    2. 注册Servlet:在Web应用的`web.xml`配置文件中,添加Servlet配置,指定Servlet的类名和URL映射。 3. 编译与部署:将Servlet类编译成`.class`文件,放入Web应用的`WEB-INF/classes`目录下。将`web.xml`放入`WEB-...

    SERVLET实验

    Servlet需要在Web应用的部署描述符(web.xml)中注册,声明其URL映射和初始化参数。或者,使用Java注解(@WebServlet)可以在类级别进行声明式注册。 5. **Servlet请求处理**: `doGet()`和`doPost()`方法是处理...

Global site tag (gtag.js) - Google Analytics