zoukankan      html  css  js  c++  java
  • springMVC框架在项目中的搭建

        第一步:构建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配置文件中加入此标签配置即可

  • 相关阅读:
    leetcode 13. Roman to Integer
    python 判断是否为有效域名
    leetcode 169. Majority Element
    leetcode 733. Flood Fill
    最大信息系数——检测变量之间非线性相关性
    leetcode 453. Minimum Moves to Equal Array Elements
    leetcode 492. Construct the Rectangle
    leetcode 598. Range Addition II
    leetcode 349. Intersection of Two Arrays
    leetcode 171. Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/wskb/p/10939468.html
Copyright © 2011-2022 走看看