Servlet中web.xml 以及 <url-pattern>总结
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>总结的更多相关文章
- Servlet中Web.xml的配置详解
1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用 ...
- Servlet中Web.xml的配置详解(一)
1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的 ...
- servlet中web.xml配置详解
Web.xml常用元素 <web-app> 所有部署描述符文件的顶层(根)元素 <display-name></display-name>定义了WEB应用的名字 & ...
- Servlet中Web.xml配置详解(二)
5.2 分配JSP初始化参数给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数.1)使用jsp-file而不是servlet-class.因此,WEB-INF/web.xml文件 ...
- servlet 中 web.xml
<servlet> <servlet-mapping> 他们之间的关系可以使一对一,也可是一对多的关系. <servlet> <servlet-name> ...
- cxf、struts、spring中web.xml过滤url问题解决方案
利用struts2自带的正则匹配,应该说这算是最官方的解决方案了 在struts.properties中加正则匹配 struts.action.excludePattern=/webservice/. ...
- servlet中web.xml配置
常见的Servlet中url-pattren的配置 1.固定配置, 如:/hi 引入通配符 * 2.以"/XXX"开头,以"*"结尾 3.以"*&qu ...
- Servlet中web.xml的配置
引言:这是一个采用原生Servlet开发的项目的一个简要配置,在这里记录一下,以便以后用到了 可以直接copy,如又侵权,请联系本博主. <?xml version="1.0" ...
- JavaWeb项目中web.xml有关servlet的基本配置
JavaWeb项目中web.xml有关servlet的基本配置: 我们注意到,tomcat下的conf中也有一个web.xml文件,没错的,所有的JavaWeb项目中web.xml都继承自服务器下的w ...
随机推荐
- (转)Java开发中的23种设计模式详解
原文出自:http://blog.csdn.net/zhangerqing 一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型 ...
- ES6中的Promise用法
Node的产生,大大推动了Javascript这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发. 当然,这并不代表迸发成了全栈.全栈的技能很集中,绝不仅仅是前端会写一些HTML和一些交 ...
- java7大排序算法
1.冒泡排序 package lizicong; import java.util.Scanner; public class BubbleSort { /* * 属于交换排序:稳定 * 排序原理:相 ...
- Strange fuction
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- How Many Answers Are Wrong
How Many Answers Are Wrong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- 2017上海QCon之旅总结(下)
本来这个公众号的交流消息中间件相关的技术的.十月去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下. 三天的内容还挺多的,之前已经有上篇和中篇 ...
- AngularJS学习篇(六)
AngularJS 控制器 AngularJS 应用程序被控制器控制. ng-controller 指令定义了应用程序控制器. 控制器是 JavaScript 对象,由标准的 JavaScript 对 ...
- Phonegap开发相关问题
环境搭建:参考http://www.phonegapcn.com/start/zh/1.3/#android 调试: 1.在线远程调试 http://debug.phonegap.com/ 通过USB ...
- 动态引入javascript
注意最后 "</scr"+"ipt>" 这是必要的,因为浏览器只要看到</script>它就会认为代码到此结束,从而引起错误
- jQuery选择器(层级选择器)第二节
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...