2016-02-17 24 views
1

我正在開發一個web應用程序,我有一個jsp頁面,其中有一個表格和其他一些東西。我想要的是每5秒刷新一次表格的內容。下面是我的jsp頁面的代碼。任何人都可以幫我解決我的問題。如何刷新jsp頁面的一個分區

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 

<%@ page language="java" %> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.util.Calendar" %> 
<%@ page import="java.text.DateFormat" %> 
<%@ page import="java.util.Date" %> 
<%@ page import="java.text.SimpleDateFormat" %> 
<HTML> 
<HEAD> 
    <TITLE>Welcome to Crevavi </TITLE> 

</HEAD> 

<div style="width:950px; height:900; padding:10px; border:10px ridge black;"> 
<body bgcolor="white"; border="3px"> 
<img src="Crevavi_Plain.jpg" background-color="white" width="100" height="25" style=float:right;/> 
<h1 style=margin-left:2px;><font size="5"> Crevavi Web Application</font></h1> 
<hr color="black"> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
var auto = setInterval( function() 
     { 
       $("#result").load("NewTable.html #result"); 
     }, 5000); // refresh every 5000 milliseconds 
     </script> 

//I want only the below division to refresh every 5 seconds. 



    <div id="result" style="width:930px; height:500; padding:5px; border:5px ridge black;"> 
<% 
    int rowCount = 0; 
    /*Calendar cal = Calendar.getInstance(); 
    Date date1=cal.getTime(); 
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yy,HH:mm:ss"); 
    String formattedDate=dateFormat.format(date1); 
    System.out.println("Current time of the day using Calendar - 24 hour format: "+ formattedDate); 
    String[] values = formattedDate.split(","); 
    String date = values[0]; 
    String time = values[1];*/ 

Class.forName("com.mysql.jdbc.Driver"); 
     Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/students","root","root"); 

     Statement statement = connection.createStatement() ; 

     /* String sql = "INSERT INTO TEXTDATA (MachID,Date,Time,Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8,Text9,Text10,Text11,Text12) VALUES ('123','"+date+"','"+time+"','My','hello','thankyou','welcome','visit again','haha','good morning','sweet dreams','hi','hello','night','work')"; 
      ((java.sql.Statement) statement).executeUpdate(sql);*/ 

     ResultSet resultset = statement.executeQuery("select * from textdata order by Date desc, Time desc"); 
     while(resultset.next()){ 
      rowCount++; 
     } 
     int firstrow = rowCount-10; 
     System.out.println(firstrow); 
     if(rowCount > 10){ 
     resultset = statement.executeQuery("select * from textdata where Rowcount>'"+firstrow+"' order by Date desc, Time desc"); 
     }else{ 
     resultset = statement.executeQuery("select * from textdata order by Date desc, Time desc");  
     } 

    %> 



    <TABLE BORDER="1"> 
     <TR> 
      <TH>Mach ID</TH> 
      <TH>Date</TH> 
      <TH>Time</TH> 
      <TH>Text1</TH> 
      <TH>Text2</TH> 
      <TH>Text3</TH> 
      <TH>Text4</TH> 
      <TH>Text5</TH> 
      <TH>Text6</TH> 
      <TH>Text7</TH> 
      <TH>Text8</TH> 
      <TH>Text9</TH> 
      <TH>Text10</TH> 
      <TH>Text11</TH> 
      <TH>Text12</TH> 
     </TR> 
     <% while(resultset.next()){ %> 

     <TR> 
      <TD> <%= resultset.getInt(1) %></td> 
      <TD> <%= resultset.getString(2) %></TD> 
      <TD> <%= resultset.getString(3) %></TD> 
      <TD> <%= resultset.getString(4) %></TD> 
      <TD> <%= resultset.getString(5) %></TD> 
      <TD> <%= resultset.getString(6) %></TD> 
      <TD> <%= resultset.getString(7) %></TD> 
      <TD> <%= resultset.getString(8) %></TD> 
      <TD> <%= resultset.getString(9) %></TD> 
      <TD> <%= resultset.getString(10) %></TD> 
      <TD> <%= resultset.getString(11) %></TD> 
      <TD> <%= resultset.getString(12) %></TD> 
      <TD> <%= resultset.getString(13) %></TD> 
      <TD> <%= resultset.getString(14) %></TD> 
      <TD> <%= resultset.getString(15) %></TD> 

     </TR> 
     <% } %> 
    </TABLE> 
    </div> 
    </br> 

    <form name = "Field_Details" action = "ServletApp" method= "get"> 
    <fieldset style="float: center; width:900px; height: 75px;background-color:ivory; border-color:black;"> 
    <font size = "2">Output Field :</font> <input type="text" name="Text1" maxlength="50" style="height:15px; width:100px; border-color:black"><font size = "2"></font> 
    <font size = "2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MachId :</font> <input type="text" name="Text2" maxlength="15" style="height:15px; width:100px; border-color:black"><font size = "2"></font> 
    <font size = "2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;From Date(dd/mm/yy) :</font> <input type="text" name="Text3" maxlength="8" style="height:15px; width:100px; border-color:black"><font size = "2"></font> 
    <font size = "2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To Date(dd/mm/yy) :</font> <input type="text" name="Text4" maxlength="8" style="height:15px; width:100px; border-color:black"><font size = "2"></font><br><br> 
    <input type= "submit" value="Send" style="height:30px; width:80px; margin-left:15px"> 
    <input type= "submit" value="Search" style="height:30px; width:80px; margin-left:700px" onclick="form.action='FirstServlet';"> 

</BODY> 
</HTML> 
+0

但在你的情況下,你必須刷新整個頁面。因爲表數據來自數據庫。沒有數據庫表不會更新。 – Satya

+0

爲什麼我只想要表格數據改變 – Arun

+0

我正在從數據庫的內容填充表格。我不斷從其他方式向數據庫添加數據。我想要的只是每五秒刷新一次表格。 – Arun

回答

1

JSP是一個服務器端的技術,這意味着如果你想刷新頁面,你將不得不進行到將返回新網頁服務器的請求。通過普通的JSP機制不可能返回頁面的一部分。

如果您只想刷新表格,則需要使用javascript對服務器進行ajax調用以獲取所需的數據,然後使用此數據重新填充表格。

+0

我可以使用javascript和ajax,但請給我一個代碼 – Arun

+0

有很多的教程,請閱讀它們,並嘗試瞭解發生了什麼。這比你爲我寫你的代碼更有益處。這裏有一個教程,讓你開始。 https://netbeans.org/kb/docs/web/ajax-quickstart.html – ewanc

+0

我已經嘗試了一些東西,如創建新的jsp頁面,並複製我想刷新部門的內容。然後在我的主jsp頁面添加了這段代碼 Arun

0

我在NewFile.jsp

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script> 
     var auto = setInterval( function refresh() 
     { 
       $("#result").load("DemoFile.jsp"); 

     }, 5000); // refresh every 5000 milliseconds 
     refresh(); 
</script> 

然後創建一個名爲DemoFile.jsp新的JSP文件,如下修改代碼和複製的NewFile.jsp師,我希望更新的代碼的一部分。