トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

JSPの応用:RSS

JAVAの応用:RSSリーダ

  • ROMEを用いることで、RSSフィードを扱うアプリケーションを容易に容易に作成することが可能である。

 ROMEを用いた非常に簡単なRSSリーダ

  • 以下のJSPはRome0.9に基づいている。
    • 具体的に必要なjarはrome-0.9.jar、rome-fetcher-0.9.jarである。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="urls" class="java.util.ArrayList" scope="application"/>
<c:if test="${!empty param.url}">
    <% ((ArrayList)pageContext.findAttribute("urls")).add(request.getParameter("url")); %>
</c:if>
<%@page import="com.sun.syndication.feed.synd.SyndFeed"%>
<%@page import="com.sun.syndication.feed.synd.SyndEntry"%>
<%@page import="com.sun.syndication.fetcher.FeedFetcher"%>
<%@page import="com.sun.syndication.fetcher.impl.HttpURLFeedFetcher"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.net.URL"%>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>簡易RSSリーダ</title>
</head>
<body>
    <form action="${pageContext.request.requestURI}" method="post">
        追加するURL:<input type="text" name="url">
        <input type="submit" name="" value="追加">
    </form>
    <c:forEach var="target" items="urls">
<%
        FeedFetcher fetcher = new HttpURLFeedFetcher();
        for (String url:(ArrayList<String>)pageContext.findAttribute("urls")) {
            try {
                SyndFeed syndFeed = fetcher.retrieveFeed(new URL(url));
                out.println("<h4><a href=\""+syndFeed.getUri()+"\">"+syndFeed.getTitle() +"</a></h4>(最終更新日:"+syndFeed.getPublishedDate()+")<br>");
                for (SyndEntry syndEntry:(List<SyndEntry>) syndFeed.getEntries()) {
                    out.println(syndEntry.getPublishedDate()+" - "+
                            "<a href=\""+syndEntry.getLink()+"\">"+
                            syndEntry.getTitle()+"</a><br />");
                    out.println("<blockquote>"+syndEntry.getDescription().getValue()+"</blockquote>");
                }
            } catch (Exception e){
                
            }
        }
%>
    </c:forEach>
</body>
</html>

最終更新時間:2009年07月14日 22時49分48秒