RSS是一个标准的XML文件,Rss阅读器可以读取这个XML文件获得文章的信息,使用户可以通过Rss阅读器
而非浏览器阅读Blog,我们只要动态生成这个XML文件便可以了。RSSLibJ是一个专门读取和生成RSS的小
巧实用的Java库,大小仅25k,可以从
http://sourceforge.net/projects/rsslibj/
下载rsslibj-
1_0RC2.jar和它需要的EXMLjar两个文件,然后复制到web/WEB-INF/lib/下。
rsslibj-
1_0RC2.jar
下载地址:
http://sourceforge.net/project/downloading.php?group_id=71153&use_mirror=nchc&filename=rsslibj-1_0RC2.jar&27763931
下载下来之后把 扩张名.zip 改为 .jar 就行了。
- import com.rsslibj.elements.Channel;
- public class Writer {
- public static void main(String[] args)
- throws InstantiationException, ClassNotFoundException,
- IllegalAccessException {
- Channel channel= new Channel();
- channel.setDescription( "This is my sample channel." );
- channel.setLink( "http://localhost/" );
- channel.setTitle( "My Channel" );
- channel.setImage( "http://localhost/" ,
- "The Channel Image" ,
- "http://localhost/foo.jpg" );
- channel.setTextInput( "http://localhost/search" ,
- "Search The Channel Image" ,
- "The Channel Image" ,
- "s" );
- channel.addItem( "http://localhost/item1" ,
- "The First Item covers details on the first item>" ,
- "The First Item" )
- .setDcContributor( "Joseph B. Ottinger" );
- channel.addItem( "http://localhost/item2" ,
- "The Second Item covers details on the second item" ,
- "The Second Item" )
- .setDcCreator( "Jason Bell" );
- System.out.println( "The feed in RDF: " +channel.getFeed( "rss" ));
- }
- }
- import com.rsslibj.elements.Channel;
- public class Writer {
- public static void main(String[] args)
- throws InstantiationException, ClassNotFoundException,
- IllegalAccessException {
- Channel channel= new Channel();
- channel.setDescription( "This is my sample channel." );
- channel.setLink( "http://localhost/" );
- channel.setTitle( "My Channel" );
- channel.setImage( "http://localhost/" ,
- "The Channel Image" ,
- "http://localhost/foo.jpg" );
- channel.setTextInput( "http://localhost/search" ,
- "Search The Channel Image" ,
- "The Channel Image" ,
- "s" );
- channel.addItem( "http://localhost/item1" ,
- "The First Item covers details on the first item>" ,
- "The First Item" )
- .setDcContributor( "Joseph B. Ottinger" );
- channel.addItem( "http://localhost/item2" ,
- "The Second Item covers details on the second item" ,
- "The Second Item" )
- .setDcCreator( "Jason Bell" );
- System.out.println( "The feed in RDF: " +channel.getFeed( "rss" ));
- }
- }
import com.rsslibj.elements.Channel; public class Writer { public static void main(String[] args) throws InstantiationException, ClassNotFoundException, IllegalAccessException { Channel channel=new Channel(); channel.setDescription("This is my sample channel."); channel.setLink("http://localhost/"); channel.setTitle("My Channel"); channel.setImage("http://localhost/", "The Channel Image", "http://localhost/foo.jpg"); channel.setTextInput("http://localhost/search", "Search The Channel Image", "The Channel Image", "s"); channel.addItem("http://localhost/item1", "The First Item covers details on the first item>", "The First Item") .setDcContributor("Joseph B. Ottinger"); channel.addItem("http://localhost/item2", "The Second Item covers details on the second item", "The Second Item") .setDcCreator("Jason Bell"); System.out.println("The feed in RDF: "+channel.getFeed("rss")); } }
- Channel channel = new Channel();
- channel.setDescription(account.getDescription());
- baseUrl = baseUrl.substring( 0 , n);
- channel.setLink( "http://server-name/home.c?accountId=" + accountId);
- channel.setTitle(account.getTitle());
- List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1 );
- Iterator it = articles.iterator();
- while (it.hasNext()) {
- Article article = (Article)it.next();
- channel.addItem( "http://server-name/article.c?articleId=" + article.getArticleId(),
- article.getSummary(), article.getTitle()
- );
- }
- // 输出xml:
- response.setContentType( "text/xml" );
- PrintWriter pw = response.getWriter();
- pw.print(channel.getFeed( "rss" ));
- pw.close();
- Channel channel = new Channel();
- channel.setDescription(account.getDescription());
- baseUrl = baseUrl.substring( 0 , n);
- channel.setLink( "http://server-name/home.c?accountId=" + accountId);
- channel.setTitle(account.getTitle());
- List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1 );
- Iterator it = articles.iterator();
- while (it.hasNext()) {
- Article article = (Article)it.next();
- channel.addItem( "http://server-name/article.c?articleId=" + article.getArticleId(),
- article.getSummary(), article.getTitle()
- );
- }
- // 输出xml:
- response.setContentType( "text/xml" );
- PrintWriter pw = response.getWriter();
- pw.print(channel.getFeed( "rss" ));
- pw.close();
Channel channel = new Channel(); channel.setDescription(account.getDescription()); baseUrl = baseUrl.substring(0, n); channel.setLink("http://server-name/home.c?accountId=" + accountId); channel.setTitle(account.getTitle()); List articles = facade.getArticles(accountId, account.getMaxPerPage(), 1); Iterator it = articles.iterator(); while(it.hasNext()) { Article article = (Article)it.next(); channel.addItem("http://server-name/article.c?articleId=" + article.getArticleId(), article.getSummary(), article.getTitle() ); } // 输出xml: response.setContentType("text/xml"); PrintWriter pw = response.getWriter(); pw.print(channel.getFeed("rss")); pw.close();
- import com.rsslibj.elements.Channel;
- public classWriter{
- public static void main(String[] args)
- throws InstantiationException,ClassNotFoundException,IllegalAccessException {
- Channel channel = new Channel();
- channel.setDescription( "Thisismysamplechannel." );
- channel.setLink( "/" );
- channel.setTitle( "MyChannel" );
- channel.setImage( "/" , "TheChannelImage" , "/foo.jpg" );
- channel.setTextInput( "/search" , "SearchTheChannelImage" , "TheChannelImage" , "s" );
- channel.addItem( "/item1" , "TheFirstItemcoversdetailsonthefirstitem>" ,
- "TheFirstItem" ).setDcContributor( "JosephB.Ottinger" );
- channel.addItem( "/item2" , "TheSecondItemcoversdetailsontheseconditem" ,
- "TheSecondItem" ).setDcCreator( "JasonBell" );
- System.out.println( "ThefeedinRDF:" channel.getFeed( "rdf" ));
- }
- }