ExtJs:如何获取Session变量

时间:2012-05-05 05:23:08

标签: extjs4

在我的Java Web应用程序中,当用户登录时,我将会话中的用户名和其他详细信息存储如下,

session.setAttribute("userName",username);

我正在使用ExtJs4 for UI。如何在extJs中获取会话变量

由于

3 个答案:

答案 0 :(得分:0)

您无法仅使用javascript从服务器Web容器中获取会话变量。

我做同样的事情(将userId存储为java中的会话变量)。我使用Ext.Request对java servlet执行Ajax请求以获取它(以及有关用户的其他数据,如webapp的权限设置,以启用或禁用他们无法使用的功能)。

修改

我也是第二个回答,我将身份验证信息传递回客户端的唯一原因是出于美观的原因 - 因此用户不认为他可以使用javascript中的功能,而我的服务器端身份验证会拒绝该功能。如果他要欺骗userId或权限并尝试使用该功能,服务器端的真实身份验证将阻止他。

答案 1 :(得分:0)

我可以采用第二种@Geronimo方法。在对用户进行身份验证时,您需要获取用户ID和/或权限。但是......

您不能仅依赖于存储在JS代码中某处的用户名/权限,因为它不容易被欺骗。如果您向用户提供可能因不同访问级别而异的信息,则仍需要对用户身份进行服务器端验证。

答案 2 :(得分:0)

我知道很久以前就已经提出这个问题,但是尽管有大量的观点和缺乏明确的答案,我决定提供这样的答案:

假设会话变量的注册类似于/index.php?PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f

在这种情况下,您可以通过JS对象“location”获取变量PHPSESSID并通过Ext.Object.fromQueryString()

进行转换

所以:

console.log( Ext.Object.fromQueryString( location.search ) );

将根据您的需要准备PHPSESSID变量。