Java 谷歌应用引擎会话现在受支持了吗?
我以为谷歌应用引擎不支持会话(我上次检查是几个月前)。现在我再次搜索它,看到了:Java 谷歌应用引擎会话现在受支持了吗?,java,google-app-engine,Java,Google App Engine,我以为谷歌应用引擎不支持会话(我上次检查是几个月前)。现在我再次搜索它,看到了: http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions 表示支持: javax.servlet.http.HttpSession 这是否意味着我们现在有servlet会话支持?如果有的话,有人举过这样的例子吗?我想创建自己的用户类,并支持用户登录和会话管理(我知道AppEngine已经为google用户
http://code.google.com/appengine/docs/java/config/appconfig.html#Enabling_Sessions
表示支持:
javax.servlet.http.HttpSession
这是否意味着我们现在有servlet会话支持?如果有的话,有人举过这样的例子吗?我想创建自己的用户类,并支持用户登录和会话管理(我知道AppEngine已经为google用户提供了支持,但希望我自己的用户满足各种需求)
谢谢
------------更新-------------------------------------------
我把这个放在我的问候服务中,只是想尝试一下:
public void login(String username, String password) {
HttpSession session = getThreadLocalRequest().getSession(false);
session.setAttribute("username", username);
}
然后,在刷新浏览器中的页面后,我尝试查看是否可以在登录jsp页面中发现该会话:
<body>
<%
String username = null;
HttpSession mysession = request.getSession(false);
if (mysession.getAttribute("username") != null) {
username = (String)mysession.getAttribute("username");
}
%>
但jsp页面似乎无法解决用户已登录这一事实。如果可能的话,我希望能够在用户刷新时确定用户是否登录到登录页
谢谢
------------更新2-------------------------------------------
它起作用了
谢谢会话支持是GAEJ上的一项开箱即用功能 您可以编写一个登录servlet,用于在会话中存储用户:
HttpSession session = request.getSession();
if(ProvidedUserParametersAreOK){
session.setAttribute("user", "name");
然后,在dispatcher servlet中编写如下控件:
HttpSession session = request.getSession(false);
if (session.getAttribute("user") != null){
User user=(User)session.getAttribute("user");
//user logged in
如果您使用像GWT这样的客户机,或者使用纯HTML的更丰富的客户机,那么您可以使服务器端成为无状态的,从而摆脱笨拙的会话机制?您的意思是用户登录状态仅存储在客户端上?就像在GWT中一样,只有一个“页面”,URL之间没有切换-所以javascript在用户交互的整个生命周期中存储登录的用户对象?谢谢