第一步:构建Web项目
    第二步:导入所需jar包
    第三步:配置前端控制器DispatcherServlet
    第四步:编写Controller控制器(也称为Handler处理器)
    第五步:配置处理器映射器(可省去,有默认配置)
    第六步:配置处理器适配器(可省去,有默认配置)
    第七步:配置视图解析器(可省去,有默认配置,但是前缀和后缀都为"",一般要写)
    第八步:配置控制器/处理器

配置前端控制器DispatcherServlet以及需要读取的xml配置文件:

SpringMVC的前端控制器就是一个Servlet对象,继承自HttpServlet,所以需要在web.xml文件中配置。

例如:
          <servlet>
            <servlet-name>SpringMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
          </servlet>
          <servlet-mapping>
            <servlet-name>SpringMVC</servlet-name>
            <url-pattern>*.action</url-pattern>
          </servlet-mapping>

如上配置,框架会自动去当前应用的WEB-INF目录下查找名字为SpringMVC-servlet.xml文件(默认前缀和<servlet-name>标签中的值一致)。
        也可以自己指定配置文件的名字和位置:
            <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:spring-web-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>SpringMVC</servlet-name>
            <url-pattern>*.action</url-pattern>
        </servlet-mapping>

注意:
            配置文件在WEB-INF下:
            <param-value>/WEB-INF/spring-web-mvc.xml</param-value>
            配置文件在classpath下:
            <param-value>classpath:spring-web-mvc.xml</param-value>

配置前端控制器中的映射路径:

1)拦截所有请求 /
        <url-pattern>/</url-pattern>,配置中使用的是/,而不是/*,如果使用/*,controller返回的时候,如返回的jsp也会被再次拦截,会导致404

2)自定义拦截请求的后缀名

如*.do,*.html,... 如:/user/add.do

弊端:
            Controller的后缀只能固定成某一个

3)静态资源的访问

如果DispatcherServlet拦截"*.do"这样的有后缀的URL,不存在这样的问题,

解决方式一:利用Tomcat的defaultServlet来处理静态文件

<servlet-mapping>
            <servlet-name>default</servlet-name>
            <url-pattern>*.css</url-pattern>
            <url-pattern>*.js</url-pattern>
            <url-pattern>*.png</url-pattern>
        </servlet-mapping>

要写在DispatcherServlet的前面(和tomcat版本有关),让defaultServlet先拦截请求,    这样请求就不会进入Spring了

解决方式二: 使用<mvc:resources>标签

<mvc:resources mapping="/js/**" location="/js/"/>

<mvc:resources mapping="/css/**" location="/css/"/>

mapping: 映射
        两个*,表示映射指定路径下所有的URL,包括子路径
        location:本地资源路径

解决方式三: 使用<mvc:default-servlet-handler/>标签
        在spring配置文件中加入此标签配置即可

springMVC框架在项目中的搭建的更多相关文章

  1. SpringMVC框架入门配置 IDEA下搭建Maven项目(zz)

    SpringMVC框架入门配置 IDEA下搭建Maven项目 这个不错哦 http://www.cnblogs.com/qixiaoyizhan/p/5819392.html

  2. WPF Step By Step 系列-Prism框架在项目中使用

    WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...

  3. 教你搭建SpringMVC框架( 更新中、附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  4. SpringMVC框架入门配置 IDEA下搭建Maven项目

    初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...

  5. [转]SpringMVC框架入门配置 IDEA下搭建Maven项目

    初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习 ...

  6. Spring,Mybatis,Springmvc框架整合项目(第一部分)

    一.说在前面的话 本篇博文实现一个注册登录小项目,使用spring,mybatis,springmvc框架进行整合,我们创建的是一个maven工程,主要是方便jar包版本的管理.项目使用eclispe ...

  7. springMVC框架在js中使用window.location.href请求url时IE不兼容问题解决

    是使用springMVC框架时,有时候需要在js中使用window.location.href来请求url,比如下面的路径: window.location.href = 'forecast/down ...

  8. ORM Nhibernate框架在项目中的配置

    在项目中使用 Nhibernet 时,一定要将 配置文件 .xml  编译方式设置为 嵌入式资源,否则在运行项目时就会出现错误. 以下是hibernate.cfg.xml 的配置,在配置中使用的是 M ...

  9. Prism框架在项目中使用

    本文大纲 1.Prism框架下载和说明 2.Prism项目预览及简单介绍. 3.Prism框架如何在项目中使用. Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM ...

随机推荐

  1. Tomcat解压版-环境配置

    [问题]Tomcat解压版在本地后,双击双击startup.bat,闪退 [解决办法]    1.在已解压的tomcat的bin文件夹下找到startup.bat,右击->编辑.在文件头加入下面 ...

  2. python中乱码怎么由来与解决方法

    前言曾几何时 Python 中文乱码的问题困扰了我很多很多年,每次出现中文乱码都要去网上搜索答案,虽然解决了当时遇到的问题但下次出现乱码的时候又会懵逼,究其原因还是知其然不知其所以然.现在有的小伙伴为 ...

  3. android button setMinHeight setMinWidth 无效解决办法

    setMinWidth(0);setMinHeight(0);setMinimumWidth(0);//必须同时设置这个setMinimumHeight(0);//必须同时设置这个 两个方法同时设置才 ...

  4. C++学习网站总结

    http://club.topsage.com/thread-361504-1-1.html Visual C++ (VC) / MFC 电子书下载: Visual C++ 2008 入门经典 (中文 ...

  5. Auto.js的初次使用——在VSCode中使用

    最近双十一大家都在集猫币,盖楼,但是每天刷任务太浪费时间了.被推荐了一个脚本可以自动刷任务,很是好奇.于是想要了解一下Auto.js 一.vscode启动Auto.js 1.vscode里安装auto ...

  6. windows好用的cmd命令

    1.如何查看本机ip局域网ip 在cmd中输入ipconfig 2.如何在不重启浏览器的情况下让刚修改的hosts生效, 因为服务器和浏览器都有DNS缓存,在cmd中执行ipconfig /flush ...

  7. C++-POJ1016-Numbers That Count

    无语,15步产生16个数,植树原理啊! 大水题,居然wa了好几次,唉,自己的问题. 略略略,就要封装成结构体,略略略. #include <set> #include <map> ...

  8. MySQL关于GTID的一些功能限制

    参考文献:https://www.cnblogs.com/luckcs/articles/6295992.html 更新非事务引擎: Case重现: master:对一个innodb表做一个多sql更 ...

  9. AcWing 338. 计数问题

    #include <iostream> #include <algorithm> #include <vector> using namespace std; ; ...

  10. 2.17NOIP模拟赛(by hzwer) T1 小奇挖矿

    [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值 w)的飞船,按既定 路线依次飞过喵星系的 n 个星球. [问题描述] 星球分为 2 类:资源型和维修型. 1. 资源型:含矿物质量 ...