消息转换器设置

消息转换器设置

如果设置text/html;charset=utf-8, 那会不会

将css等也解析成html类型,导致css加载失败?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2021-05-25 19:01:12

同学你好,1、前端页面发送请求的时候,会引用到css,对应引用的css就会发送请求。

    ​2、当前直接配置解析文本为text/html;charset=utf-8时,可能会出现css失效问题,但是在当前配置中还配置了<mvc:default-servlet-handler />过滤静态资源。

     配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理(也可以理解为放行了这个请求),如果不是静态资源的请求,才会交由DispatcherServlet继续处理。

http://img1.sycdn.imooc.com//climg/60acd8f009774ebd08570199.jpg

祝学习愉快!

  • 提问者 rock221 #1
    将css引用发送请求后,后设置静态资源排除,就不会出现css失效的情况了吧,所以说Spring mvc中设置对静态资源不拦截,即使不写hander这个设置,也没事吧,因为web中的配置/只拦截了非动态的请求。
    2021-05-25 19:19:20
  • 提问者 rock221 #2
    dispachersevlet那里配置/代表只拦截非静态的请求。
    2021-05-25 19:20:37
  • 提问者 rock221 #3

    总结下, 程序启动初始化的时候会对ioc创建,并配置读取,然后发送第一次请求的时候,过滤器拦截, 然后由springmvc的过滤器处理请求,然后dispatcherServlet转发到对应的方法处理。然后响应的时候,根据xml配置converter转换器处理。而此时已把cs/js排除,所以不会失效。

    2021-05-25 21:11:35
rock221 提问者 2021-05-25 18:30:05

追加提供, 以前在其他作业中,设置过滤器的encoding设置的时候,设置:

response.setContentType("text/html;charset=utf-8");

会导致css失效, 我有个疑问,因为前端发送请求的时候,会引用到css,引用css会发送请求吗?如果会的话,就拦截了, 设置了html的模式,响应给浏览器,就失效了。  问题是,会不会呢? 我一直以为只有url发送的请求才会呢。 

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师