众所周知,Servlet在编写完毕后,必须先在web.xml中配置才能访问。在配置时,需要指定一个Servlet的访问地址。Servlet映射地址不是随便怎么写都可以,必须要遵从一定的规则,这个规则在Servlet的规范中有详细的说明。按照Servlet规范的要求,Servlet映射地址形式只能有四种,即:
第一种、以“/”开头,以“/*”结束的地址,这种地址映射称为路径映射。这种映射中使用了通配符,代表访问这个目录下的任意一个地址都将调用这个Servlet。比如,一个Servlet映射的地址是“/admin/*”,那么当访问/admin这个目录下的任意一个地址,都会映射到这个Servlet上,除非这个地址已经明确地映射到其它的Servlet上了。也即,当另外一个Servlet映射的地址是“/admin/listUser”,那么当访问这个地址时,请求还是会被映射到这人Servlet上。
第二种、以“*.”开头的地址,这种地址映射称为扩展名映射。这也是一种模糊映射,代表访问相同扩展名的地址时,都会映射到这个Servlet上。这种地址映射在Struts中就得到了应用,即所有访问以.do结束的地址时,都会映射到ActionServlet上。但不能将第一种与第二种地址映射形式结合起来用,即如果写成“/admin/*.do”,这就错了。没有原因,因为这是规范。
第三种、只有一个“/”的地址映射,这种地址映射称为默认映射。也就是说,如果用户访问了一个地址,这个地址没有明确地在web.xml中映射,也不满足以上两种形式的模糊映射,这个时候就访问“/”映射的Servlet。这种地址映射,我们在实际开发中很少应用,但它对服务器来说是很重要的。以Tomcat为例,Tomcat实际上是一个纯粹的Servlet容器,也就是说,只有Servlet才能在Tomcat上运行。但有可能会说,我们将HTML文件部署到Tomcat上也运行得很好啊。没错,但真正运行的还是Servlet。什么意思呢?大家可以想一下,我们部署到服务器上所有的HTML文件,我们从来都不会到web.xml中去映射的,根据我们刚刚讲到的,如果访问了没有映射的地址,服务器会访问“/”所对应的Servlet,而正是这个Servlet帮我们找到HTML文件,并把它写到客户端的。也就是说,Tomcat预先定义了一个Servlet,并把它的地址映射为“/”。这样其它静态资源的访问实际上都是在访问这个Servlet,而它的职责则是简单地找到这个文件,并把它们写到响应中去。
第四种、明确的地址映射,这是我们最常用的一种地址映射形式。规范中没有对这种地址映射有特殊的要求,但在配置地址时,必须以“/”开头才可以,否则将报错。
总结以上几种地址形式,我们可以了解到服务器在接收到一个地址请求后的处理流程。以一个用户访问http://www.sodii.com/class_intro/viewClassIntro.htm?id=1这个地址为例:
第一步,服务器首先看/class_intro/viewClassIntro.htm这个地址有没有明确地映射,如果已经明确地映射了这个地址,则直接访问地址所对应的Servlet,处理请求生成响应。
第二步,如果没有明确映射这个地址,则看目录映射或扩展名映射中有没有满足这个地址的。也即有没有映射地址为“/class_intro/*”,或者“*.htm”的Servlet,如果有一个满足就访问其所对应的Servlet。如果两个都满足,则访问目录映射所对应的Servlet。
第三步,如果也不满足模糊映射,则访问“/”所对应的Servlet。
分享到:
相关推荐
3. **Servlet映射**:通过`<url-pattern>`标签,我们可以将Servlet映射到特定的URL模式上,如上述示例中的`/myservice`。还可以使用通配符如`*.do`来匹配多种请求路径。 4. **HttpServletRequest与...
Servlet映射路径还可以使用通配符来实现更灵活的匹配: 1. `*.扩展名`:这种格式用于匹配特定的文件扩展名,例如`*.jsp`。但需要注意,不能写成`/*.jsp`,这样的形式是非法的。如果输入`...
- **URL映射**:将Servlet映射到特定的URL路径上,使得服务器知道当收到对应请求时应该调用哪个Servlet。 #### 八、Servlet间的通信 Servlet之间可以通过多种方式进行通信,包括共享数据和使用`ServletContext`...
Servlet的访问路径通常是通过URL路径映射来设定的。在`web.xml`中,你可以看到类似这样的配置: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-...
精确匹配要求访问的URL地址与配置文件中指定的url-pattern完全一致,这种匹配方式要求客户端输入的URL除了包括工程名、服务器地址和端口号等部分,还必须与Servlet别名后配置的URL路径完全匹配。比如,有一个Servlet...
- **Servlet的配置**:在`web.xml`中通过`<servlet>`和`<servlet-mapping>`元素来定义和映射Servlet。例如: ```xml <servlet> <servlet-name>HW</servlet-name> <servlet-class>HelloWorldServlet</servlet-...
2. **Servlet映射**:在Web应用的`web.xml`配置文件中,我们可以使用`<servlet>`和`<servlet-mapping>`元素定义Servlet及其URL模式。URL模式决定了哪些HTTP请求会被特定的Servlet处理。 3. **HttpServletRequest和...
配置Servlet通常涉及到编写web.xml文件,这是一个部署描述符,其中包含了关于Servlet的信息,如Servlet名称、类名、URL映射以及初始化参数等。在web.xml中,你可以定义多个Servlet,并设置它们之间的关系,比如过滤...
在web.xml文件中,我们可以配置Servlet,包括设置Servlet的映射路径、初始化参数和加载顺序。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet...
这将映射URL `/myservlet` 到 `com.example.MyServlet` 类。 **Cookie** Cookie是Web服务器发送到浏览器的一小段文本信息,浏览器会在后续的请求中将其返回给服务器。它主要用于保持会话状态、用户认证和个性化...
9. **部署描述符(web.xml)**:Web应用的配置文件,定义Servlet、Filter、监听器等组件及其映射关系。 10. **Servlet容器**:如Tomcat、Jetty等,负责解析部署描述符,管理Servlet的生命周期,处理请求和响应。 ...
另一种常见的传值方式是通过 URL 参数的形式传递数据给 Servlet。这种方式适用于简单的查询参数或少量的数据传递。 示例代码: ```jsp <a href="JspServlet?action=toServlet">click me ``` 在 Servlet 中,可以...
在web.xml配置文件中声明Servlet,指定URL映射。 1.5 使用MyEclipse开发Servlet MyEclipse是集成开发环境,提供了便捷的Servlet创建和部署功能。通过向导可以直接创建Servlet,自动生成模板代码,并自动配置web.xml...
5. Servlet配置:在Web应用的`web.xml`文件中,可以通过`<servlet>`和`<servlet-mapping>`元素来配置Servlet,指定Servlet的类名、URL映射等信息。 6. Servlet的生命周期:Servlet的生命周期包括加载、初始化、服务...
`web.xml`是Web应用的部署描述符,其中的`<servlet>`和`<servlet-mapping>`元素分别用于定义Servlet及其映射路径。 例如,在`web.xml`中配置一个名为`HelloServlet`的Servlet,你需要这样写: ```xml <servlet> ...
- 学习如何使用Servlet进行错误处理、URL映射、请求参数解析等常见任务。 总之,这个压缩包提供的Servlet源代码是Java Web开发者的宝贵学习资料,它涵盖了Servlet和JSP的基础知识,以及如何在Eclipse这样的IDE中...
9. **URL重写**:Servlet 3.0引入了`PathPattern`,允许更灵活的URL映射,可以方便地进行URL重写,有助于SEO优化。 10. **多Part请求**:对HTTP多部分请求的支持增强,使处理上传文件和复杂表单数据变得更加简单。 ...
在J2EE环境中,Servlet的部署和配置通常通过web.xml文件完成,该文件定义了Servlet的映射路径、初始化参数、会话管理策略等。随着Java EE的发展,现代应用更多地采用注解(Annotation)方式来简化配置,比如使用`@...
在web.xml文件中,配置Servlet的映射,指定Servlet名称和类名,以及URL模式。这样,当用户访问/hello.html时,MyServlet将被调用。 3. **运行与测试** 运行项目,浏览器会显示"Hello Servlet!",验证了Servlet的...
Servlet被设计用来接收和响应来自Web客户端(如浏览器)的HTTP请求,并可以返回HTML、XML、JSON或其他任何形式的数据。在这个主题中,我们将深入探讨Servlet在Web项目中的应用。 ### 1. Servlet生命周期 Servlet的...