常规配置(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配置静态资源加载, 中文乱码处理,注解驱动相关推荐

  1. Spring MVC中静态资源加载

    问题:MVC 静态资源加载,包括 js.css.image加载不出来 由于web.xml中dispatcherServlet中 url-pattern 使用 / 拦截所有访问,而导致静态资源也交给了D ...

  2. 【Bug档案01】Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h

    [Bug档案01]Spring Boot的控制器+thymeleaf模板 -使用中出现静态资源加载路径不当的问题 -解决时间:3h 参考文章: (1)[Bug档案01]Spring Boot的控制器+ ...

  3. 美团金融扫码付静态资源加载优化实践

    原文链接:https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651747208&idx=1&sn=b9fc54300 ...

  4. Flask-模板-静态资源加载-jsonify

    文章目录 1.模板 1.1 render_template 1.2 模板标签 1.3 模板继承 1.4 模板包含 1.5 模板过滤器 1.6 宏 2. 静态资源加载 3. jsonify() 1.模板 ...

  5. webpack-dev-server实现静态资源加载和proxy代理

    文章目录 webpack专辑 webpack Dev Server 配置选项 1.静态资源访问 2.Proxy 代理 小结 webpack专辑 如何使用webpack实现模块化打包? 如何通过Load ...

  6. SpringBoot项目中静态资源加载失败,那可能是自定义配置类继承了WebMvcConfigurationSupport这个类

    1.跟着视频课学SpringBoot,自己的一个html登录页面就是在浏览器中渲染不出来效果,很郁闷.我的项目结构如下: 2.想要打开login.html页面,该页面用到了静态资源中的css文件及sv ...

  7. html src加载外部静态资源,前端性能优化2:静态资源加载与优化

    css和js的装载与执行-HTML 页面加载渲染的过程 一个网站在浏览器端是如何进行渲染的呢? 流程示意图.png HTML渲染过程的一些特点 顺序执行.并发加载(单个域名的并发数量是有限的,所以多个 ...

  8. Vue踩坑之二级路由下静态资源加载失败

    在使用vue开发过程中意外发现 , 当我的路由加到二级时我的页面背景突然没了? 这是怎么回事呢? 让我们先来复现一下问题吧 起初我的登陆页面的路由是这样子的 我的背景图片是在外部的一个css中写着的 ...

  9. 前端静态资源加载顺序

    一.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控. 正常的网页加载流程是这样的. 浏览器一边下载HTML网页,一 ...

最新文章

  1. python处理excel表格实例-通过实例学习Python Excel操作
  2. ASP.NET Core 新核心对象WebHost(一)
  3. Netty入门(七)使用SSL/TLS加密Netty程序
  4. Windbg 分析 Dump File 简单演示(转)
  5. 渗透操作系统——【靶场实战训练营】快来看看有没有你需要的
  6. 人类史上最大最好的希望事件
  7. python信号量怎么用_Python3.X 线程中信号量的使用方法示例
  8. 7/6-7/12 上海之行
  9. 基于php+Mysql新闻管理系统 开题报告
  10. springboot使用junit5/junit4
  11. yum install gcc 下载失败有可能是这个原因?
  12. 基于Java的进销存管理系统 附:源码课件
  13. iOS_直播类app_HTTP Live Streaming
  14. HTTP协议 (五) ---代理
  15. 从单核CPU系统角度看并发问题
  16. [20171122]rman filesystemio_options.txt
  17. Precision、Recall、F1-score、Micro-F1、Macro-F1、Recall@K
  18. 程序员白piao服务器。大派送
  19. 判断一张图片是否是空白图
  20. 【题解】 [SCOI2012]滑雪

热门文章

  1. Git使用手册--超级详细,自己都看哭了
  2. java从键盘输入一个数,并将其倒序输出
  3. 一般最小二乘法 c语言,最小二乘法C语言的实现(7页)-原创力文档
  4. MySQL 过滤重复数据
  5. 按规律插入一个数字到数组中
  6. kmeans python自定义初始聚类中心_机器学习-KMeans聚类 K值以及初始类簇中心点的选取...
  7. linux 内核系统优化,Linux系统内核优化(一)
  8. C语言中数组越界访问造成死循环现象
  9. opencv glob 内存溢出异常
  10. opencv5-图像混合