Spring MVC配置

1、web.xml的配置

<servlet>
   <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        // 为了找到Spring MVC的配置文件
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:conf/spring-mvc.xml</param-value>
    </init-param>
    	// servlet容器启动时就启动
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    // 这里会有一个坑,关于/和/*的区别
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!--防止乱码使用到的过滤器-->
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!--
    如果使用到 Spring MVC的RESTful功能的话,就要配置该filter,因为很多时候我们的请求只能是Get或者是Post
    而没有DELETE,PUT的请求,所以当我们加上这个过滤器之后,可以通过post请求,并且带上一个属性为_method,值为“DELETE”或者是“PUT”的参数
    在注解@RequestMapping()加上method=RequestMethod.DELETE或者PUT,就可以实现RESTful风格的请求
-->
<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

/*/ 其实区别在于对静态资源的处理,例如请求一个jsp页面的话:
/* :会从HandlerMapping中找,找不到就报错,错误:No mapping found for HTTP request with URI
/ :使用/不会对jsp处理,直接访问到jsp
对于静态资源的处理后面还会配置到一个标签<mvc:default-servlet-handler/>,后面再讲。
所以,为了不要报错,以后url-pattern都是写 / 就对了。

2、spring-mvc.xml的配置

<!--
简单理解:处理url,查找相应的Handler,即使用@Controller和@RequestMapping前做准备,
实际上是注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,
配置一些messageconverter
-->
<mvc:annotation-driven/>
<!--IoC容器的扫描路径-->
<context:component-scan base-package="com.controller">
<!--这一步就是解决Spring MVC子容器与父容器直接的扫描重复问题,Spring MVC只负责COntroller层,父容器则负责Service和Dao层-->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--这就是关于静态资源的处理,对于一些js,css的请求,DispatcherServlet处理不了但是不应该报错,
就要给回Tomcat的Servlet处理-->
<mvc:default-servlet-handler/>

<!--视图解析器,对return的字符串进行解析找到相应的页面-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
    <!--视图名称的前缀,即return的字符的前面路径-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--视图名称的后缀,即return的字符的后缀-->
    <property name="suffix" value=".jsp"/>
</bean>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值