web.xml中添加Servlet配置信息

  • 使用Eclipse创建Servlet,会自动的在WEB-INF下的web.xml中声明,但是有的时候需要我们手动的写入配置信息,以下就是Servlet在web.xml文件最基本的配置信息和它们所代表的意思:
<!--声明servlet-->
<servlet>
<!--别名-->
<servlet-name>aaaa</servlet-name>
<!--servlet所在的类-->
<servlet-class>包名.类名</servlet-class> <servlet>
<servlet-mapping>
<!--别名-->
<servlet-name>aaaa</servlet-name>
<!--资源名-->
<url-pattern>/bbbb</url-pattern>
</servlet-mapping>

访问路径

web.xml

  • 确切路径匹配:

以 / 开始,后面跟一个具体 路径,也可以包含子路径

/ 代表该web应用的根目录

在该匹配模式下,客户端只能通过唯一的路径来访问这个Servlet

  • 模糊路径匹配:

以 / 开始 ,以 /* 结束 ,中间可以包含子路径

客户端可以通过一组相关的路径来访问 servlet

  • 扩展名匹配:

以"*"开始,以任意其他的字符结束,该字符就是后缀名

客户端可以通过一组相关的后缀名来访问 servlet

是从后往前匹配

  • 缺省的servlet:

配置成 / 的servlet是该应用的缺省servlet,web服务器会将所有无法识别的客户端请求都交给缺省的serlvet 类处理

具体顺序:

1.首先寻找确切的路径匹配

2.如果没有确切的路径匹配,按照模糊的路径匹配 

3.如果1,2都没有,找扩展名路径匹配

4.上述都没有,系统会交给缺省的servlet匹配

5.如果没有缺省匹配,报404错误

应用:
  • 由上面的总结我们可以知道,缺省的servlet可以匹配所有无法识别的客户端请求,而且顺序上是最后的,因此可以利用它进行自定义404的显示界面,代替如Tomcat默认的404错误界面 。如下:

    1 Servlet404.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class Servlet404 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>Insert title here</title>");
out.println("</head>");
out.println("<body>");
out.println("<center>");
out.println("<h1 style=\"color:red;font-size:100px\">404</h1>");
out.println("<pstyle=\"font-size:30px\">您访问的网页丢失了~~~~</p>");
out.println("</center>");
out.println("</body>");
out.println("</html>");
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}

2 在web.xml进行如下配置:

    <servlet>
<servlet-name>Servlet404</servlet-name>
<servlet-class>servlet.Servlet404</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet404</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

Servlet中web.xml 以及 <url-pattern>总结的更多相关文章

  1. Servlet中Web.xml的配置详解

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用 ...

  2. Servlet中Web.xml的配置详解(一)

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的 ...

  3. servlet中web.xml配置详解

    Web.xml常用元素 <web-app> 所有部署描述符文件的顶层(根)元素 <display-name></display-name>定义了WEB应用的名字 & ...

  4. Servlet中Web.xml配置详解(二)

    5.2 分配JSP初始化参数给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数.1)使用jsp-file而不是servlet-class.因此,WEB-INF/web.xml文件 ...

  5. servlet 中 web.xml

    <servlet> <servlet-mapping> 他们之间的关系可以使一对一,也可是一对多的关系. <servlet> <servlet-name> ...

  6. cxf、struts、spring中web.xml过滤url问题解决方案

    利用struts2自带的正则匹配,应该说这算是最官方的解决方案了 在struts.properties中加正则匹配 struts.action.excludePattern=/webservice/. ...

  7. servlet中web.xml配置

    常见的Servlet中url-pattren的配置 1.固定配置, 如:/hi 引入通配符 * 2.以"/XXX"开头,以"*"结尾 3.以"*&qu ...

  8. Servlet中web.xml的配置

    引言:这是一个采用原生Servlet开发的项目的一个简要配置,在这里记录一下,以便以后用到了 可以直接copy,如又侵权,请联系本博主. <?xml version="1.0" ...

  9. JavaWeb项目中web.xml有关servlet的基本配置

    JavaWeb项目中web.xml有关servlet的基本配置: 我们注意到,tomcat下的conf中也有一个web.xml文件,没错的,所有的JavaWeb项目中web.xml都继承自服务器下的w ...

随机推荐

  1. Redis 学习笔记-入门

    Redis特点: 1.速度快 2.支持丰富的数据类型:字符串.哈希列表.集合 3.操作具有原子性,所有Redis操作都是原子操作 4.多实用工具,可应用如缓存,消息队列,应用程序中任何短期数据,如we ...

  2. [oracle 使用(1)] win7/10 下Oracle10g的安装与卸载

    1.安装前提 首先要确保你的电脑之前没有安装过,或者安装过但是已经卸载干净了.至于如何查看是否卸载干净可以看看我后面的Oracle卸载步骤. 2.Oracle的安装. 2.1.首先自己在Oracle官 ...

  3. 基于webuploader.js的单图片上传封装

    HTML代码 <div class="manageImgUp">点击图片上传</div> <div class="manageImgUpLc ...

  4. PHP常用配置

    Php配置文件:php.ini(使用‘;’表示注释) Php的配置项可以在配置文件中配置,也可以在脚本中使用ini_set()函数临时配置. 语言相关配置: 1. engine:设置PHP引擎是否可用 ...

  5. lintcode 132 模式

    题目要求 给你一个 n 个整数的序列 a1,a2,...,an,一个 132 模式是对于一个子串 ai,aj,ak,满足 i < j < k 和 ai < ak < aj.设计 ...

  6. EF6中使用事务的方法

    默认情况当你执行SaveChanges()的时候(insert update delete)来操作数据库时,Entity Framework会把这个操作包装在一个事务里,当操作结束后,事务也结束了. ...

  7. 简单的一句sql

    表1 Id Name 1 张三 2 李四 3 王五 表二 Id Name1 Name2 1 1 2 2 2 1 3 2 3 4 1 3 我现在要查出结果如下: Id Name1 Name2 1 张三 ...

  8. 如何获取系统Home(Launcher)应用判断用户是否处于home界面

    要把我们的应用程序作为home(launcher应用),只需要在AndroidManifest.xml中添加: <category android:name="android.inte ...

  9. Ubuntu下通过makefile生成静态库和动态库简单实例

    本文转自http://blog.csdn.net/fengbingchun/article/details/17994489 Ubuntu环境:14.04 首先创建一个test_makefile_gc ...

  10. H - Pair: normal and paranormal URAL - 2019

    If you find yourself in Nevada at an abandoned nuclear range during Halloween time, you’ll become a  ...