繁体   English   中英

JavaEE-Web应用程序和导航逻辑

[英]JavaEE - Web application, and logic for navigation

我一直在用Spring MVC测试Web应用程序,目前正在开发帐户的编辑器页面。 此JSP页面能够编辑一个或多个帐户,这些帐户可用于不同的目的。 例如,普通用户可以在此页面上编辑帐户数据。 另一方面,管理员用户可以在此页面上编辑多个帐户。 从逻辑上(对我而言),向管理员用户发布多个帐户的工作方式如下:

  1. 用户选择一个帐户列表。
  2. 列表到达控制器。
  3. 控制器存储帐户列表。
  4. 控制器将用户定向到编辑页面。
  5. 用户填写编辑表格。
  6. 该表格被发送到控制器。
  7. 控制器检索先前保存的帐户列表。
  8. 编辑表单数据将反映在记录列表中。
  9. 该列表已从存储中删除。

当用户不执行步骤5并决定执行其他操作时,就会出现我的问题。 如果不从存储中删除列表,服务器将遭受内存泄漏 检测用户的退出非常重要,这将导致系统自动删除列表。

我选择将要编辑的帐户列表保存在服务器端,以防止它保存在用户端 ,因为用户很可能会篡改数据

我可能还使用JavaScript来检测用户何时离开页面,但是他/她可能会关闭Javascript,这会导致相同的问题。 因此, 这是不切实际的解决方案

我还没有开发它的实现,所以我现在只是在计划。 谁能帮我这个? 难道我做错了什么? 我的逻辑是否有错误,还是我要离开使用范围?

OBS:我正在将Tomcat 8.0和Spring MVC 4.1.1与Java JDK 8一起使用。

这就是会话管理的全部目的。 您的网络服务器会为您完成此任务。 当您使用Java EE或任何其他会话技术时,服务器应该处理超时,清理会话对象。 这是根据用户的空闲时间而发生的。 服务器如何知道用户空闲? 因为对于浏览器发送的每个请求,其会话ID均以Cookie的形式发送。

通常,超时阈值是可变的时间段(通常在web.xml中定义)。 可能需要根据可用的网络/内存资源和预期的同时用户来调整此值。

实际上,会话+ cookie是处理HTTP无状态本质的唯一灵活和安全的方法。

这有多种变体,即对话或视图作用域,其中用户可能在每个选项卡上都有一个会话。 但是原理是一样的:将内容放入会话中,然后再通过会话ID(客户端的cookie)获取它们。

最后,您不应该依赖浏览器来完成服务器工作。 这将是不可靠的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM