建站以来,试过好多方法实现 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,无需插件相关推荐

  1. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services.AddM ...

  2. C#动态生成XML并在前台用javascript读取

    考虑到网站首页使用动态页面的话会影响服务器性能,所以采用javascript来实现首页的动态更新. 原理,以发新闻稿为例,当后台发出一条新闻后,通过访问数据库动态生成一个XML文件,保存新闻的信息,当 ...

  3. asp mysql 可编辑树状,基于数据库动态生成树形目录-ASP教程,数据库相关

    一. 目录树的广泛应用 为了这段内容,在百度上搜了搜,内容一大通,相关的竟没有.搜什么搜嘛?用处不是明摆着吗?资源管理器文件夹的管理,论坛中多级论坛的管理,java中的awt正是缺乏包括树形目录这样的 ...

  4. 动态生成网站地图sitemap.xml

    在做网站地图时更新成了一个麻烦,于是想到返回一个虚拟xml,动态生成网站地图. 例如sitemap.xml ,如果每次增加新网页都要在静态文件中添加url工程量将非常大,所有想到每次请求都查询新的网站 ...

  5. 友价T5商城系统一键生成SiteMap网站地图插件【chajian_sitemap_builder.php】

    最新友价T5商城系统一键生成SiteMap网站地图插件[chajian_sitemap_builder.php] 地图效果https://www.lmtaolu.cn/sitemap.xml 友价T5 ...

  6. nuxt 如何生成sitemap.xml 动静态站点地图

    前言 sitemap.xml的作用是将我们网站的所有页面都被SEO(浏览器搜索引擎)收录,我们网站的内容更容易被用户搜到,同时增加我们的网站的知名度,排名更靠前.简言之就是用技术做网站推广,所以对于网 ...

  7. php生成sitemap.xml地图文件

    文章目录 前言 什么是Sitemap? sitemap文件遵循指南 xml格式详解 实战代码 sitemap组件代码 调用sitemap组件 仓库地址 实战截图 相关问题 Sitemap提交后,多久能 ...

  8. vue项目SEO优化以及生成sitemap.xml

    众所周知vue项目本质是单页面项目,对SEO优化十分不好,找起资料来更是麻烦.闲话不多说,分享一下我对自己项目进行的SEO方案及生成sitemap.xml. 需要的库 npm install site ...

  9. 帝国cmssitemap.php,帝国CMS如何自动生成sitemap.xml网站地图

    帝国CMS如何自动生成sitemap.xml网站地图? 步骤:登录网站的后台http://你的域名/e/admin/  进入后台栏目 =>增加自定义页面 =>选择直接页面,页面名称为:网站 ...

最新文章

  1. openGL学习笔记(1)——常用方法原型解释
  2. java中将json字符串_Java中JSON字符串与java对象的互换实例详解
  3. 轻量级web富文本框——wangEditor使用手册(2)——扩展一个“缩进”功能 demo
  4. 删除唯一性约束unique
  5. 云计算(Cloud Computing)的前世今生
  6. r语言 xmlto html,R语言XML文件
  7. python列表map函数_python中map函数怎么显示结果
  8. 补丁发布工具1.5.5
  9. Python算法——二叉树
  10. java堆栈类在哪个包里_Java堆栈Stack类的使用
  11. 【RBM】代码学习--DeepLearningToolBox
  12. 基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录
  13. oracle varchar2 转换成date,将Oracle VARCHAR2转换为DATE并排除无效数据
  14. stm8用什么软件编程?stm8开发环境搭建手把手教程!
  15. Verilog写一个对数计算模块Log2(x)
  16. 向量叉积和点积混合运算_matlab中的向量的数量积和向量积
  17. 如何将电脑文字复制到模拟器_如何将电脑中的文字复制到手机上?
  18. 还贷款 月供贷款计算
  19. 总结三种方法使用Service实现在后台播放音乐、暂停音乐、停止音乐的功能
  20. 如何安装 OneNote for Windows 10 的离线安装包

热门文章

  1. 渲染html失败,【报Bug】页面渲染失败,偶发性十次有一次
  2. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正
  3. Java项目:SSM健身房俱乐部管理系统
  4. Basmap实战一:画地图及经纬度
  5. 扫雷游戏 python
  6. SIGIR 2021 | 广告系统位置偏差的CTR模型优化方案
  7. Vue配置多页面应用
  8. 海康摄像头对接H5版本开发使用参考
  9. 2023年地方两会政府工作报告汇总(各省市23年重点工作)
  10. LINQ To XML- Part III