java servlet 在线实时生成sitemap.xml实例
原创 cannot 发表于:2018-08-27 20:10:16
  阅读 :200   收藏   编辑

maven依赖

<dependency>
	<groupId>org.jdom</groupId>
	<artifactId>jdom</artifactId>
	<version>1.1</version>
</dependency>

SiteMapUtil.java

public class SiteMapUtil {

	private static final Logger log = Logger.getLogger(SiteMapUtil.class);


	@SuppressWarnings("unchecked")
	public static void createXml(OutputStream outputStream) {

		Element urlset = new Element("urlset");
		Document document = new Document(urlset);
		int i = 1;
		//sitemap 数据
		for (SiteMap  vo : list) {
			i++;
			Element url = new Element("url");
			//url
			Element loc = new Element("loc");
			loc.setText("http://xx.com");
			url.addContent(loc);
			// 最后更新时间
			Element lastmod = new Element("lastmod");
			lastmod.setText("2018-08-25");
			url.addContent(lastmod);
			// 更新频率
			Element changefreq = new Element("changefreq");
			changefreq.setText("daily");
			url.addContent(changefreq);
			// 其他链接的优先权比值,此值定于0.0-1.0之间
			Element priority = new Element("priority");
			priority.setText("0.8");
			url.addContent(priority);
			urlset.addContent(url);
		}
		XMLOutputter XMLOut = new XMLOutputter();
		try {
			Format f = Format.getPrettyFormat();
			f.setEncoding("UTF-8");// default=UTF-8
			XMLOut.setFormat(f);
			XMLOut.output(document, outputStream);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

Servlet.java

public class SiteMap extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		SiteMapUtil.createXml(resp.getOutputStream());
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		super.doGet(req, resp);
	}

}