我是这么写的!怎么刷新页面没有什么效果我的结构流程就是 首先点击树形图的节点,跳进servlet中,执行查询的方法。然后有调回该页面。页面刷新没有什么反应。
各位帮我解决一下!谢谢各位了!急需解决呀!首先是frame页面 代码如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title></title>
<link href="images/css.css" rel="stylesheet" type="text/css" />
</head>
<frameset cols="45%,*,0" frameborder="no" border="0" framespacing="0">
  <frame src="devgroupmng_l.jsp" name="left" scrolling="no" noresize="noresize" id="left" />
  <frame src="devgroupmng_f.jsp" name="right" scrolling="auto" noresize="noresize" id="right"  />
  <frame name="ddhidden" src=""  />
</frameset>
<noframes><body>
</body>
</noframes></html>
左边页面devgroupmng_l.jsp是用dtree写的页面。就是树形图 部分代码如下 <script type="text/javascript">
                        d = new dTree('d');
                        <%
                          System.out.println("abcde");
                          GetGroup dao=new GetGroup();
                          Vector arr=new Vector();
                          GetDev getdev=new GetDev();
                          List list=new ArrayList();
                          List camera=new ArrayList();
                          camera=(List)request.getAttribute("camera");
                          DevGroupInfo vo=new DevGroupInfo();
                          GetCamera getcamera=new GetCamera();
                          camera=getcamera.getcamerainfo();
                          CameraStatus cs=new CameraStatus();
                          CameraInfo camerainfo=new CameraInfo();
                          list=getdev.getonlinedev();
                          arr=dao.getGroupInfo();
                          for(int i=0;i<arr.size();i++)
                            {
                              vo=new DevGroupInfo();
                              vo=(DevGroupInfo)arr.get(i);
                        if(vo.getDevId()==null||"".equals(vo.getDevId())){
                        %>
                           d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                         '','','_target','img/tree.gif','img/tree.gif');
                        <%
                        }else{
                        for(int k=0;k<camera.size();k++){
                         camerainfo=new CameraInfo();
                         camerainfo=(CameraInfo)camera.get(k);
                        %>
                         IP='<%=camerainfo.getCameraip()%>';
                         cameraId='<%=camerainfo.getCameraid()%>';
                         port='<%=camerainfo.getConport()%>';
                        <%
                         if(vo.getDevId().equals(camerainfo.getCameraid().substring(0,10))){
                             if(camerainfo.getStatus().equals("1")){     
                             %>
                            d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                            'javaScript:forwards(\''+IP+'\',\''+cameraId+'\',\''+port+'\')','','','img/line_dev.GIF','','',''); 
                        <%
                        }else{
                        %>
                          d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                            'javaScript:forwards(\''+IP+'\',\''+cameraId+'\',\''+port+'\')','','','img/noline_dev.GIF','','','<%=vo.getGroupId()%>'); 
                         <%}%> 
                       <%}%> 
                        <%
                        }
                        %> 
                        <%}
                        %>
                        <%}
                        %>
                        document.write(d);
                    </script>
右边就是调用activeX页面。就别管了!然后我在左边那个页面devgroupmng_l.jsp用了ajax。就是要刷新dtree页面
ajax 代码如下
var xmlhttp;
function createXMLHttpRequest(){
 if(window.XMLHttpRequest){
 xmlhttp=new XMLHttpRequest();
 }else if(window.ActiveXObject){
  try{
   xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
  try{
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
  }catch(e){
  }
  }
 }
}
function doRequest(){
createXMLHttpRequest();
var url = "flush";
xmlhttp.onreadystatechange = callback;
xmlhttp.open("GET",url,true);
    //xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(null);
}
function callback(){
  if(xmlhttp.readyState==4){
     if(xmlhttp.status==200){
      window.setInterval(doRequest,"10000");
     }
    }
}
然后跳进servlet中
代码如下package com.Dtree.Servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.Dtree.po.CameraInfo;
import com.Dtree.po.CameraStatus;
import com.Dtree.utils.DBUtils;public class flush extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { 
   List camera=new ArrayList();
   DBUtils db=new DBUtils();
   ResultSet rs=null;
   PreparedStatement stmt=null;
   StringBuffer sqlSel=new StringBuffer();
   CameraInfo camerainfo=new CameraInfo();
   db.getConn();
sqlSel.append("select SBBH,MC,IP,TXDK,KZDK,LX,ZXZT from ITS_CAMERA ");
 try {
stmt=db.getStatement(sqlSel.toString());
rs=stmt.executeQuery();
while(rs.next()){
camerainfo=new CameraInfo();
    camerainfo.setCameraid(rs.getString("SBBH")); 
camerainfo.setCameraName(rs.getString("MC"));
camerainfo.setCameraip(rs.getString("IP"));
camerainfo.setPicport(rs.getString("TXDK"));
camerainfo.setConport(rs.getString("KZDK"));
camerainfo.setType(rs.getString("LX"));
camerainfo.setStatus(rs.getString("ZXZT"));
camera.add(camerainfo);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
db.closeConn();
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
         request.getRequestDispatcher("devgroupmng_l.jsp").forward(request,response);
 //response.sendRedirect("devgroupmng_l.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
         this.doGet(request, response);

}}

解决方案 »

  1.   

    我重新要写了一遍。帮帮忙。就是一刷新页面,树形图就刷没了!谢谢这个是Js代码var xmlhttp;
    function createXMLHttpRequest(){
      if(window.XMLHttpRequest){
        xmlhttp=new XMLHttpRequest();
      }else if(window.ActiveXObject){
      try{
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
      try{
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
      }
      }
      }
    }
    function doRequest(){
    createXMLHttpRequest();
    var url = "flush";
    //alert("abc");
    xmlhttp.onreadystatechange = callback;
    xmlhttp.open("GET",url,true);
        xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlhttp.send(null);
    }
    function callback(){
      if(xmlhttp.readyState==4){
        if(xmlhttp.status==200){
        var result=xmlhttp.responseXML;
        handXML(result);
         }
        }
    }
    function handXML(result){
    var showXML="<table>";
       var dTree=result.getElementsByTagName("dTree");
       for(i=0;i<dTree.length;i++){
       var person=dTree[i].childNodes;
         for(j=0;j<person.length;j++){
         showXML+="<tr>";
         var value = person[j].firstChild.data;
          showXML+="<td>"+value+"</td>";
          showXML+="</tr>";
         } 
       }
       showXML+="</table>";
       document.getElementById("show").innerHTML=showXML;
    }
    setInterval("doRequest()",5000);然后是servlet代码public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            /* DBUtils db=new DBUtils();
             PreparedStatement stmt=null;
             ResultSet rs=null;
             List videos=new ArrayList();
             StringBuffer sqlSel=new StringBuffer();
             CameraStatus cs=new CameraStatus();
             sqlSel.append("select CH_CAMERA_SERVICE_ID,PATH,STATUS from ITS_CAMERA_STATUS ");
             db.beginTransaction();
             try {
    stmt=db.getStatement(sqlSel.toString());
    rs=stmt.executeQuery();
    while(rs.next()){
    cs=new CameraStatus();
    cs=new CameraStatus();
    cs.setCameraId(rs.getString("CH_CAMERA_SERVICE_ID"));
    cs.setPath(rs.getString("PATH"));
    cs.setStatus(rs.getString("STATUS"));
    videos.add(cs);
    }

    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    stmt.close();
    db.closeConn();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
             request.getRequestDispatcher("devgroupmng_l.jsp").forward(request,response);
     //response.sendRedirect("devgroupmng_l.jsp");
    */
     PrintWriter out=response.getWriter();
     StringBuffer xmlTree= new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        xmlTree.append("<dTree>");
                PreparedStatement stmt=null;
        GetGroup getgroup=new GetGroup();
        GetCamera getcamera=new GetCamera();
        CameraInfo camerainfo=new CameraInfo();
        DevGroupInfo devgroupinfo=new DevGroupInfo();
        Vector vt=new Vector();
        List list=new ArrayList();
        vt=getgroup.getGroupInfo();
        list=getcamera.getcamerainfo();
        for(int i=0;i<vt.size();i++){
         devgroupinfo=new DevGroupInfo();
         devgroupinfo=(DevGroupInfo)vt.get(i);
         xmlTree.append("<groupname>");
         xmlTree.append(devgroupinfo.getGrouopName());
         xmlTree.append("<groupname>");
         for(int j=0;j<list.size();j++){
         camerainfo=new CameraInfo();
         camerainfo=(CameraInfo)list.get(j);
         xmlTree.append("<status>");
         xmlTree.append(camerainfo.getStatus());
         xmlTree.append("</status>");
         }
        }
        xmlTree.append("</dTree>");
        out.println(xmlTree.toString());
        out.close();


    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
             this.doGet(request, response);

    }}在然后就跳入devgroupmng_l.jsp属性dtree控件
    dtree控件代码如下
    <tr align="center" >
                    <td class="tableBorder4"><img src="images/dot.gif" alt="" width="1" ></td>
                    <td width=95%  >
                        <div style="text-align:left;width:95%;overflow-x:no;overflow-y:no" id="show">
                        <script type="text/javascript">
                            d = new dTree('d');
                            <%
                              //System.out.println("abcde");
                              GetGroup dao=new GetGroup();
                              Vector arr=new Vector();
                              GetDev getdev=new GetDev();
                              List list=new ArrayList();
                              List camera=new ArrayList();
                              camera=(List)request.getAttribute("camera");
                              DevGroupInfo vo=new DevGroupInfo();
                              GetCamera getcamera=new GetCamera();
                              camera=getcamera.getcamerainfo();
                              CameraStatus cs=new CameraStatus();
                              CameraInfo camerainfo=new CameraInfo();
                              list=getdev.getonlinedev();
                              arr=dao.getGroupInfo();
                              for(int i=0;i<arr.size();i++)
                                {
                                  vo=new DevGroupInfo();
                                  vo=(DevGroupInfo)arr.get(i);
                            if(vo.getDevId()==null||"".equals(vo.getDevId())){
                            %>
                               d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                             '','','_target','img/tree.gif','img/tree.gif');
                            <%
                            }else{
                            for(int k=0;k<camera.size();k++){
                             camerainfo=new CameraInfo();
                             camerainfo=(CameraInfo)camera.get(k);
                            %>
                             IP='<%=camerainfo.getCameraip()%>';
                             cameraId='<%=camerainfo.getCameraid()%>';
                             port='<%=camerainfo.getConport()%>';
                            <%
                             if(camerainfo.getCameraid().substring(0,10).equals(vo.getDevId())){
                                 if(camerainfo.getStatus().equals("1")){ 
                                 %>
                                d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                                'javaScript:forwards(\''+IP+'\',\''+cameraId+'\',\''+port+'\')','','','img/line_dev.GIF','','',''); 
                            <%
                            }else{
                            %>
                              d.add('<%=vo.getGroupId()%>','<%=vo.getGroupParentId()%>','<%=vo.getGrouopName()%>',
                                '','','','img/noline_dev.GIF','','','<%=vo.getGroupId()%>'); 
                             <%}%> 
                           <%}%> 
                            <%
                            }
                            %> 
                            <%}
                            %>
                             <%}
                            %>
                            
                            document.write(d);
                        </script>
                     </div>
                    </td>
                    <td class="tableBorder4"><img src="images/dot.gif" alt="" width="1" ></td>
                  </tr>大家帮帮忙吧!怎么刷新一下页面,就是那树形图没有了啊!谢谢了
      

  2.   

    跟踪了。不知道怎么写!你能不能帮我看看就是servlet和就是文件中代码这么写行吗?谢谢
      

  3.   

    request.getRequestDispatcher("devgroupmng_l.jsp").forward(request,response);
    这句话一般放到doGet(doPost)最后一句。