當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC配置静态资源加载, 中文乱码处理,注解驱动
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC配置静态资源加载, 中文乱码处理,注解驱动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
常規配置(Controller加載控制)
- SpringMVC的處理器對應的bean必須按照規范格式開發,未避免加入無效的bean可通過bean加載過濾器進行包含設定或排除設定,表現層bean標注通常設定為@Controller
- 業務層與數據層bean加載由Spring控制,表現層bean加載由SpringMVC單獨控制
- 表現層處理bean使用注解@Controller聲明
- bean加載控制使用包含行性濾器
- 過濾器類型為通過注解進行過濾
- 過濾的注解名稱為Controller
xml方式
<context:component-scan base-package="com.itzhuzhu"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>靜態資源加載
核心控制器攔截的是所有請求,需要對靜態資源請求進行放行,通過配置放行資源實現
<!--放行指定類型靜態資源配置方式,但是文件多了,這種方式很麻煩--> <mvc:resources mapping="/img/**" location="/img/"/> <mvc:resources mapping="/js/**" location="/js/"/> <mvc:resources mapping="/css/**" location="/css/"/><!--SpringMVC提供的簡化格式,可以放行所有普通資源調用--> <mvc:default-servlet-handler/>中文亂碼處理
SpringMVC提供專用的中文字符過濾器,用于處理亂碼問題
配置在 web.xml 里面
<!--亂碼處理過濾器,與Servlet中使用的完全相同,差異之處在于處理器的類由Spring提供--> <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>注解驅動
使用注解形式轉化SpringMVC核心配置文件為配置類
@Configuration // 聲明是一個配置類 @ComponentScan(value = "com.itzhuzhu",includeFilters =@ComponentScan.Filter(type=FilterType.ANNOTATION,classes = {Controller.class}) // 代替Controller加載控制)// 要想代替靜態資源加載需要實現WebMvcConfigurer,然后重寫方法。下面兩種方式代替的是靜態資源加載的,選一個用就可以了 public class SpringMVCConfiguration implements WebMvcConfigurer{// 注解配置放行指定資源格式@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/img/**").addResourceLocations("/img/");registry.addResourceHandler("/js/**").addResourceLocations("/js/");registry.addResourceHandler("/css/**").addResourceLocations("/css/");}//注解配置通用放行資源的格式@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();;} }基于servlet3.0規范,自定義Servlet容器初始化配置類,加載SpringMVC核心配置類(代替web.xml文件的)
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {//創建Servlet容器時,使用注解的方式加載SPRINGMVC配置類中的信息,并加載成WEB專用的 //ApplicationContext對象//該對象放入了ServletContext范圍,后期在整個WEB容器中可以隨時獲取調用@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringMVCConfiguration.class);return ctx;}//注解配置映射地址方式,服務于SpringMVC的核心控制器DispatcherServlet@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}@Overrideprotected WebApplicationContext createRootApplicationContext() {return null;}//亂碼處理作為過濾器,在servlet容器啟動時進行配置@Overridepublic void onStartup(ServletContext servletContext) throws ServletException {super.onStartup(servletContext);CharacterEncodingFilter cef = new CharacterEncodingFilter();cef.setEncoding("UTF-8");FilterRegistration.Dynamic registration = servletContext.addFilter("characterEncodingFilter", cef);// 添加映射地址registration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST,DispatcherType.FORWARD,DispatcherType.INCLUDE),false,"/*");} }總結
以上是生活随笔為你收集整理的SpringMVC配置静态资源加载, 中文乱码处理,注解驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring整合Mybatis和JUni
- 下一篇: java jar包 配置文件_java