问下把数据放进Application,Session,Request,Response之类的具体场景

J2EE 码拜 10年前 (2015-05-10) 1050次浏览 0个评论
 

刚接触Java EE,正在学习Struts,看到这几个概念不太明白怎么根据具体要求把数据放到这些里,现在是把数据全放进Session里,这样肯定效率比较低。请大家能否举几个具体的例子?

5分
你是不知道在 Struts 框架下怎么放  还是 不知道什么数据往对应放到 哪个里面?
15分
你了解下各个作用域的范围,这个问题你就清楚了。
Application:你的j应用启动到结束。如果你一直用这个作用域的话,你不手动清理,它会一直增加。用这个,意味着你每次用了之后,你要手动清理。
Session:你打开浏览器访问一次服务器,到你关闭浏览器。你用这个作用域的话,不用你手动清理,关了浏览器,自动清理。
request:你发送一个请求,到请求结束。你用这个,同样不用手动清理,请求完了,自动清理。
Response,这个是你后台响应数据给产台的。和request一个级别。

你是想每次都手动清理呢,还是自动清理呢?下面简单说下应用场合:

你打开csdn,登陆后,你的用户信息放在session里,因为,你不会一打开浏览器就关掉,你会在csdn的各个页面间跳来跳去,而这其中很多个页面都需要验证你是否是csdn的用户,所以,你的用户信息放在session里很方便。这样csdn就不用频繁的去查数据库了。

然后你打开一个页面,后台你把请求的文章等信息放在request里然后呈现给你,这意味着csdn每次都要去查数据库,为什么呢,因为你请求的文章,随时都可能变化,你前一秒访问完,下一秒就有人评轮了,这个放在session肯定不合话,因为session里的数据一边是不变的。

csdn后台可能会把一些常用的参数信息,放在Application里,供整个应用调用。通常都是固定的,给后台有的,和你前台用户 访问关系不大。所以也不会因为客户访问了,就去增加这里面的数据。

怎么样,是不是有点明白了。完了你再去百度这几个作用域的具体范围,你就彻底清楚了。

补充:除非业务需要,一般数据都放在request里面。
引用 2 楼 hymwrj1 的回复:

你了解下各个作用域的范围,这个问题你就清楚了。
Application:你的j应用启动到结束。如果你一直用这个作用域的话,你不手动清理,它会一直增加。用这个,意味着你每次用了之后,你要手动清理。
Session:你打开浏览器访问一次服务器,到你关闭浏览器。你用这个作用域的话,不用你手动清理,关了浏览器,自动清理。
request:你发送一个请求,到请求结束。你用这个,同样不用手动清理,请求完了,自动清理。
Response,这个是你后台响应数据给产台的。和request一个级别。

你是想每次都手动清理呢,还是自动清理呢?下面简单说下应用场合:

你打开csdn,登陆后,你的用户信息放在session里,因为,你不会一打开浏览器就关掉,你会在csdn的各个页面间跳来跳去,而这其中很多个页面都需要验证你是否是csdn的用户,所以,你的用户信息放在session里很方便。这样csdn就不用频繁的去查数据库了。

然后你打开一个页面,后台你把请求的文章等信息放在request里然后呈现给你,这意味着csdn每次都要去查数据库,为什么呢,因为你请求的文章,随时都可能变化,你前一秒访问完,下一秒就有人评轮了,这个放在session肯定不合话,因为session里的数据一边是不变的。

csdn后台可能会把一些常用的参数信息,放在Application里,供整个应用调用。通常都是固定的,给后台有的,和你前台用户 访问关系不大。所以也不会因为客户访问了,就去增加这里面的数据。

怎么样,是不是有点明白了。完了你再去百度这几个作用域的具体范围,你就彻底清楚了。

多谢,讲的真好

引用 1 楼 t55312153 的回复:

你是不知道在 Struts 框架下怎么放  还是 不知道什么数据往对应放到 哪个里面?

应该是后者


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问下把数据放进Application,Session,Request,Response之类的具体场景
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!