先去下载 renren 的 java api SDK 吧~~
http://wiki.dev.renren.com/wiki/Java_SDK_jar%E5%8C%85%E4%B8%8B%E8%BD%BD
把Media:renren-api-java-sdk.jar 和 Media:json-simple-1.1.jar 都下下来~~·放到 /webinf/lib 里面~~然后加到build path 里面(同 servlet-api.jar )
这里注意~~~不要把两个jar包放到 webinf 的 lib下~~~ 直接放到tomcat的lib下 然后导入工程。否则我会出现 ClassNotFoundException
按照指导,要建立一个listener
package com.shangliang.webcanvas;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import com.renren.api.client.RenrenApiConfig;
import com.shangliang.webcanvas.config.AppConfig;
/**
* Application Lifecycle Listener implementation class ApiInitListener
*
*/
@WebListener
public class ApiInitListener implements ServletContextListener {
/**
* Default constructor.
*/
public ApiInitListener() {
// TODO Auto-generated constructor stub
}
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
RenrenApiConfig.renrenApiKey = AppConfig.API_KEY;
RenrenApiConfig.renrenApiSecret = AppConfig.APP_SECRET;
}
/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
}
然后修改 HomeServlet.java 加入获取用户信息的代码
package com.shangliang.webcanvas;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.renren.api.client.RenrenApiClient;
import com.shangliang.webcanvas.config.AppConfig;
/**
* Servlet implementation class HomeServlet
*/
@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HomeServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String sessionKey = request.getParameter("xn_sig_session_key");
String renrenUserId = request.getParameter("xn_sig_user");
if (sessionKey != null && renrenUserId != null) {
RenrenApiClient apiClient = new RenrenApiClient(sessionKey);
JSONArray userInfo = apiClient.getUserService().getInfo(renrenUserId, "name,headurl");
if (userInfo != null && userInfo.size() > 0) {
JSONObject currentUser = (JSONObject) userInfo.get(0);
if (currentUser != null) {
String userName = (String) currentUser.get("name");
String userHead = (String) currentUser.get("headurl");
request.setAttribute("userName", userName);
request.setAttribute("userHead", userHead);
}
}
}
request.setAttribute("appId", AppConfig.APP_ID);
RequestDispatcher welcomeDispatcher = request.getRequestDispatcher("/views/home.jsp");
welcomeDispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
最后修改home.jsp 显示个人信息~~
<%@ page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Renren Webcanvas Demo -- Home</title>
</head>
<body>
<img src="${requestScope.userHead}"/>
<p>你好,${requestScope.userName}</p>
</body>
</html>
结果如下~~