zoukankan      html  css  js  c++  java
  • 05-配置web.xml

    配置项目的部署描述符web.xml

    Tomcat启动时,会扫描项目的web.xml文件

    里面一般写有三大部件:

    • Listener
    • Filter
    • Servlet
    1. Listener一般为:ContextLoaderListener,这是Spring框架自带的监听器,作用是加载spring的配置文件

    一般为:

    <!-- 加载配置文件,是下面的ContextLoaderListener所必需的参数 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring-persist-*.xml</param-value>
    </context-param>
    <!-- 配置spring核心监听器,默认会以 /WEB-INF/applicationContext.xml作为配置文件 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    1. Filter常用的为CharacterEncodingFilter,作用是字符集过滤,防止中文乱码

      <!-- 配置过滤器 -->
      <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>forceRequestEncoding</param-name>
              <param-value>true</param-value>
          </init-param>
          <!-- 强制响应设置字符集 -->
          <init-param>
              <param-name>forceResponseEncoding</param-name>
              <param-value>true</param-value>
          </init-param>
      </filter>
      <filter-mapping>
          <filter-name>characterEncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
      

      这里配置三个init-param,不是随便配置的。

      当我们点进CharacterEncodingFilter的源码中,可以看到以下内容:

      public class CharacterEncodingFilter extends OncePerRequestFilter {
          private String encoding;
          private boolean forceRequestEncoding;
          private boolean forceResponseEncoding;
          ......
          ......
      

      可以看到这个CharacterEncodingFilter有三个属性,所以我们需要设置init-param

    2. Servlet一般为DispatcherServlet,请求分发器,作用是拦截请求。

          <!-- 配置servlet -->
          <servlet>
              <servlet-name>dispatcherServlet</servlet-name>
              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
              <!-- Servlet默认生命周期中,创建对象是在第一次接收到请求时 -->
              <!-- 而DispatcherServlet创建对象后有大量的初始化操作,不适合在第一次请求时来做 -->
              <!-- 设置load-on-startup是为了让DispatcherServlet在web应用启动时创建对象、初始化 -->
              <load-on-startup>1</load-on-startup>
          </servlet>
          <servlet-mapping>
              <servlet-name>dispatcherServlet</servlet-name>
              <!-- DispatcherServlet 映射的 URL 地址 -->
              <!-- 大白话:什么样的访问地址会交给 SpringMVC 来处理 -->
              <!-- 配置方式一:符合 RESTFUL 风格使用“/” -->
              <!-- <url-pattern>/</url-pattern> -->
              <!-- 配置方式二:请求扩展名 -->
              <url-pattern>*.html</url-pattern>
              <url-pattern>*.json</url-pattern>
          </servlet-mapping>
      
    金麟岂是池中物,一遇风云便化龙!
  • 相关阅读:
    Big Number
    Who will be punished
    find your present (2)
    Being a Good Boy in Spring Festival
    day4__列表的初识(列表的创建、增删改查、元组、range)
    day3、基础___(基础数字类型、字符串索引与切片、str常用操作方法)
    day2、基础__(while循环、格式化输出、运算符、初始编码)
    day1: 基础 __ (变量、常量、注释、数据类型、input、 if)
    十八、FTP配置
    十七、交换机配置管理IP和telnet登陆设置
  • 原文地址:https://www.cnblogs.com/ABKing/p/12493584.html
Copyright © 2011-2022 走看看