【问题标题】:Can I access data stored in session (by a servlet previously) from a page created using GWT?我可以从使用 GWT 创建的页面访问存储在会话中的数据(之前通过 servlet)吗?
【发布时间】:2012-01-08 13:03:20
【问题描述】:

我有一个场景,我正在尝试使用标准 servlet 将用户登录到我的数据库...现在我想做的是,登录后,应该打开 GWT 创建的网页,它应该显示登录用户的电子邮件 ID。

我想我会将成功登录的用户重定向到一个 servlet,该 servlet 会将用户的电子邮件 ID 和其他一些参数存储为会话变量。在此之后,在启动时使用 GWT 创建的页面将从会话变量中读取用户的电子邮件 ID..

我对这种方法有几个问题......

第一,它安全吗?您可以建议一些更好的方法来完成用户身份验证吗?

二,如何从使用 GWT 创建的网页中访问会话变量?应该在这个函数中访问这个变量--

public void onModuleLoad()

或者是从网页的其他地方访问的变量?

我正在使用 Google App Engine for Java/GWT 和 Google Identity Toolkit (GIT) 进行身份验证。

【问题讨论】:

  • 我认为你想做的很好。只需发出 RPC 请求即可从您的 onModuleLoad 检索会话变量。

标签: java gwt


【解决方案1】:

onModuleLoad() 方法是用 gwt(本质上是 javascript)编写的客户端应用程序的起点

所以你问我如何用 Javascript 从服务器读取值。

这可以在您的 GWT 情况下通过多种方式完成,您可以:

  • 进行 GWT RPC 调用并让服务器返回所需的数据
  • 将数据嵌入动态页面并使用 GWT Dictionary 或 Javascript Overlays 读取数据

【讨论】:

  • 他问的是会话变量而不是 Javascript
  • 他提到他想访问客户端代码 onModuleLoad 中的会话变量。所以谈论 Javascript 是合适的
  • 他还可以从 onModuleLoad 进行服务器调用,然后也使用 java servlet ;)
【解决方案2】:

Session 变量与 GWT 无关,它们与 JAVA 相关。如果要使用会话变量,则必须在 GWT 项目的 Server 包中使用它们。

设置会话变量:

session.setAttribute("MySessionVariable", 3);

获取会话变量

int param = (Integer) session.getAttribute("MySessionVariable");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2016-03-24
    • 2014-02-17
    • 2015-01-27
    • 1970-01-01
    • 2011-05-15
    • 2013-08-30
    相关资源
    最近更新 更多