看下我的程序片段 我的客户端部分代码
try {
student = new Student();
student.setNum(Emter_UML.stunum);
assitclient = new AssitClient_OO(student);
assitclient.setsituation(1);//这是用来标记situation值,然后服务器端根据是1 or 2产生不同的结果
System.out.println(assitclient.CreateSql(assitclient));
Emter_UML.client.SentInforToServer(assitclient);
ArrayList<ArrayList<String>> personalinforArray = Emter_UML.client.GetInforFromServer();
personalinfor = new AssitDBalpha();
jlabel.add(jLabel9);
jlabel.add(jLabel10);
jlabel.add(jLabel11);
jlabel.add(jLabel12);
jlabel.add(jLabel13);
jlabel.add(jLabel14);
personalinfor.setjlabel(jlabel);
personalinfor.setpersonalinfor(personalinforArray);
basecourseinfor=new AssitDBalpha();
assitclient.setsituation(2);//重置situation的值
Emter_UML.client.SentInforToServer(assitclient);
ArrayList<ArrayList<String>> basecourseinforArray = Emter_UML.client.GetInforFromServer();
basecourseinfor.setbasecourseinfor(jTable1, basecourseinforArray);
} catch (IOException ex) {
Logger.getLogger(DBa.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBa.class.getName()).log(Level.SEVERE, null, ex);
}服务器端部分代码
else if (nameandpass instanceof AssitClient_OO) {
si = (AssitClient_OO) nameandpass; int situation = si.getsituation();
System.out.println("situ-Server:" + situation);//两次situation均为1 if (situation == 1) {
String sql = "select *from lh.student_view " +
si.CreateSql(si);
System.out.println("SQL->:" + sql);
re = con.CreateResult(sql); ArrayList<ArrayList<String>> tempdata = this.getdatafromresult(re);
toclient.writeObject(tempdata);
toclient.flush();//toclient.reset();
} if (situation == 2) {
String sql = "select c_num,c_name,depart,c_gredit,teacher,time from lh.stu_sc2_view " +
si.CreateSql(si);
re = con.CreateResult(sql); ArrayList<ArrayList<String>> tempdata = this.getdatafromresult(re);
toclient.writeObject(tempdata);
toclient.flush();
}
}
但是我在服务器端的得到的始终是一个相同的ArrayList<ArrayList<String>>,AssitClient_OO继承了序列化。。为什么两次发送不同的对象但在服务器端接受的是同一个对象呢???
需要高手解答,或者自己举个小例子也可以的。。
try {
student = new Student();
student.setNum(Emter_UML.stunum);
assitclient = new AssitClient_OO(student);
assitclient.setsituation(1);//这是用来标记situation值,然后服务器端根据是1 or 2产生不同的结果
System.out.println(assitclient.CreateSql(assitclient));
Emter_UML.client.SentInforToServer(assitclient);
ArrayList<ArrayList<String>> personalinforArray = Emter_UML.client.GetInforFromServer();
personalinfor = new AssitDBalpha();
jlabel.add(jLabel9);
jlabel.add(jLabel10);
jlabel.add(jLabel11);
jlabel.add(jLabel12);
jlabel.add(jLabel13);
jlabel.add(jLabel14);
personalinfor.setjlabel(jlabel);
personalinfor.setpersonalinfor(personalinforArray);
basecourseinfor=new AssitDBalpha();
assitclient.setsituation(2);//重置situation的值
Emter_UML.client.SentInforToServer(assitclient);
ArrayList<ArrayList<String>> basecourseinforArray = Emter_UML.client.GetInforFromServer();
basecourseinfor.setbasecourseinfor(jTable1, basecourseinforArray);
} catch (IOException ex) {
Logger.getLogger(DBa.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBa.class.getName()).log(Level.SEVERE, null, ex);
}服务器端部分代码
else if (nameandpass instanceof AssitClient_OO) {
si = (AssitClient_OO) nameandpass; int situation = si.getsituation();
System.out.println("situ-Server:" + situation);//两次situation均为1 if (situation == 1) {
String sql = "select *from lh.student_view " +
si.CreateSql(si);
System.out.println("SQL->:" + sql);
re = con.CreateResult(sql); ArrayList<ArrayList<String>> tempdata = this.getdatafromresult(re);
toclient.writeObject(tempdata);
toclient.flush();//toclient.reset();
} if (situation == 2) {
String sql = "select c_num,c_name,depart,c_gredit,teacher,time from lh.stu_sc2_view " +
si.CreateSql(si);
re = con.CreateResult(sql); ArrayList<ArrayList<String>> tempdata = this.getdatafromresult(re);
toclient.writeObject(tempdata);
toclient.flush();
}
}
但是我在服务器端的得到的始终是一个相同的ArrayList<ArrayList<String>>,AssitClient_OO继承了序列化。。为什么两次发送不同的对象但在服务器端接受的是同一个对象呢???
需要高手解答,或者自己举个小例子也可以的。。
System.out.println("situ-Server:" + situation);//两次situation均为1
// 这是什么意思 两次situation均为1 那还不只做第一个 if 那还不相同?