日期:2014-05-17  浏览次数:20690 次

jsp动态操作数据库时页面无法刷新!求救!
现在我在弄得项目情况是这样的:
一个主页面index.jsp分成两个部分,左边为tree.jsp,右边显示treeDetail.jsp,这个tree是通过存储过程从数据库中读取数据建立的,而右边treeDetail则是显示在点击右边树节点时显示的数据库中读取的相应数据:比如名称,顺序,代号,时间等等;
现在我主要遇到两个问题:
1,我在右边treeDetail页面对数据库操作,比如更改这个节点的名称,然后提交给数据,或者删除改节点,(以上都是对数据库进行modify或delete的),然后对tree页面进行reload刷新页面也用过parent.tree.location,按照我所想的应该tree页面的数据会立刻得到更新的,但是这里还是原来的树,没有变化,只不过在我再点击这个节点后右边treeDetail显示的数据是我更新过的数据,这个搞得我头就大了,后来我关闭jbuilder重新运行,这下又得到我想要的效果了,这几天我到网上看了,这个好像是页面读的是缓存里面的数据,只是我没有把独具的数据放在servlet类中,同时现在我也在tree页面加入了下面代码来阻止缓存:
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
只是运行操作还是不行,这个到底要怎么办?

2,主要是乱码问题,我用的页面编码是UTF-8的,在每个页面的开头加入了
<%@page contentType="text/html; charset=UTF-8" language="java"%>
<%@page pageEncoding="UTF-8"%>
还加入了
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
在servlet中的doPost方法中加入request.setCharacterEncoding("UTF-8");
但是当我在treeDetail页面的textBox中修改数据如节点名称,提交后,刷新页面,点击Tree页面中的相应节点显示出来就变成乱码了,我测试过,这个bean类中在写如数据库之前获取到的节点名称就是乱码了。


以上两个问题困扰了我很久了,小弟刚学jsp不久,忘了说了,这个工程是用JSf写得,请各位大哥大姐指点小弟下下,万分感谢!!!
期待您的答复!!!


------解决方案--------------------
将编码改成GBK试试
------解决方案--------------------
第一个问题可以试试在ie里,
选项--->internet选项---->常规选项卡中(internet临时文件中的设置)--->改成每次访问此页面时检查
------解决方案--------------------
在servlet doPost()方法中

request.setCharacterEncoding("UTF-8"); 
去掉


加入
response.setContentType("text/html;charset=gbk");
request.getCharacterEncoding();
PrintWriter out = response.getWriter();

看下行不行

------解决方案--------------------
第一个问题,将url后加一个参数t=new Date();试试
如: a.jsp?t=new Date()
------解决方案--------------------
存儲頁面結束后加上這個轉到你要的頁面,應該會刷新一次吧
out.println("<SCRIPT LANGUAGE='JavaScript'> location.href=xx.jsp?S_LOGIN_ID="+LOGIN_ID+" '</SCRIPT> ");