当前位置: 首页 > 面试题库 >

使用J2EE进行会话跟踪

姜天宇
2023-03-14
问题内容

我正在尝试在我的网站上实施会话跟踪。基本上,我希望用户能够使用其用户名和密码登录我的网站,传递抛出我的网站页面(仅适用于登录用户),然后注销。目前,我正在考虑什么是实现此目标的正确架构。因此,这样做是正确的:使用一个servlet验证用户是否已登录,或者该用户是否正在使用httpSession对象进行登录(有点像此处的示例:http://www.tutorialspoint。
com / servlets / servlets-session-
tracking.htm

)。如果尝试登录,则servlet通过调用无状态会话bean(基于我的数据库来验证用户名和密码)来验证用户名和密码。

同样,每当用户每次要“旅行”到我网站上仅对已登录用户可见的另一个页面时,请求都必须转到servlet来验证用户是否已登录,然后检索新页面。

这是正确的方法吗?如果没有,我该怎么做?

非常感谢。


问题答案:

我对术语 会话跟踪 感到困惑,但是我知道您想允许用户访问受保护的资源。

您需要定义角色,身份验证提供程序和安全资源的映射。然后,您可以将其合并到web.xml中:

<security-constraint>
         <display-name>SecurityConstraint</display-name>
        <web-resource-collection>
              <web-resource-name>WRCollection</web-resource-name>
             <url-pattern>/*</url-pattern>
     </web-resource-collection>
        <auth-constraint>
              <role-name>TutorialUser</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
   </security-constraint>
  <login-config>
        <auth-method>FORM</auth-method>
     <form-login-config>
              <form-login-page>/loginform.html</form-login-page>
             <form-error-page>/loginerror.html</form-error-page>
      </form-login-config>
 </login-config>
 <security-role>
    <role-name>TutorialUser</role-name>
</security-role>

有关详细信息,请参见http://docs.oracle.com/cd/E19226-01/820-7627/bncby/index.html。这是JEE的标准方式。



 类似资料:
  • Cookie 通过 HTTP cookie 的会话跟踪是最常用的会话跟踪机制,且所有 servlet 容器都应该支持。 容器向客户端发送一个 cookie,客户端后续到服务器的请求都将返回该cookie,明确地将请求与会话关联。会话跟踪 cookie 的标准名字必须是JSESSIONID。容器也允许通过容器指定的配置自定义会话跟踪cookie的名字。 所有 servlet 容器必须提供能够配置容器

  • 问题内容: 如果我想使用Web应用程序跟踪与每个客户端的对话状态,那么哪个更好的替代方法是使用Session Bean还是HTTP Session? 使用HTTP会话: 使用会话EJB: 在执行ServletContextListener时注册为Web应用程序侦听器: 在JSP中: 同一JSP正文中的其他地方: 在我看来,它们几乎是相同的,主要区别在于UserState实例是在前者中传输的,而在后

  • 问题内容: 我知道firebug可以跟踪页面上的所有Ajax / XHR事件。但是我需要准备一个工具,该工具可以自动跟踪已经存在的网页上的按钮点击。 我的网页的HTML和JS结构如下: HTML: JS: 任何人都可以建议如何借助其他JavaScript或其他工具来跟踪此ajax调用吗?基本上,我需要获得按钮单击时的调用,在此示例中:“ / Ajax / getCall / callUser /”

  • 问题内容: 我想在学习活动中构建一个简单的Web应用程序。如果遇到首次访问者,Webapp应该要求用户输入他们的email_id,否则它会通过cookie记住用户并自动登录以执行功能。 这是我第一次创建基于用户的Web应用程序。我心中有一个蓝图,但是我无法弄清楚如何实现它。首先,我对收集用户cookie的方式感到困惑。我研究了各种教程和flask_login,但是与flask_login所实现的相

  • 我希望使用超级测试来测试API请求和响应。以下是我迄今为止所尝试的。 route.test.js setupTestUtils。js公司 } 在我的应用程序中。js,我使用passport进行身份验证。身份验证后,我使用会话。REGENATE函数可重新生成会话ID,以避免会话固定。 登录的初始post请求顺利通过。但是,后续的GET请求“loggedIn”失败。此函数在内部使用req。passpo

  • 但我们正面临着这种方法的问题。由于out应用程序主要用于车间,负载通常在短时间内增加(车间开始),每个车间参与者都与前两个实例有一个粘性会话,而新的实例几乎没有。正因为如此,表现一直很差。 第一个想法是:让我们禁用粘性会话。但这破坏了我们的网络套接字,因为它们需要粘性会话(至少这是我读到的)。另一个问题是负载减少。实例关闭,套接字连接也会丢失。 是否有一种方法可以在实例之间转移用户会话,或者让we

  • 问题内容: 我编写了一个程序来列出命令执行的所有系统调用(例如/ bin / ls)。现在我想做的就是找到所有可能传递给它的系统调用参数,环境变量,命令行参数 示例:如果我打开一个文件。系统调用sys_access会打开文件吗?但是如何获得这些价值? 想要对系统调用(例如打开,读取,写入,关闭)执行此操作。 根据我的研究,这些必须在寄存器(ebx- edx)中。如果是,则这些寄存器值表示什么?我知