Servlet的一些细节(1)
1. Servlet程序必须映射到一个URL地址
由于客户端是通过URL访问web服务器资源,所以Servlet程序必须映射到一个URL地址。这个工作在web.xml文件中使用<servlet>元素和<servlet-maping>元素完成
<servlet>用于注册Servlet,<servlet-name>和<servlet-Class>分别用于设置Servlet的注册名称和完整类名
一个<servlet-maping>元素用于映射一个已经注册的Servlet的一个对外访问路径,子元素<servlet-name>和<url-pattern>分别指定Servlet的注册名称和对外访问路径
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>cn.school.ServletDemo</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletDemo2</servlet-name>
<servlet-class>cn.school.ServletDemo2</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/ServletDemo</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletDemo2</servlet-name>
<url-pattern>/servlet/ServletDemo2</url-pattern>
</servlet-mapping> </web-app>
对于第一个程序,使用http://localhost:8080/D623/ServletDemo
对于第二个程序, 使用http://localhost:8080/D623/servlet/ServletDemo2
2. 同一个Servlet可以被映射到多个URL地址上去
即是一个Servlet注册名可以对应多个<servlet-mapping>元素
也就是说可以有多个地址访问同一个Servlet程序
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>cn.school.ServletDemo</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/my1/ServletDemo</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/my2/ServletDemo</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/my3.html</url-pattern>
</servlet-mapping>
注意最后一个访问地址是http://localhost:8080/D623/my3.html
在地址栏中出现这样的地址看起来好像是一个静态页面,其实Selvlet是动态页面,这就是常说的伪静态
3. Servlet映射地址可以使用* 通配符
但只有两种固定格式
*.扩展名 或者 以 /* 结尾
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>cn.school.ServletDemo</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/ServletDemo</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>ServletDemo</servlet-name>
<url-pattern>*.dd</url-pattern>
</servlet-mapping>
通配符的意思是可以输入任何字符
注意一点,当修改web.xml时,不需要重新生成web应用,web服务器会自动监测web.xml的改动
Tomcat服务器的conf文件夹下context.xml文件有一句
<WatchedResource>WEB-INF/web.xml</WatchedResource>
4. 最先匹配最像的路径
如下映射关系
Servlet1 映射到 /abc/*
Servlet2 映射到 /*
Servlet3 映射到 /abc
Servlet4 映射到 *.do
当请求URL为 /abc/a.html 时,匹配Servlet1
当请求URL为 /abc 时,匹配Servlet3
当请求URL为/abc/a.do 时,匹配Servlet1 (*在前面的方式优先级最低)
当请求URL为 /a.do 时 匹配Servlet2
Servlet的一些细节(1)的更多相关文章
- Servlet的一些细节问题
Servlet的细节问题 1.一个已经注册的Servlet可以被多次映射即: <servlet> <!-- servlet的注册名 --> <servlet-name&g ...
- servlet中的细节
Get方法有大小限制:1024个字符.这些信息使用 Query_String头传递,并通过Query_String环境变量访问.Post方法:请求体信息使用FromData头传递.读取所有表单参数:g ...
- Servlet的一些细节(2)
1. Servlet的创建时间 Servlet是不能单独运行,调用它的叫做Servlet引擎,或者叫做web服务器 针对客户端的多长Servlet请求,通常情况下,服务器只会创建一个Servlet实例 ...
- [Java.Web] Servlet 的一些细节
本文来自 传智播客视频PPT 1. 由于客户端是通过 URL 地址访问 web 服务器中的资源,所以 Servlet 程序若想被外界访问,必须把 servlet 程序映射到一个 URL 地址上,这个工 ...
- Servlet的一些细节
由于客户端是通过URL地址访问web服务器的中的资源的,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet& ...
- 2016-2-1 Servlet细节
Servlet的一些细节(韩顺平老师视频讲解)(1)由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序想要被外界访问,必须把servlet程序映射到一个URL地址上.这个工作在 ...
- JavaWeb -- Servlet运行过程 和 细节
Servlet的运行过程 lServlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后: ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象.如果是,则 ...
- Servlet映射细节
Servlet的映射细节: 1):一个Servlet程序(Web组件),可以配置多个<url-pattern>,表示一个Servlet有多个资源名称. <servlet-mappin ...
- java web学习总结(五) -------------------servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
随机推荐
- jQuery 删除元素
通过 jQuery,可以很容易地删除已有的 HTML 元素. 删除元素/内容 如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其子元素) empty ...
- 64位 CentOS NDK 编译 FFMPEG
64位 CentOS NDK 编译 FFMPEG 一. 参考文章: http://www.cnblogs.com/baopu/p/4733029.html http://www.c ...
- hdu_5276
//不管怎么样还是希望天天做笔记把,真是太懒了#include<iostream> #include<cstdio> #include<vector> #inclu ...
- Extjs 4学习2
主要学习采自:http://www.ishowshao.com/blog/2012/06/19/extjs-4-getting-started/ 用的sdk为extjs4.2.1 根据其中的提示装了一 ...
- <input>标签
一. 上传图片: type="file":上传文件 accept:选择上传的种类,图片或者是视频(/png只能上传png格式的图片) multiple="multip ...
- Java字符串学习
Java中字符串是String类的实例,字符串也是对象,所以 Java将字符串作为对象进行管理 Java使用java.lang 包中的String类来创建字符串. 1.定义字符串: 使用 " ...
- smali文件语法参考
Dalvik opcodes Author: Gabor Paller Vx values in the table denote a Dalvik register. Depending on th ...
- JSP技术的优缺点介绍
什么是JSP?JSP可用一种简单易懂的等式表示为:HTML+Java=JSP. JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑. 网页还能通过 ...
- WSGI规格说明书
PEP 333 这应该是WSGI最权威的文档了 http://www.python.org/dev/peps/pep-3333/ 值翻译了最重要的前面部分,后面读者可以参考 当然文档有些生硬,欢迎 ...
- 化简复杂逻辑,编写紧凑的if条件语句
当业务逻辑很复杂,涉及多个条件的真假,或者多种条件下都会执行同一动作时,如何编写紧凑的if语句呢?本文借由一个实际例子,利用数学的布尔逻辑整理条件,最终产生if语句. 问题 在<X3 重聚> ...