我是gwt的新手,正在使用gwt创建一个登录页面,我需要会话管理方面的帮助。
这里已经给出了所有答案,说明了如何在服务器端管理会话,
我需要像使用JSP文件一样,在客户端使用会话(浏览器的会话):session.setAttribute("UserName", username);
谁能提供一个清晰完整的示例来说明如何实现这一点(请记住我是gwt的新手)。
我看了这个教程:
http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
这对我没有帮助,因为它没有解释如何使用浏览器的会话。
谢谢。
最佳答案
“我需要在客户端(浏览器的会话)上完全像使用JSP文件一样使用会话:session.setAttribute(“UserName”,username);“
我想纠正你的误解。以下不是浏览器端代码,也不是浏览器端会话。它是服务器端代码,用于管理服务器端会话信息。
session.setAttribute("UserName", username);
您可以将此服务器端会话信息传输到JSP中的客户端,例如:
<script>
var username = "<%=username%>";
</script>
要么,
<script>
var username = '<%=session.getAttribute("UserName")%>';
</script>
作为一个经验丰富的JSP程序员,您将意识到HTML / Javascript(由JSP生成)与JSP本身之间的分离。由于您在使用JSP时遇到的局限性,所以您选择了GWT。
JSP生成的客户端和GWT生成的客户端之间的相似之处
。
JSP生成的客户端和GWT生成的客户端之间的区别
。
GWT中客户端与服务器之间的通信方式
由于该技术的异步性,所有客户端-服务器通信都需要GWT客户端提供回调。
查看http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/http/client/RequestBuilder.html(或在您的GWT javadoc的个人副本中查看)。
...您将可以在其中定义set和get标头。您的服务器端必须与客户端同意使用什么头名称。
您无需依靠常规的JEE会话来“维护会话”。您可以构建自己的 token 框架。或者使用现有的OAuth或OpenId。
在各种情况下,您都不会在服务器的响应中设置会话cookie。
在某些情况下,编写GWT应用程序时可能需要完全放弃使用常规JEE会话。
您应该考虑使用REST或REST-RPC,因为我正在尝试以蜗牛的速度记录它:http://h2g2java.blessedgeek.com/2011/11/gwt-with-jax-rs-aka-rpcrest-part-0.html。
REST不需要您维护会话cookie。在我看来,GWT与REST-RPC一起使用效果最佳。
您可以浏览以前的帖子,那里有有关GWT的其他形式的客户端-服务器通讯的说明。
关于java - GWT平台登录+ session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065977/