Servlets 是否可以完全不使用会话,而只依赖于servetcontext、隐藏的表单字段等?

Servlets 是否可以完全不使用会话,而只依赖于servetcontext、隐藏的表单字段等?,servlets,cookies,servletcontextlistener,Servlets,Cookies,Servletcontextlistener,鉴于使用会话和cookie是如此不安全,是否可以只安全地使用servlet上下文变量和隐藏字段、url重写来实现会话所做的相同事情 但它是否同样安全和方便?为什么不使用这种方法 我只是想避免吃饼干!另外,若我将用户详细信息保存在servlet上下文变量中,它会不会和cookie不一样,而只是在服务器端? 这是最终使用cookie的原因吗?它们是客户端的吗?不,cookie与Servlet上下文不同。ServletContext是每个应用程序的单例。不是每个用户。您应该避免使用ServletCon

鉴于使用会话和cookie是如此不安全,是否可以只安全地使用servlet上下文变量和隐藏字段、url重写来实现会话所做的相同事情

但它是否同样安全和方便?为什么不使用这种方法

我只是想避免吃饼干!另外,若我将用户详细信息保存在servlet上下文变量中,它会不会和cookie不一样,而只是在服务器端?
这是最终使用cookie的原因吗?它们是客户端的吗?

不,cookie与Servlet上下文不同。ServletContext是每个应用程序的单例。不是每个用户。您应该避免使用ServletContext获取用户特定的信息,因为您还需要注意用户生命周期,例如在用户空闲时删除用户信息

如果您不想使用Cookie,会话跟踪的备选方案有:

  • URL重编
  • 隐藏表单字段
但是,您可以使用以下属性来保护cookie:

  • httponly:在受支持的浏览器上,httponly会话cookie仅在传输HTTP(或HTTPS)请求时使用,从而限制从其他非HTTP API(如JavaScript)的访问
  • 安全的:安全cookie启用了安全属性,并且仅通过HTTPS使用,确保cookie在从客户端传输到服务器时始终加密
  • :它们告诉浏览器cookie只应发送回给定域的服务器
  • 路径:它们告诉浏览器cookie只应发送回给定路径的服务器

好的!但是,我对formbeans类的使用感到困惑。一旦确认用户输入了正确的密码,我们就将所有用户详细信息存储在客户/用户的bean类中。使用这个bean的函数的范围是什么?我假设我必须创建:默认类、私有数据成员、其中的默认函数???这是否意味着我可以使用bean类对象在servlet和其他普通类中提供用户的详细信息?我不明白的是,这个物体的生命何时结束?它的范围是什么?是的,因为所有这些问题。您应该避免使用ServletContext。您应该将基于Cookie的会话处理与我提到的上述属性一起使用。