SpringMVC大坑一枚:ContentNegotiatingViewResolver可能不利于SEO
广大站长都有关注自己网站被搜索引擎收录的习惯,最近用百度、360等搜索引擎,查看了自己网站的一些情况,使用命令“site:fansunion.cn”。
我发现了一些异常信息,不止一次:
“http://fansunion.cn/service
{"page":{"totalCount":5,"totalPage":1,"pageNo":1,"pageSize":10,"orderBy":null,"order":null,"params":{},"rows":[{"content":" 拜小雷为师,...
fansunion.cn/service 2014-11-13 - 百度快照 - 评价 - 翻译此页”
“http://fansunion.cn/code
{"page":{"totalCount":7,"totalPage":1,"pageNo":1,"pageSize":10,"orderBy":"id","order":"desc","params":{},"rows":[{"content":" SSH框架...
fansunion.cn/code 2014-11-16 - ”
“http://fansunion.cn/code
{ page :{ totalCount :8, totalPage :1, pageNo :1, pageSize :20, orderBy : id , order : desc , params :{}, rows :[{ content : , summary : 在线演示:小游戏-会飞的猪-FlappyPig , updat...
fansunion.cn/code 2014-11-09”
很明显,这是JSON格式的数据。
但是,我是用Freemarker直接渲染的页面,不可能是我主动响应JSON格式的数据。
于是,很快联想到,项目中有SpringMVC如下配置:
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="defaultContentType" value="application/json" />
<property name="mediaTypes">
<map>
<entry key="html" value="text/html" />
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
</bean>
<bean id="marshallingView"
class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean id="xStreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="autodetectAnnotations" value="true" />
</bean>
</property>
<property name="contentType" value="application/xml" />
</bean>
</list>
</property>
</bean>
有了上述配置,一个请求,a.html动态渲染, a.json返回json格式的数据。
公司项目中这么配置的,我觉得也挺有好处的,JSON格式的请求,只要在请求后面以.json格式就好了,后端不需要再手动写代码了。
比如下面的代码:
private void list(HttpServletResponse response,
List<Map<String, Object>> list) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("list", list);
super.returnJsonObject(response, jsonObject);
}
总之一句话,公司项目boss采用这种配置,最大的目的就是,很方便地响应.html页面和.json数据,甚至是2者同时支持。
但是,实际情况证实,这种情况很可能 不利于百度-360等搜索引擎的优化。
最后,我决定全面废弃: ContentNegotiatingViewResolver。
如果需要JSON格式的数据,手动使用FastJSON响应。
实践出真知呀~
自己动手写网站,还是很锻炼人的~问题一大堆~
原文首发:http://fansunion.cn/article/detail/558.html
SpringMVC大坑一枚:ContentNegotiatingViewResolver可能不利于SEO的更多相关文章
- 选择一个利于SEO的空间
大家好.今天蜗牛将给大家分享怎么选择一个利于SEO的站点空间. 一.什么是站点空间? 站点空间,是用来存你的站点的HTML,.图片.文件等的一个远程硬盘空间(就像你的电脑里面的空间一回事儿).依据不同 ...
- 到底二级域名和一级域名哪个更利于SEO
到底二级域名和一级域名哪个更利于SEO呢?本文是从百度官方转载详细的介绍:二级域名和一级域名的区别,请各位认真阅读. 二级域名和子域名的区别可以通过以下3点来解读: 一,二级域名的特点 搜索引擎往往将 ...
- 什么类型网站不利于seo优化
http://www.wocaoseo.com/thread-3-1-1.html 什么样的网站不利于优化?如何让别人找到你的产品或者服务?很多人以为只要做个网站放在网上就行,但是后来发现,网 ...
- URL传递中文参数,大坑一枚,Windows与Linux效果竟然不一致(两种解决方法)
下午,计划2个小时搞定,个人官网第6次升级,就可以干点轻松的事了,结果,下午多搞了2个小时,晚上又搞了2个小时,才搞定. 最后一个世界难题是,URL传递中文参数. 问题大致是这么出现的:我为" ...
- Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO
我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...
- 为什么前后端分离不利于seo
搜索引擎的基础爬虫的原理就是抓取你的url,然后获取你的html源代码并解析. 而你的页面通常用了vue等js的数据绑定机制来展示页面数据,爬虫获取到的html是你的模型页面而不是最终数据的渲染页面, ...
- 在 Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO
我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...
- java框架之SpringBoot(5)-SpringMVC的自动配置
本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...
- SpringMVC中用@ParamVariable传递的参数包含斜杠(/)时,匹配不了报404错误的解决方案
今天做网站[标签]筛选功能时,出现了这么个奇葩的问题. 我是直接通过<a>标签中href来跳转的,url中包含汉字 <a href="/tags/标签A"> ...
随机推荐
- [Javascirpt AST] Babel Plugin -- create new CallExpression
The code we want to trasform: 2 ** 3; a ** b; a **b * c; a ** b ** c; (a+1) ** (b+1); transform to: ...
- BZOJ 1007 HNOI 2008 水平可见直线 计算几何+栈
题目大意:给出一些笛卡尔系中的一些直线,问从(0,+∞)向下看时能看到哪些直线. 思路:半平面交可做,可是显然用不上. 类似于求凸包的思想,维护一个栈. 先将全部直线依照k值排序.然后挨个压进去,遇到 ...
- OR1200指令Cache使用举例
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 12.4 ICache中的特殊寄存器 通过ICache的接口可知其具有特殊寄存器,而且是不可读的特殊寄存器,OR1200处理器中IC ...
- HTML基础第六讲---表格
转自:https://i.cnblogs.com/posts?categoryid=1121494 上一讲,讲了关于<控制表格及其表项的对齐方式>,在这里我要讲讲表格及其属性 ,然后大家在 ...
- 【Codeforces Round #432 (Div. 1) A】 Five Dimensional Points
[链接]点击打开链接 [题意] 给你n个5维的点. 然后让你以其中的某一个点作为起点a. 另选两个点b,c. 组成向量a->b,a->c 如果所有的a->b和a->c的夹角都是 ...
- 高可用架构篇--MyCat在MySQL主从复制基础上实现读写分离
实战操作可参考:http://www.roncoo.com/course/view/3117ffd4c74b4a51a998f9276740dcfb 一.环境 操作系统:CentOS-6.6-x86_ ...
- 11. Spring Boot JPA 连接数据库
转自:https://blog.csdn.net/catoop/article/details/50508397
- js的AJAX请求有关知识总结
什么是AJAX?AJAX作用是什么? async javascript and xml(异步的javascript和xml) 作用:实现局部刷新 async:我们真实项目中一般使用AJAX从服务器端获 ...
- 模拟登录QQ推断是否须要验证码
老生常谈的问题了,在模拟登录之前,推断是否须要验证码: https://ssl.ptlogin2.qq.com/check? uin=QQ号码&appid=1003903&js_ver ...
- MongoDbHelper 帮助类(下)
对MongoDbHelper帮助类进行了一下整合,但是代码中一个方法需要将string类型转化为BsonValue类型一直出错.所以欢迎留言指正 using System; using System. ...