Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java web应用程序中使用会话的主要用例_Java_Session_Spring Mvc - Fatal编程技术网

Java web应用程序中使用会话的主要用例

Java web应用程序中使用会话的主要用例,java,session,spring-mvc,Java,Session,Spring Mvc,我一直试图避免使用会话。我使用了SpringSecurity或其他让用户登录应用程序的方法,我认为这是使用会话的主要用例 但是其他的用例是什么呢?你能列出那些最重要的吗?为什么我能够在不使用会话的情况下开发甚至复杂的应用程序 是不是因为我使用的是SpringMVC,除了登录之外,实际上不需要使用会话 编辑:伙计们,这个问题问的是用例。。。大多数答案解释了课程的目的。若我们总结一些用例,我们可以肯定地说,何时使用数据库或会话来维护会话状态。。。 你不记得有什么具体的场景需要讨论吗?过去几年:) 例

我一直试图避免使用会话。我使用了SpringSecurity或其他让用户登录应用程序的方法,我认为这是使用会话的主要用例

但是其他的用例是什么呢?你能列出那些最重要的吗?为什么我能够在不使用会话的情况下开发甚至复杂的应用程序

是不是因为我使用的是SpringMVC,除了登录之外,实际上不需要使用会话

编辑:伙计们,这个问题问的是用例。。。大多数答案解释了课程的目的。若我们总结一些用例,我们可以肯定地说,何时使用数据库或会话来维护会话状态。。。 你不记得有什么具体的场景需要讨论吗?过去几年:)


例如,某些会话状态可能在某个点/事件之后变得持久。在本例中,我从一开始就使用数据库

我认为你可以做任何你想做的事情,而不需要在会话上存储任何东西

我通常使用会话来避免在客户端和服务器之间传递状态(以id为例)当我不想向客户端发送敏感信息时(即使是以加密形式),因为这可能是一个安全问题

避免使用会话的其他方法有:

  • 在数据库中存储某些状态,例如购物车,而不是在会话中,即使购物车在一定时间后被丢弃
  • 将状态存储在cookie中,例如用于用户自定义
使用会话非常有用的一个用例是会话,尽管框架通常在幕后管理会话,并将会话存储在会话中

编辑 会话(在我看来)类似于向导,在不同的页面中完成几个表单,最后执行操作。e、 g.在结账过程中,用户在不同页面中输入其姓名、发货地址和信用卡详细信息,但您希望在最后提交订单,而不在数据库中存储任何中间状态


所谓敏感信息,我的意思是,想象一下在前面的示例中,一旦用户发送了他的信用卡详细信息,您就不应该以任何格式(甚至加密)将该信息返回给用户。我知道这有点偏执,但这就是安全:)。

我认为你可以做任何你想做的事情,而不需要在会话上存储任何东西

我通常使用会话来避免在客户端和服务器之间传递状态(以id为例)当我不想向客户端发送敏感信息时(即使是以加密形式),因为这可能是一个安全问题

避免使用会话的其他方法有:

  • 在数据库中存储某些状态,例如购物车,而不是在会话中,即使购物车在一定时间后被丢弃
  • 将状态存储在cookie中,例如用于用户自定义
使用会话非常有用的一个用例是会话,尽管框架通常在幕后管理会话,并将会话存储在会话中

编辑 会话(在我看来)类似于向导,在不同的页面中完成几个表单,最后执行操作。e、 g.在结账过程中,用户在不同页面中输入其姓名、发货地址和信用卡详细信息,但您希望在最后提交订单,而不在数据库中存储任何中间状态


所谓敏感信息,我的意思是,想象一下在前面的示例中,一旦用户发送了他的信用卡详细信息,您就不应该以任何格式(甚至加密)将该信息返回给用户。我知道这有点偏执,但这就是安全:)。

会话是跨多个请求(例如多个无状态HTTP请求)维护会话状态的一种方法

还有其他实现会话状态的方法,例如,将身份验证令牌或某个合适的会话id存储为cookie,并将会话id的存储维护为会话状态。(本质上,复制应用程序服务器在提供会话时正在执行的操作。)


您不需要使用会话意味着您的应用程序不需要会话状态,或者您以不同的方式实现了会话状态。例如,您的应用程序可能使用身份验证令牌(比如cookie)并将所有状态更改持久化到数据库。通过这种安排,不需要会话状态。

会话是跨多个请求(例如,多个无状态HTTP请求)维护会话状态的一种方法

还有其他实现会话状态的方法,例如,将身份验证令牌或某个合适的会话id存储为cookie,并将会话id的存储维护为会话状态。(本质上,复制应用程序服务器在提供会话时正在执行的操作。)


您不需要使用会话意味着您的应用程序不需要会话状态,或者您以不同的方式实现了会话状态。例如,您的应用程序可能使用身份验证令牌(比如cookie)并将所有状态更改持久化到数据库。有了这种安排,就不需要会话状态。

嗨,你可以拿购物车为例,因为Http是无状态协议,它不维护发送请求的用户的状态

例如。 如果一个用户向易趣发送购买相机的请求,几分钟后另一个用户发送购买笔记本电脑的请求

但由于http是无状态协议,所以服务器无法分离用户发送的请求,并且可能会将笔记本电脑的账单提供给第一个用户

所以通过ses