Facebook应用程序在jsp中显示好友列表

时间:2010-03-02 10:04:05

标签: jsp facebook

如何创建一个facebook应用程序,在不使用脚本的情况下在jsp页面中显示好友列表。

1 个答案:

答案 0 :(得分:1)

要预处理请求,您需要创建Servlet并实施doGet()方法。在此方法中,您可以根据需要自由编写/调用Java代码,而不会使用scriptlet混乱JSP文件。利用java.net.URL方法中的java.net.URLConnection和/或doGet(),通过HTTP请求访问Facebook API,并获取数据作为HTTP响应。最后以List<Friend>的风格处理这些数据,并将请求转发到JSP页面以供显示。

开球示例:

public class FacebookServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        URL url = new URL("http://url/to/some/facebook/API/to/get/list/of/friends"); // Read Facebook API doc for the correct URL.
        InputStream input = url.openStream();
        List<Friend> friends = extractFriends(input); // Do your job here.
        request.setAttribute("friends", friends); // It's then available as ${friends} in JSP.
        request.getRequestDispatcher("/WEB-INF/friends.jsp").forward(request, response);
    }
}

将此servlet映射到web.xml上的url-pattern,例如/friends,以便您可以http://example.com/contextname/friends调用它。

然后,在/WEB-INF/friends.jsp中(将JSP放在/WEB-INF中以防止直接访问而不使用servlet),使用JSTL(只需删除jstl-1.2.jar/WEB-INF/libc:forEach标记中迭代List<Friend>并在每次迭代时打印HTML表格行(<tr>):

<table>
    <c:forEach items="${friends}" var="friend">
        <tr>
            <td>${friend.name}</td>
            <td>${friend.age}</td>
            <td>${friend.email}</td>
            <td>etc..</td>
        </tr>
    </c:forEach>
</table>