request.setAttribute和request.getSession().setAttribute()

Ara*_*Ram 3 session attributes servlets request

request.setAttribute和之间有什么区别request.getSession().setAttribute()
它们存储在哪里以及以哪种格式存储?

Abu*_*kar 7

区别 :

使用时request.setAttribute,可以为同一请求对象存储内容.当您从当前的servlet/jsp转发到某个其他servlet/jsp时,可以稍后使用此属性.

使用时request.getSession().setAttribute(),可以存储特定用户会话的内容.如果用户会话尚未过期,您可以随时使用此属性.

它们存储在哪里以及格式:

servlet容器将管理存储值的位置.并且值始终存储为String.

一个例子 :

假设有一个用于输入学生标记的html页面,它被发送到某个servlet X并且你想在servlet Y中使用这些值.所以你在servlet X请求属性中设置标记值然后转发到servlet Y并使用那些变数.

但是,假设您有多个ui页面,当用户注销时,您希望用他的名字提醒他.因此,您可以做的是,要将其名称存储request.getSession().setAttribute()在您的注销页面中,您可以获取存储在会话中的警报值.