day06-2-springmvc自定义配置文件和编码问题

2021/10/7 6:10:57

本文主要是介绍day06-2-springmvc自定义配置文件和编码问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 2019年6月18日 - day06 - 上午 - 开始
  • 21 - springMVC指定配置文件位置和名称、控制servlet的加载时间
    • 路径
    • 修改配置文件位置和名称
    • init-param标签
  • 22 - spring中的编码过滤器
    • 查看CharacterEncodingFilter源码
    • 在web.xml当中配置CharacterEncodingFilter
    • web.xml

2019年6月18日 - day06 - 上午 - 开始

image-20211006234655787

21 - springMVC指定配置文件位置和名称、控制servlet的加载时间

路径

在web项目当中分为两种路径,第一个路径叫做类路径,第二个路径叫做WebContent。

image-20211007021838936

修改配置文件位置和名称

image-20211007022453447

init-param标签

这个标签就是为了设置servlet或者filter对象当中已经存在的属性的值。

所以param-name标签里面的内容,就是对象的属性,是不能够改变的。

注意contextConfigLocation,就是DispatcherServlet当中的属性。

我们可以去源码当中寻找。

image-20211007025008146

image-20211007025106525

image-20211007025137718

如图所示,contextConfigLoation就是servlet的属性。

22 - spring中的编码过滤器

乱码问题的解释:

image-20211007023756948

springmvc提供了CharacterEncodingFilter的过滤器。

查看CharacterEncodingFilter源码

image-20211007024102177

在web.xml当中配置CharacterEncodingFilter

CharacterEncodingFilter必须配置在web.xml的第一个。

因为缓存的关系,如果先有了其他过滤器,就不会再加载CharacterEncodingFilter了。

image-20211007025344840

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMVC02</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  	<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>
  	
  	<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>
		
		<!-- 设置springmvc配置文件的位置和名称 -->
		<init-param>
			<!-- contextConfigLocation名字不能改,对应DispatcherServlet的属性 -->
			<param-name>contextConfigLocation</param-name> 
			<!-- classpath这个单词也不能写错,这表示类路径 -->
			<param-value>classpath:springMVC.xml</param-value>
		</init-param>
		<!-- 
			设置servlet的加载时间,默认在第一次请求访问时加载。
			若设置此标签,会将servlet加载时间,提前到项目启动时。
			此标签中可以写整数(正整数、负整数、0)
			但是写0、负整数、不设置是一样的效果。
			只有设置正整数,才会将servlet加载时间,提前到项目启动时。
			值越小,优先级越高。
			多个servlet的load-on-startup不能相同。 
		-->
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
  
</web-app>


这篇关于day06-2-springmvc自定义配置文件和编码问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程