现在的位置: 首页 > 综合 > 正文

使用Rome实现网站RSS发布的简单步骤

2018年03月29日 ⁄ 综合 ⁄ 共 2285字 ⁄ 字号 评论关闭
使用Rome实现网站RSS发布的简单步骤  
文章指数:0  CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="package.inc.jsp"%>
<%@page import="org.jdom.*,com.sun.syndication.feed.synd.*,com.sun.syndication.io.SyndFeedOutput"%>
<%
  
int maxLength = 500;
  out.clearBuffer();
  SyndFeed feed 
= new SyndFeedImpl();
  feed.setFeedType(
"rss_2.0");
  feed.setTitle(
"Java世纪网,Enjoy Java, Enjoy Everyday");
  feed.setLink(
"http://www.java2000.net");
  feed.setDescription(
"Java世纪网的最新的50个帖子列表");
  feed.setEncoding(
"UTF-8");  
 
/* 
  Document doc = feed.outputJDom(feed.createWireFeed());
  //create the XSL processing instruction
  Map xsl = new HashMap();
  xsl.put("href", "
http://feeds.feedburner.com/~d/styles/rss2full.xsl");
  xsl.put("type", "text/xsl");
  xsl.put("media", "screen");
  ProcessingInstruction pXsl = new ProcessingInstruction("xml-stylesheet", xsl);
  doc.addContent(0, pXsl);
  //create the CSS processing instruction
  Map css = new HashMap();
  css.put("href", "
http://feeds.feedburner.com/~d/styles/itemcontent.css");
  css.put("type", "text/css");
  css.put("media", "screen");
  ProcessingInstruction pCss = new ProcessingInstruction("xml-stylesheet", css);  
  doc.addContent(1, pCss);  
  
*/

  
  List
<SyndEntry> entries = new ArrayList<SyndEntry>();
  SyndEntry entry;
  SyndContent description;
  PostService ps 
= (PostService) Factory.getBean("PostService");
  Collection
<Post> pList = ps.findAll(-1050);
  
for (Post p : pList) {
    entry 
= new SyndEntryImpl();
    entry.setTitle(p.getUser().getUsername()
+"("+p.getUser().getNickName()+")"+(p.getIdParent()==0?"发表了":"回复了")+":"+p.getSubject());
    entry.setLink(
"http://www.java2000.net/viewthread.jsp?tid=" + p.getId() + "");
    entry.setPublishedDate(p.getDatetime());
    description 
= new SyndContentImpl();
    description.setType(
"text/html");
    
if(p.getContent().length()>maxLength){
      description.setValue(p.getContent().substring(
0,maxLength)+"<br/><br/>【内容太长,只显示了前"+maxLength+"字,更多内容请看全文】");
    }
else{
      description.setValue(p.getContent());
    }

    entry.setDescription(description);
    entries.add(entry);
  }

  feed.setEntries(entries);
  
try {
    SyndFeedOutput output 
= new SyndFeedOutput();
    out.print(output.outputString(feed));
  }
 catch (Exception ex) {
    ex.printStackTrace();
  }

 

【上篇】
【下篇】

抱歉!评论已关闭.