我在ADF
应用程序中使用Google oath2.0。用户提供凭据后,它会转到Servlet
(回调servlet
),在那里我获取用户信息并将其保存在会话中。保存会话后,我会将响应重定向到我正在使用page1.jsf
从会话范围显示用户信息的另一页(#{sessionScope.user_info}
)。
问题甚至是在将值保存到CallbackServlet.java中的会话范围之后,也无法获得这些值。它什么也不返回。
这是我的代码
@WebServlet(name = "CallbackServlet", urlPatterns = { "/callbackservlet" })
public class CallbackServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
String state = request.getParameter("state");
String code = request.getParameter("code");
MyGoogleHelperClass ghc = new MyGoogleHelperClass();
String json = ghc.getUserInfoJson(code);
System.out.println(state+"-"+json);
ADFContext.getCurrent().getSessionScope().put("user_info", json);
response.sendRedirect("http://127.0.0.1:7101/GoogleAdf-ViewController-context-root/faces/page1.jsf");
}
}
在page1.jsf
<h:outputText value="#{sessionScope.user_info}" id="ot1"/>
我在这里做错了什么? servlet
是我的adf
应用程序的一部分。