黑马程序员技术交流社区

标题: 求request和sessionn的用法,一直是糊里糊涂的 [打印本页]

作者: lixing123456    时间: 2014-12-18 10:00
标题: 求request和sessionn的用法,一直是糊里糊涂的
求各位大神来个小例子,DEMO
作者: 秦守志    时间: 2014-12-18 10:00
request和session区别,request是指一次用户请求,点击一个button或一个链接等等,服务器根据这次请求回显给用户一个页面,这就是响应,而这个就是一次完整的HTTP请求。存储在request中的一些信息,一旦超过对应请求而丢失。  
session是指一次会话,这次会话以用户点击退出按钮(或链接)或关闭浏览器结束,在次期间用户可以完成很多次请求,而存储在session中的信息,在整个会话期间都不会丢失。
作者: lixing123456    时间: 2014-12-18 10:04
和重定向转发一起用
作者: zhaojiajun    时间: 2014-12-18 13:13
request 请求,比如打开一个超链接也是一个请求,请求结束这个request也就结束了
session 会话, 当用户第一次和服务器建立连接时,服务器就会产生一个session直到用户离开或超时
作者: Charay    时间: 2014-12-18 19:28
小白路过
作者: 还在路上    时间: 2014-12-18 21:26
我是来学习的
作者: bjznh    时间: 2014-12-19 08:43
request 是 用来接收从前台传过来的数据的,不管是表单提交还是AJAX提交的。
session :用于在服务器端保存数据使用,默认是保存在服务器端的辅助线程里面,也可以保存在一个独立的数据库里。默认存储时间是20分钟
作者: 小平    时间: 2014-12-19 09:29
1、session的用法

动手编写了一个简单的例子用于复习session的用法:
包括4个文件:
index.jsp
session.jsp
link.jsp
next.jsp

index.jsp文件:
<%@ page contentType="text/html;charset=gb2312" %>
<form method=post action=session.jsp>
姓名:
<input type=text name=name><br>
<input type=submit value="确定">
</form>
用于提交一个字符串.
session.jsp文件:
<%@ page contentType="text/html;charset=gb2312" %>
<%
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK");

session.setAttribute("yourname",name);
%>
你的名字:
<%
out.println(name);
%>
<a href=link.jsp>link</a>
用于接收并储存字符串变量的值.
link.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%
String name=(String)session.getAttribute("yourname");

%>
你的名字:
<%
out.println(name);
%>
<a href=index.jsp>首页</a>
<a href=next.jsp>next</a>
next.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%
String name=(String)session.getAttribute("yourname");

%>
你的名字2:
<%
out.println(name);
%>
<a href=index.jsp>首页</a>
<a href=next.jsp>next</a>



文章源自:http://www.zhuoda.org/lunzi/20090.html



2、JSP中request.getParameter()和session.getAttribute()的区别

JSP中request.getParameter()和session.getAttribute()有没有区别,它们各自适合那些场合
---------------------------------------------------------------  

request.get是从上一个页面用户提交的数据中取得,  

而session存在范围是用户这一次看你的网站。比如用,用户需要密码才能访问你的网站,用户初次登录时,你可以把变量设到SESSION里,以后只要检查SESSION里的变量就可以知道用户是否已经在登录状态。  
---------------------------------------------------------------  

request.getParameter()  
request  是请求,即把需要的参数得到,一般是从上一个页面用户提交的数据中得到  

session.getAttribute()  
session  是用来保持会话的连接,说明见楼上  
---------------------------------------------------------------  

1,request.getParameter()  得到客户端数据  
2,session.getAttribute()  存入变量以便让更多页面可以得到该变量,通过设置存在时间,可以用在是否在线,是否已登录等场合  

---------------------------------------------------------------  

request.getParameter()是从上一个页面用户提交的数据中取得,  

session.getAttribute()在整个会话期间都有效,这样可以方便的多次获得该变量  

---------------------------------------------------------------  

request.getParameter()上一个页面提交的。  
比如  form  里的  或者市  url  里的。  

session.getAttribute()是在用户的整个会话期有效。  
---------------------------------------------------------------  

这个问题主要是request和session的差别,request范围较小一些,只是一个请求,简单说就是你在页面上的一个操作,request.getParameter()就是从上一个页面中的url、form中获取参数,但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.getAttribute(),但是当结果输出之后,request就结束了。  
而session可以跨越很多页面,可以理解是客户端同一个IE窗口发出的多个请求。这之间都可以传递参数,比如很多网站的用户登录都用到了。
作者: 小僧玄奘    时间: 2014-12-25 11:23
request是转发。比如1个变量的生命周期是比如A页面的按钮转发到B页面再转发到C页面。必须是从上一个页面转发过来的。变量的值就一直存在。
sessionn是会话。打开这个页面就表示开始了一个会话,只要浏览器不关闭。默认是30分钟。也就是30分钟内,你可以从C页面访问A页面的值。 而不用像request一样,必须转发过来才能有值
作者: wang391141741    时间: 2014-12-29 13:39
两个生命周期不一样,request的生命周期只在数据提交,提交以后即释放,session则是浏览器关闭才释放 所以一般一些用户信息类的内容都会存在session里,比如购物车内信息,或者用户登录的各种身份验证信息,这样不会因为跳转页面而丢失这些信息
作者: dawsper    时间: 2015-1-24 15:54
request跟session不是解决一类问题的,request对象是获取客户端请求的,只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息。如Request.Form,获取Form表单提交的内容。
session对象用于存储特定的用户会话所需的信息 。引用Session 则可以让一个用户访问多个页面之间的切换也会保留该用户的信息。
作者: tomson_tang    时间: 2015-2-2 11:20
给你文档,看了就懂了,文档内有例子

demo.zip

82.25 KB, 阅读权限: 10, 下载次数: 3


作者: VitaminesPop    时间: 2015-3-4 11:20
看了UP的帖子后涨姿势了。。
作者: 爱做梦的年纪    时间: 2015-4-13 18:29
我觉得知识点在网上书上看到的基本的用法都是差不多的,希望你可以做几个案例就理解里面是则怎么用的
作者: 半世心修    时间: 2015-5-25 11:47
要栗子干嘛。。request的生命周期是请求开始到请求结束,比如向页面发送一个对象在页面显示这个功能,发送万就可以不要了,那么你就可以放这个对象放在request中转发到页面。而session的生命周期是浏览器的关闭,当然他有默认的关闭时间,你也可以手动设置。一般想用户登录之后就把用户这个对象放入session,之后你在程序任何地方都能取到session中的用户对象,但是session比较耗内存,一般不会放太多东西进session。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2