日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

session 存放对象变量,及遇到的奇怪现象

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中




與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的session 存放对象变量,及遇到的奇怪现象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。