关于 PrintWriter out=response.getWriter();HttpSession session=request.getSession() 以及Cookie对象
由于本人刚开始接触java,所以有些很简单的问题希望各位技术前辈们援助解答,问题如下:PrintWriterout=response.getWriter()语句与Http...
由于本人刚开始接触java,所以有些很简单的问题希望各位技术前辈们援助解答,问题如下:PrintWriter out=response.getWriter()语句与HttpSession session=request.getSession()中为何是两个分别是用response对象和request对象而不用同一个对象?另外在什么时候才使用这两个对象呢?还有就是Cookie与HttpSession这两技术是在什么情况下去合理的选用的呢,....好像感觉自己问的比较罗嗦吧..hei 但感觉真的没有什么方法比这个可以更直接得到答案 好了。所以希望能从各位前辈口中得到合适的解答,在此先谢过了。
展开
2个回答
2011-01-22
展开全部
首先回答为什么分别是response和request这两个内置对象。
你得先明白你通过获取对象是做什么用的,是往哪用的。
第一个PrintWriter out=response.getWriter()
是想获得一个输出流,用来响应客户端发出的请求。所以想响应客户端必须用response
第二个HttpSession session=request.getSession()
是从客户端获得一个session的对象,这个对象包含客户端持有的相关信息用来区别每个客户端.既然是从客户端就必须用请求对象来获取,因为一般都是客户端向服务器端发出的一个请求.所以用request对象。
Cookie和session这个得分开来说
两个都可以用来存私密的东西,同样也都有有效期的说法。
区别在于。
session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
1、cookie数据存放在客户的浏览器上,
session数据放在服务器上
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
你得先明白你通过获取对象是做什么用的,是往哪用的。
第一个PrintWriter out=response.getWriter()
是想获得一个输出流,用来响应客户端发出的请求。所以想响应客户端必须用response
第二个HttpSession session=request.getSession()
是从客户端获得一个session的对象,这个对象包含客户端持有的相关信息用来区别每个客户端.既然是从客户端就必须用请求对象来获取,因为一般都是客户端向服务器端发出的一个请求.所以用request对象。
Cookie和session这个得分开来说
两个都可以用来存私密的东西,同样也都有有效期的说法。
区别在于。
session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。
1、cookie数据存放在客户的浏览器上,
session数据放在服务器上
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
4、单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
5、所以个人建议:
将登陆信息等重要信息存放为SESSION
其他信息如果需要保留,可以放在COOKIE中
展开全部
在javaEE中,HttpServletRequest request、HttpServletResponse response 分别是请求和响应对象。我说这个只是便于你理解,你去看下这两个类的文档就知道了,因为HttpservletResponse这个类下有getWriter()方法,而request没有。
另外,session和cookie你要搞清楚他们的生命周期就不难去判断什么时候使用哪一个了。HttpSession下面三种情况下会被杀死,即失效:
1)超时;
2)你在会话上调用invalidate()方法;
3)服务器关闭导致应用结束或者是取消了应用部署。
而cookie是保存在你电脑上的cookie文件中的,他的生命周期是你设置的时间长度,可以是一个月,一年等。
所以cookie适合来保存用户名密码等,当你第二次登陆的时候,就从cookie中读取出来。
而session适合来建立一个用户会话,比如登陆一个系统,使用session来保持当前用户的信息。
其实我说这么些,你可能只是有个大概了解了,更多的你需要自己去实践,你自己动手解决的问题多了,编写的代码多了,很多地方就会明白了。
另外,session和cookie你要搞清楚他们的生命周期就不难去判断什么时候使用哪一个了。HttpSession下面三种情况下会被杀死,即失效:
1)超时;
2)你在会话上调用invalidate()方法;
3)服务器关闭导致应用结束或者是取消了应用部署。
而cookie是保存在你电脑上的cookie文件中的,他的生命周期是你设置的时间长度,可以是一个月,一年等。
所以cookie适合来保存用户名密码等,当你第二次登陆的时候,就从cookie中读取出来。
而session适合来建立一个用户会话,比如登陆一个系统,使用session来保持当前用户的信息。
其实我说这么些,你可能只是有个大概了解了,更多的你需要自己去实践,你自己动手解决的问题多了,编写的代码多了,很多地方就会明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询