session 存放对象变量,及遇到的奇怪现象
2014-03-24 22:07
288 查看
本程序为简单测试程序,自己编写调试可用
1.为了说明session的使用
2.为了解开自己的疑惑
list.java //辅助类
index.jsp //session中放入list对象
show.jsp //session中取list对象
运行结果: the number of string in list: 4
分析: 大家注意到 index.jsp 中第28行开始,我向list中放入两个字符串变量,此时的list.size应为2;然后我将list对象放入session中;此时我原本以为list已经写入session,然而奇怪的事情发生了,我在第33行开始又添加了两个字符串到list中。从运行结果看,33行后的操作是成功的,show.jsp中session取出的list里面是四个字符串。
结论:session.setAttribute("list",li)
该方法不是顺序执行的,换句话说可能更准确,在对象变量的作用范围内所有对list对象变量的更改都将成功保存在session中
1.为了说明session的使用
2.为了解开自己的疑惑
list.java //辅助类
package guo; import java.util.ArrayList; public class list { private ArrayList<String> ss; public list() { // 构造方法 ss = new ArrayList<String>(); } public ArrayList<String> getlist() { return ss; // 得到字符串列表 } public void addlist(String s) { ss.add(s); // 添加字符串 } public void delelist(String s) { ss.remove(s); // 删除字符串 } }
index.jsp //session中放入list对象
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <%@ page import="guo.list"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% list li =new list(); //实例一个list对象 li.addlist(new String("guolilu")); //给list添加第一个字符串 li.addlist(new String("mateng")); //添加第二个 session.setAttribute("list",li); //放到session中 li.addlist(new String("liweilong")); //添加第三个 li.addlist(new String("guozhe")); //添加第四个 %> <a href="show.jsp"><h1> next page </h1> </a> </body> </html>
show.jsp //session中取list对象
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ page import="guo.list"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'hello.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% list guo; //声明一个list型变量 guo=(list)session.getAttribute("list"); //session中list对象 %> the number of string in list: <br> <%=guo.getlist().size()%> </body> </html>
运行结果: the number of string in list: 4
分析: 大家注意到 index.jsp 中第28行开始,我向list中放入两个字符串变量,此时的list.size应为2;然后我将list对象放入session中;此时我原本以为list已经写入session,然而奇怪的事情发生了,我在第33行开始又添加了两个字符串到list中。从运行结果看,33行后的操作是成功的,show.jsp中session取出的list里面是四个字符串。
结论:session.setAttribute("list",li)
该方法不是顺序执行的,换句话说可能更准确,在对象变量的作用范围内所有对list对象变量的更改都将成功保存在session中
相关文章推荐
- struts2中,session 存放对象或变量,以及取值
- D u p l i c a t e H a n d l e函数存在的奇怪现象之一是,目标进程没有得到关于新内 核对象现在可以访问它的通知
- SingleTask的Activity启动模式遇到的一个奇怪现象
- Java里面遇到的奇怪的现象!!!
- 关于VB教本中变量定义的位置的奇怪现象
- C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState
- ie8文档模式的奇怪现象,前面的对象跳跃延伸到行后(只对mouse事件产生回应,click事件无效,大概有3px)
- 客户端与Servlet通讯时用Base64编码遇到的奇怪现象
- 万年历程序debug遇到的奇怪现象
- 初次学习hibernate时遇到的一个奇怪现象
- 万年历程序debug遇到的奇怪现象
- 今天遇到的FPGA奇怪的现象
- 关于Session的奇怪现象
- spring MVC session会话中的对象的存放,取出,删除
- 昨日遇到的一个ARP攻击奇怪现象
- 打印session变量遇到的坑
- 你可能从来没有遇到的Oracle奇怪现象
- ADO连接Oracle数据库的遇到奇怪的连接字符串现象
- Android 修改xml布局遇到的奇怪现象
- 解决javascript的var变量无法保存el表达式中session域对象的值的的问题