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

1.web.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

8个配置

<?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">

<!--    1.扫描组件-->
    <context:component-scan base-package="com.zh.springmvc"></context:component-scan>

    <!--2. 配置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>

        <!--3.配置默认的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/>
    
    <!-- 4.开启mvc注解驱动 -->
    <!--
       处理静态资源,例如html、js、css、jpg
       若只设置该标签,则只能访问静态资源,其他请求则无法访问
       此时必须设置<mvc:annotation-driven/>解决问题
   -->
        <mvc:annotation-driven/>
    <!--
        5.视图控制器:为当前的请求直接设置视图名称实现页面跳转
        若设置视图控制器,则只有视图控制器所设置的请求会被处理,其他的请求将全部404
        此时必须有一个标签 <mvc:annotation-driven>
        path:设置处理的请求地址
        view-name:设置请求地址所对应的视图名称
    -->
        <mvc:view-controller path="/" view-name="index"></mvc:view-controller>

<!--    6.配置文件上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

    </bean>
<!--&lt;!&ndash;    7.配置拦截器&ndash;&gt;-->
<!--&lt;!&ndash;    <bean id="firstInterceptor" class="com.zh.springmvc.interceptor.FirstInterceptor"></bean>&ndash;&gt;-->
<!--    <mvc:interceptors>-->
<!--&lt;!&ndash;        bean和ref标签所配置的拦截器默认对DispatcherServlet处理的所有请求进行拦截&ndash;&gt;-->
<!--&lt;!&ndash;        <bean class="com.zh.springmvc.interceptor.FirstInterceptor"></bean>&ndash;&gt;-->
<!--&lt;!&ndash;        <ref bean="firstInterceptor" ></ref>&ndash;&gt;-->
<!--&lt;!&ndash;        下面这个更精确&ndash;&gt;-->
<!--        <mvc:interceptor>-->
<!--&lt;!&ndash;            /*  :表示上下文目录的一层-->
<!--                /** :表示当前目录下的所有的路径&ndash;&gt;-->
<!--&lt;!&ndash;            配置需要拦截的请求的请求路径&ndash;&gt;-->
<!--            <mvc:mapping path="/**"/>-->
<!--&lt;!&ndash;            配置需要拦截的请求的请求路径&ndash;&gt;-->
<!--            <mvc:exclude-mapping path="/abc" />-->
<!--&lt;!&ndash;            配置拦截器&ndash;&gt;-->
<!--            <ref bean="firstInterceptor"></ref>-->
<!--        </mvc:interceptor>-->
<!--    </mvc:interceptors>-->

<!--&lt;!&ndash;    &ndash;&gt;-->
<!--    8.异常解析器-->
<!--    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">-->
<!--        <property name="exceptionMappings">-->
<!--            <props>-->
<!--&lt;!&ndash;                key设置要处理的异常,value设置出现该异常时要跳转的页面所对应的逻辑视图&ndash;&gt;-->
<!--                <prop key="java.lang.ArithmeticException">error</prop>-->
<!--            </props>-->
<!--        </property>-->
<!--&lt;!&ndash;        设置请求域中的异常信息的属性名&ndash;&gt;-->
<!--        <property name="exceptionAttribute" value="ex"></property>-->
<!--    </bean>-->




</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

simpleHan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值