【SpringMVC】web.xml和spring_mvc.xml文件配置

1.web.xml

XML 复制代码
​
<web-app>
  <display-name>Archetype Created Web Application</display-name>

<!--  处理编码的过滤器-->
<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>
  <init-param>
    <param-name>ForceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>
  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
<!--  处理请求方法的过滤器-->
<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>
<!--  前端控制器-->
  <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>

​

2.spring_mvc.xml

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.zh.springmvc.controller"></context:component-scan>

    <!-- 配置Thymeleaf视图解析器 -->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean
                            class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <!-- 视图前缀 -->
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <!-- 视图后缀 -->
                        <property name="suffix" value=".html"/>
                        <property name="templateMode" value="HTML5"/>
                        <property name="characterEncoding" value="UTF-8" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

        <!--配置默认的servlet处理静态资源
            当前工程的web.xml配置的前端控制器DispatcherServlet的url-pattren是/
            tomcat的web.xml配置的DefaultServlet的url-pattern也是/
            此时,浏览器发送的请求会优先被DispatcherServlet进行处理,但是DispatcherServlet无法处理静态资源
            若配置了   <mvc:default-servlet-handler/>和 <mvc:annotation-driven/>
            浏览器发送的请求会先被DispatcherServlet处理,无法处理再交给DefaultServlet处理
        -->
        <mvc:default-servlet-handler/>
    <!--
        视图控制器:为当前的请求直接设置视图名称实现页面跳转
        若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404
        此时必须有一个标签 <mvc:annotation-driven>
        path:设置处理的请求地址
        view-name:设置请求地址所对应的视图名称
    -->
    <!-- 开启mvc注解驱动 -->
    <!--
       处理静态资源,例如html、js、css、jpg
       若只设置该标签,则只能访问静态资源,其他请求则无法访问
       此时必须设置<mvc:annotation-driven/>解决问题
   -->
        <mvc:annotation-driven/>
        <mvc:view-controller path="/" view-name="index"></mvc:view-controller>



    <!-- 开启mvc注解驱动 -->
<!--    <mvc:annotation-driven>-->
<!--        <mvc:message-converters>-->
<!--            &lt;!&ndash; 处理响应中文内容乱码 &ndash;&gt;-->
<!--            <bean-->
<!--                    class="org.springframework.http.converter.StringHttpMessageConverter">-->
<!--                <property name="defaultCharset" value="UTF-8" />-->
<!--                <property name="supportedMediaTypes">-->
<!--                    <list>-->
<!--                        <value>text/html</value>-->
<!--                        <value>application/json</value>-->
<!--                    </list>-->
<!--                </property>-->
<!--            </bean>-->
<!--        </mvc:message-converters>-->
<!--    </mvc:annotation-driven>-->
</beans>
相关推荐
weixin_462428477 分钟前
使用 Caffeine 缓存并在业务方法上通过注解实现每3到5秒更新缓存
java·缓存
程序媛小果8 分钟前
基于java+SpringBoot+Vue的桂林旅游景点导游平台设计与实现
java·vue.js·spring boot
骑鱼过海的猫12310 分钟前
【java】java通过s3访问ceph报错
java·ceph·iphone
杨充16 分钟前
13.观察者模式设计思想
java·redis·观察者模式
Lizhihao_18 分钟前
JAVA-队列
java·开发语言
喵叔哟28 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟28 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk30 分钟前
maven环境搭建
java·maven
Daniel 大东1 小时前
idea 解决缓存损坏问题
java·缓存·intellij-idea
wind瑞1 小时前
IntelliJ IDEA插件开发-代码补全插件入门开发
java·ide·intellij-idea