sitemap java_Java动态生成SiteMap.xml,无需插件
建站以来,试过好多方法实现 sitemap.xml ,从最早的手动更新,到后来每次更新自动写入本地io文件。一方面感觉太零零散散,另外实时的程度不高,再加上好多ZZ引擎,sitemap的要求还能和别人不一样。。。总之最终决定写个动态的,通过springboot的GET接口返回字符串实现,xml结构不复杂,就自己拼。
共计3部分:
其中sitemap类是封装sitemap的实体类;提供了一个简单的Utils,超级简单可以忽略。还有一个在Controller中使用Demo.
SiteMap类:注意有参、全参构造方法,已经重写了toString为了符号xml要求。
import com.ruoyi.common.utils.DateUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @date 2020/7/8 9:45
*/
public class SiteMap {
private SimpleDateFormat sdf=new SimpleDateFormat("yyyy_MM_dd");
/**
* url https://www.xxx.com
*/
private String loc;
/**
* 最后更新时间 yyyy-MM-dd
*/
private Date lastmod;
/**
* 更新速度 always hourly daily weekly monthly yearly never
*/
private String changefreq;
/**
* 权重 1.0 0.9 0.8
*/
private String priority;
@Override
/** 重写 toString 适应xml格式 */
public String toString() {
StringBuffer sb= new StringBuffer();
sb.append("");
sb.append("" +loc+ "");
sb.append("" + sdf.format(lastmod) + "");
sb.append("" +changefreq+ "");
sb.append("" +priority+ "");
sb.append("");
return sb.toString();
}
public SiteMap() {
}
public SiteMap(String loc) {
this.loc=loc;
this.lastmod= new Date();
this.changefreq= SiteMapUtils.CHANGEFREQ_ALWAYS;
this.priority= "1.0";
}
public SiteMap(String loc, Date lastmod, String changefreq, String priority) {
this.loc=loc;
this.lastmod=lastmod;
this.changefreq=changefreq;
this.priority=priority;
}
}
最后在Controller中这样用:
@Controller
public class SiteMapController {
@Autowired
private IArticleService articleService;
public static String BEGIN_DOC = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"";
static String END_DOC = "";
static String CHANGEFREQ_DAILY = "daily";
public static String CHANGEFREQ_ALWAYS = "always";
@GetMapping(value = "/sitemap.xml", produces = {"application/xml"})
@ResponseBody
public String getSiteMap() {
StringBuffer sb = new StringBuffer();
sb.append(BEGIN_DOC);//拼接开始部分
sb.append(new SiteMap("http://wwww.xxxx.com"));//拼接网站首页地址
//下面是根据实际情况写,目的是生成整站的Url
List articles = articleService.selectArticleListRandom10();
for (Article a : articles) {
sb.append(new SiteMap("http://wwww.xxxx.xxx/article/" + a.getId() + ".html", a.getUpdateTime(), CHANGEFREQ_DAILY, "0.9"));
}
sb.append(END_DOC);//拼接结尾
return sb.toString();
}
}
sitemap java_Java动态生成SiteMap.xml,无需插件相关推荐
- .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)
.net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services.AddM ...
- C#动态生成XML并在前台用javascript读取
考虑到网站首页使用动态页面的话会影响服务器性能,所以采用javascript来实现首页的动态更新. 原理,以发新闻稿为例,当后台发出一条新闻后,通过访问数据库动态生成一个XML文件,保存新闻的信息,当 ...
- asp mysql 可编辑树状,基于数据库动态生成树形目录-ASP教程,数据库相关
一. 目录树的广泛应用 为了这段内容,在百度上搜了搜,内容一大通,相关的竟没有.搜什么搜嘛?用处不是明摆着吗?资源管理器文件夹的管理,论坛中多级论坛的管理,java中的awt正是缺乏包括树形目录这样的 ...
- 动态生成网站地图sitemap.xml
在做网站地图时更新成了一个麻烦,于是想到返回一个虚拟xml,动态生成网站地图. 例如sitemap.xml ,如果每次增加新网页都要在静态文件中添加url工程量将非常大,所有想到每次请求都查询新的网站 ...
- 友价T5商城系统一键生成SiteMap网站地图插件【chajian_sitemap_builder.php】
最新友价T5商城系统一键生成SiteMap网站地图插件[chajian_sitemap_builder.php] 地图效果https://www.lmtaolu.cn/sitemap.xml 友价T5 ...
- nuxt 如何生成sitemap.xml 动静态站点地图
前言 sitemap.xml的作用是将我们网站的所有页面都被SEO(浏览器搜索引擎)收录,我们网站的内容更容易被用户搜到,同时增加我们的网站的知名度,排名更靠前.简言之就是用技术做网站推广,所以对于网 ...
- php生成sitemap.xml地图文件
文章目录 前言 什么是Sitemap? sitemap文件遵循指南 xml格式详解 实战代码 sitemap组件代码 调用sitemap组件 仓库地址 实战截图 相关问题 Sitemap提交后,多久能 ...
- vue项目SEO优化以及生成sitemap.xml
众所周知vue项目本质是单页面项目,对SEO优化十分不好,找起资料来更是麻烦.闲话不多说,分享一下我对自己项目进行的SEO方案及生成sitemap.xml. 需要的库 npm install site ...
- 帝国cmssitemap.php,帝国CMS如何自动生成sitemap.xml网站地图
帝国CMS如何自动生成sitemap.xml网站地图? 步骤:登录网站的后台http://你的域名/e/admin/ 进入后台栏目 =>增加自定义页面 =>选择直接页面,页面名称为:网站 ...
最新文章
- openGL学习笔记(1)——常用方法原型解释
- java中将json字符串_Java中JSON字符串与java对象的互换实例详解
- 轻量级web富文本框——wangEditor使用手册(2)——扩展一个“缩进”功能 demo
- 删除唯一性约束unique
- 云计算(Cloud Computing)的前世今生
- r语言 xmlto html,R语言XML文件
- python列表map函数_python中map函数怎么显示结果
- 补丁发布工具1.5.5
- Python算法——二叉树
- java堆栈类在哪个包里_Java堆栈Stack类的使用
- 【RBM】代码学习--DeepLearningToolBox
- 基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录
- oracle varchar2 转换成date,将Oracle VARCHAR2转换为DATE并排除无效数据
- stm8用什么软件编程?stm8开发环境搭建手把手教程!
- Verilog写一个对数计算模块Log2(x)
- 向量叉积和点积混合运算_matlab中的向量的数量积和向量积
- 如何将电脑文字复制到模拟器_如何将电脑中的文字复制到手机上?
- 还贷款 月供贷款计算
- 总结三种方法使用Service实现在后台播放音乐、暂停音乐、停止音乐的功能
- 如何安装 OneNote for Windows 10 的离线安装包