web.xml中添加Servlet配置信息

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

访问路径

web.xml

  • 确切路径匹配:

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

/ 代表该web应用的根目录

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

  • 模糊路径匹配:

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

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

  • 扩展名匹配:

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

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

是从后往前匹配

  • 缺省的servlet:

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

  1. 具体顺序:
  2. 1.首先寻找确切的路径匹配
  3. 2.如果没有确切的路径匹配,按照模糊的路径匹配
  4. 3.如果1,2都没有,找扩展名路径匹配
  5. 4.上述都没有,系统会交给缺省的servlet匹配
  6. 5.如果没有缺省匹配,报404错误

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

    1 Servlet404.java
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.http.HttpServlet;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. public class Servlet404 extends HttpServlet {
  8. private static final long serialVersionUID = 1L;
  9. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  10. response.setContentType("text/html;charset=utf-8");
  11. PrintWriter out = response.getWriter();
  12. out.println("<!DOCTYPE html>");
  13. out.println("<html>");
  14. out.println("<head>");
  15. out.println("<meta charset=\"UTF-8\">");
  16. out.println("<title>Insert title here</title>");
  17. out.println("</head>");
  18. out.println("<body>");
  19. out.println("<center>");
  20. out.println("<h1 style=\"color:red;font-size:100px\">404</h1>");
  21. out.println("<pstyle=\"font-size:30px\">您访问的网页丢失了~~~~</p>");
  22. out.println("</center>");
  23. out.println("</body>");
  24. out.println("</html>");
  25. }
  26. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27. doGet(request, response);
  28. }
  29. }

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

  1. <servlet>
  2. <servlet-name>Servlet404</servlet-name>
  3. <servlet-class>servlet.Servlet404</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>Servlet404</servlet-name>
  7. <url-pattern>/</url-pattern>
  8. </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. 备忘:有MTU值设置不当导致的部分网站无法访问问题

    如题,有时候突然weibo.com,webQQ等网站网络连接超时,怎么找也没得原因,今天管理电信的光猫,发现设置的MTU的1400,突然想起之前电脑和路由器上设置的MTU是1500,感觉可能是这个问题 ...

  2. 一张表搞懂各种 Docker 监控方案 - 每天5分钟玩转 Docker 容器技术(86)

    前面我们已经介绍了ps/top/stats.Sysdig.Weave Scope.cAdvisor 和 Prometheus 多种容器监控工具和方案,是时候做一个比较了.下面将从五个方面来对比它们之间 ...

  3. ASP.NET MVC 分页

    概述:数据比较多的时候,常使用分页.这里使用bootpag.js和PagedList这两个插件实现. 准备JS的引用 1.这个是bootstrap 中pagination的库 2..NET后台ToPa ...

  4. poj 2566 Bound Found

    Bound Found Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4384   Accepted: 1377   Spe ...

  5. js 作用域,作用域链,闭包

    什么是作用域? 作用域是一种规则,在代码编译阶段就确定了,规定了变量与函数的可被访问的范围.全局变量拥有全局作用域,局部变量则拥有局部作用域. js是一种没有块级作用域的语言(包括if.for等语句的 ...

  6. ⑦bootstrap按钮 图片 辅助使用基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. C#之可选参数和命名参数

    设计方法的参数是,可以将部分参数和全部参数分配默认值,然后调用这些方法的时候可以选择不提供部分实参,使用参数定义的默认值,另外,还可以在调用方法的时候通过指定参数名称来传递实参. 例如: public ...

  8. 《剑指offer》面试题的Python实现

    <剑指Offer>是很多程序员面试前要看的书,但里面的算法都是基于C++实现的,最近用了三周左右时间,用Python完成了里面几乎所有的算法题,由于时间以及个人水平均有限,或许会有部分问题 ...

  9. javaMybatis映射属性,高级映射

    映射文件的sql属性: id:标识符(一般都是dao层方法名) resultType:sql返回类型 resultMap:放回的映射类型 parameterType:参数类型 useGenerated ...

  10. RestSharp使用总结

    RestSharp是一个轻量的,不依赖任何第三方的组件或者类库的Http的组件.RestSharp具有以下的优点:   1.支持.NET 3.5+,Silverlight 4, Windows Pho ...