钟祥市怎样:java http session状态保持
来源:百度文库 编辑:九乡新闻网 时间:2024/05/12 01:59:57
项目中需要保持http的session状态,研究了一下http中保持会话的资料,总结如下
http协议是面向无连接的协议,一次请求,一次操作,然后就结束了,是没有状态的。然后在实际应
用中需要保存用户信息的时候,可以采用cookie和session这2种方式,cookie是保存在客户端,
session是保存在服务器端的,个人觉得session比较安全。网上看资料,说是session的实现,是服务
器在内存中开辟一段内存区域,返回一个索引,即生成一个sessionid,发送到客户端,在客户端下一
次发送请求的时候将sessionid回传,则服务器可以找到用户的信息,相当于实现了状态的保持,因此
客户端还是要保存这个sessionid,我测试了一下在返回的response结果集中,将cookie键值对保存,
在下次发送请求的时候,将这个键值对以cookie的方式发送,结果成果。测试的例子是ww.our023.com
,测试结果很成果,如果没有登录,则返回的是无效的结果,但是如果登录了,然后将cookie中的内
容在下一次的请求中发送,则相当于包sessionid一起发送过去,则session状态保持成功。在cookie
中的键值对名,关系到sessionid的键值对,命名不知道是正面来的,反正接受到的参数都回传就是了
,这个估计和具体的服务器有一定的关系,或是和开发后台web的语言有一定关系,在此不在研究。
例子如下:
Java代码
String userName = "testyuce";
String password = "123456";
Map loginData = new HashMap();
loginData.put("username", userName);
loginData.put("password", password);
loginData.put("radio", "31536000");
loginData.put("referer", "/bbs");
//登录地址
Connection con = Jsoup.connect("http://www.our023.com/bbs/logging.php?action=login&loginsubmit=1");
con.data(loginData);
Response response = con.execute();
Document doc = response.parse();
//如果包含则代表返回的页面不是错误页面
System.out.println("测试登录结果11111,是否包含testyuce:" + doc.html().contains("testyuce"));
// System.out.println(doc.html());
System.out.println("==============================================");
Map cookie = response.cookies();
//搜索地址
Connection conSearch = Jsoup.connect("http://www.our023.com/bbs/search.php?srchtxt=重庆&srchtype=title&searchsubmit=yes");
//设置请求时的cookie值,其中包含了上一次请求时服务器放回的sessionid
Iterator> iterCookie = cookie.entrySet().iterator();
while(iterCookie.hasNext()){
Entry entry = iterCookie.next();
conSearch.cookie(entry.getKey(), entry.getValue());
}
doc = conSearch.get();
//如果包含则代表返回的页面不是错误页面,则说明session状态保持成功
System.out.println("测试搜索结果2222,是否包含testyuce:" + doc.html().contains("testyuce"));
//如果熟悉html语言,可以看到返回的结果集合
// System.out.println(doc.html());
System.out.println("===============================================");
}
注:测试中用到了解析html的开源包jsoup
http协议是面向无连接的协议,一次请求,一次操作,然后就结束了,是没有状态的。然后在实际应
用中需要保存用户信息的时候,可以采用cookie和session这2种方式,cookie是保存在客户端,
session是保存在服务器端的,个人觉得session比较安全。网上看资料,说是session的实现,是服务
器在内存中开辟一段内存区域,返回一个索引,即生成一个sessionid,发送到客户端,在客户端下一
次发送请求的时候将sessionid回传,则服务器可以找到用户的信息,相当于实现了状态的保持,因此
客户端还是要保存这个sessionid,我测试了一下在返回的response结果集中,将cookie键值对保存,
在下次发送请求的时候,将这个键值对以cookie的方式发送,结果成果。测试的例子是ww.our023.com
,测试结果很成果,如果没有登录,则返回的是无效的结果,但是如果登录了,然后将cookie中的内
容在下一次的请求中发送,则相当于包sessionid一起发送过去,则session状态保持成功。在cookie
中的键值对名,关系到sessionid的键值对,命名不知道是正面来的,反正接受到的参数都回传就是了
,这个估计和具体的服务器有一定的关系,或是和开发后台web的语言有一定关系,在此不在研究。
例子如下:
Java代码
String userName = "testyuce";
String password = "123456";
Map
loginData.put("username", userName);
loginData.put("password", password);
loginData.put("radio", "31536000");
loginData.put("referer", "/bbs");
//登录地址
Connection con = Jsoup.connect("http://www.our023.com/bbs/logging.php?action=login&loginsubmit=1");
con.data(loginData);
Response response = con.execute();
Document doc = response.parse();
//如果包含则代表返回的页面不是错误页面
System.out.println("测试登录结果11111,是否包含testyuce:" + doc.html().contains("testyuce"));
// System.out.println(doc.html());
System.out.println("==============================================");
Map
//搜索地址
Connection conSearch = Jsoup.connect("http://www.our023.com/bbs/search.php?srchtxt=重庆&srchtype=title&searchsubmit=yes");
//设置请求时的cookie值,其中包含了上一次请求时服务器放回的sessionid
Iterator
while(iterCookie.hasNext()){
Entry
conSearch.cookie(entry.getKey(), entry.getValue());
}
doc = conSearch.get();
//如果包含则代表返回的页面不是错误页面,则说明session状态保持成功
System.out.println("测试搜索结果2222,是否包含testyuce:" + doc.html().contains("testyuce"));
//如果熟悉html语言,可以看到返回的结果集合
// System.out.println(doc.html());
System.out.println("===============================================");
}
注:测试中用到了解析html的开源包jsoup
java http session状态保持
Status codes in HTTP(HTTP 状态码)
HTTP响应状态码(转)
帮大脑保持最佳状态
保持最佳系统环境状态
如何保持婚姻的最佳状态
如何保持婚姻的最佳状态?
保持创意状态的29种方法!
Session 详解
网站日志中,HTTP状态码是代表什么意思?
HTTP 1.1状态代码及其含义 - 51windows.Net
java
饮食指导:让考生保持最佳状态的饮食指南
保持大脑最佳状态的9种方法
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>迭代输出异常
Fourth Plenary Session
read by other session
ASH(Active Session History)
Oracle V$SESSION
Cookie和Session专题
《保持创作状态的五种方法》——简·Z·欧文
如何保养系统?一条命令让电脑系统保持良好状态
专家称各地楼市明显分化 房价将保持稳定状态
让爱车保持最佳状态的11条养护诀窍 | 我要买车