使用Spring MVC,配置DispatcherServlet是第一步。
DispatcherServlet是一个Servlet,所以能够配置多个DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件里的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,根据某某规则分发到目标Controller(我们写的Action)来处理。
HandlerMapping接口的实现类的不同而不同。
第一个样例
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> <servlet>
<!-- Servlet的名字是 springmvc,能够有多个DispatcherServlet,是通过名字来区分的。每个DispatcherServlet有自己的
WebApplicationContext上下文对象。同一时候保存的ServletContext中和Request对象中,关于key,以后说明。 在DispatcherServlet的初始化过程中,框架会在web应用的
WEB-INF目录下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件里定义的bean。 -->
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 启动顺序,让这个Servlet随容器一起启动 -->
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 注意不要使用/* -->
<!-- 会拦截* 结尾请求 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

另外一种演示样例


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
指明了配置文件的文件名称,不使用默认配置文件名称,而使用springMVC.xml配置文件。
当中<param-value>**.xml</param-value> 这里能够使用多种写法 

 1、不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml 

 2、<param-value>/WEB-INF/classes/springMVC.xml</param-value> 

 3、<param-value>classpath*:springMVC-mvc.xml</param-value> 

 4、多个值用逗号分隔
Servlet拦截匹配规则能够自已定义,拦截哪种URL合适? 

 当映射为@RequestMapping("/user/add")时,为例:
1、拦截*.do、*.htm, 

比如:/user/add.do
这是最传统的方式,最简单也最有用。不会导致静态文件(jpg,js,css)被拦截。
2、拦截/,比如:/user/add
能够实现如今非常流行的REST风格。非常多互联网类型的应用非常喜欢这样的风格的URL。
弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。想实现REST风格,事情就是麻烦一些。后面有解决的方法还算简单。
3、拦截/*,这是一个错误的方式,请求能够走到Action中,但转到jsp时再次被拦截,不能訪问到jsp。

最新文章

  1. 魅族MX2去除smartbar教程
  2. 【转】document.cookie详解
  3. 『TCP/IP详解——卷一:协议』读书笔记——15
  4. DBCC 命令2
  5. LYDSY模拟赛day3 平均数
  6. Spring框架学习之第7节
  7. javascript中的闭包。
  8. Redis实战之征服 Redis + Jedis + Spring (三)
  9. Qt 学习之路:线程和事件循环
  10. 【USACO 3.1.3】丑数
  11. delphi 打开文件夹并定位到一个文件(关键是/select参数)
  12. wpf绑定之格式化日期
  13. 安装PyQt5之后mayavi和VTK不能使用
  14. MyBatis:lazy loading
  15. corel
  16. [LeetCode] Insert into a Binary Search Tree 二叉搜索树中插入结点
  17. LeetCode 05 最长回文子串
  18. luogu P2144 [FJOI2007]轮状病毒
  19. debian删除i386的包
  20. oracle io 等待图解

热门文章

  1. norflash移植及uboot 保存环境变量实验
  2. Maven入门详解以及Eclisp的集成
  3. WINDOWS下简单操作SQLITE3
  4. 安装drupal练习网站遇到的问题
  5. ArtisticStyle----很好用的C/C++样式格式化工具
  6. 关于memory 和 cache
  7. android实现json数据的解析和把数据转换成json格式的字符串
  8. Android与服务器端数据交互(http协议整合struts2+android)
  9. 纯CSS打造可折叠树状菜单
  10. Java实现生产者消费者