Cookie、Session和Application都是用来传递值的,但是它们的传值范围和存储效果有所不同。
在session.jsp页面中获取首页输入的姓名,并通过Cookie或者Session或者Application保存然后再传递到result.jsp页面:
Cookie:
String name = request.getParameter("name");//获取用户填写的用户名
//创建Cookie
Cookie mycook = new Cookie("name",name);
response.addCookie(mycook);
//获取保存在Cookie范围内的对象
String nameCookie = "";
Cookie[] cook = request.getCookies();
for(int i=0;i<cook.length;i++){
nameCookie+=cook[i].getValue()+"第"+i+"次<br/>";
}
Session:
String name = request.getParameter("name");//获取用户填写的用户名
//创建Session
session.setAttribute("name",name);//将用户名保存在session对象中
//获取保存在session范围内的对象
String nameSession = (String)session.getAttribute("name");
Application:
String name = request.getParameter("name");//获取用户填写的用户名
//创建Application
application.setAttribute("name",name);
//获取保存在Application范围内的对象
String nameApp = (String)application.getAttribute("name");
总结:
Cookie保存值时会同时传入另一个值,这样就会使在读取数据的过程中出现错误。
Session可以实现单一的页面之间的传值,不会同时存入其他的信息,但是Session所保存的值只适用于当前访问进程中,再次重载会丢失数据。
Application也可以实现单一的页面之间的传值且不会存入其他值,同时Application能始终保存该值,就算页面重载也不会丢失。