首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求教定时查询,该如何解决

2012-02-12 
求教定时查询底层和业务层都已经写好了。现在我用的servlet的方式把数据以请求转发的形式发送到jsp页面上。

求教定时查询
底层和业务层都已经写好了。
现在我用的servlet的方式把数据以请求转发的形式发送到jsp页面上。


我想要的操作:
  页面定时可以 异步 调用servlet获取数据,然后在从servlet返回到原jsp页面。
  如果查询出来的是新数据,则用jquery动态添加tr的方式,添加到table首部。

Java code
package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import util.DBManager;import entity.Information;public class InformationDao {    private Connection con = null;    private PreparedStatement pst = null;    private ResultSet rs = null;        // 查询当天所有gtalk报警信息    public List<Information> queryAll() {                // 按方法所需拼写T-SQL语句        String sql = "SELECT gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "FROM gtalk_alarm "                   + "WHERE TO_DAYS(gtalk_alarm.`DATE`) = TO_DAYS(now()) "                   + "GROUP BY gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "ORDER BY gtalk_alarm.`DATE` DESC";                // 创建数据库连接                       con = DBManager.getConnection();                try {            // 创建数据库操作对象            pst = con.prepareStatement(sql);                        // 执行数据库操作对象并接受结果集            rs = pst.executeQuery();                        // 创建集合            List<Information> infoList = new ArrayList<Information>();                        // 遍历结果集            while(rs.next()){                                // 实例化信息对象                Information info = new Information();                info.setGameType(rs.getString("gtalk_alarm.Game_Type"));                info.setDate(rs.getString("gtalk_alarm.DATE"));                info.setAlarmType(rs.getString("gtalk_alarm.Alarm_Type"));                info.setIp(rs.getString("gtalk_alarm.IP"));                info.setSrv_id(rs.getString("gtalk_alarm.Srv_ID"));                info.setSrv_name(rs.getString("gtalk_alarm.Srv_Name"));                info.setAlarmMessage(rs.getString("gtalk_alarm.Alarm_Message"));                info.setContact(rs.getString("gtalk_alarm.Contact"));                info.setTel(rs.getString("gtalk_alarm.Tel"));                                // 封装对象进集合                infoList.add(info);            }                        return infoList;                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        } finally{            DBManager.close(con,pst,rs);        }    }        // 按集合差值limit查询    public List<Information> queryAll(int limit){        // 按方法所需拼写T-SQL语句        String sql = "SELECT gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "FROM gtalk_alarm "                   + "WHERE TO_DAYS(gtalk_alarm.`DATE`) = TO_DAYS(now()) "                   + "GROUP BY gtalk_alarm.Game_Type,gtalk_alarm.`DATE`,gtalk_alarm.Alarm_Type,gtalk_alarm.IP,gtalk_alarm.Srv_ID,gtalk_alarm.Srv_Name,gtalk_alarm.Alarm_Message,gtalk_alarm.Contact,gtalk_alarm.Tel "                   + "ORDER BY gtalk_alarm.`DATE` DESC limit"+limit;                // 创建数据库连接                       con = DBManager.getConnection();                try {            // 创建数据库操作对象            pst = con.prepareStatement(sql);                        // 执行数据库操作对象并接受结果集            rs = pst.executeQuery();                        // 创建集合            List<Information> infoList = new ArrayList<Information>();                        // 遍历结果集            while(rs.next()){                                // 实例化信息对象                Information info = new Information();                info.setGameType(rs.getString("gtalk_alarm.Game_Type"));                info.setDate(rs.getString("gtalk_alarm.DATE"));                info.setAlarmType(rs.getString("gtalk_alarm.Alarm_Type"));                info.setIp(rs.getString("gtalk_alarm.IP"));                info.setSrv_id(rs.getString("gtalk_alarm.Srv_ID"));                info.setSrv_name(rs.getString("gtalk_alarm.Srv_Name"));                info.setAlarmMessage(rs.getString("gtalk_alarm.Alarm_Message"));                info.setContact(rs.getString("gtalk_alarm.Contact"));                info.setTel(rs.getString("gtalk_alarm.Tel"));                                // 封装对象进集合                infoList.add(info);            }                        return infoList;                    } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        } finally{            DBManager.close(con,pst,rs);        }    }    }package servlet;import java.io.IOException;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 service.InformationService;import entity.Information;public class InformationServlet extends HttpServlet {    InformationService informationService = new InformationService();    List<Information> infoList = new ArrayList<Information>();    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request, response);    }    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        infoList = informationService.getInformationList();        request.setAttribute("infoList", infoList);        request.getRequestDispatcher("index.jsp").forward(request, response);    }} 



HTML code
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%    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="/gtalk/js/jquery/themes/gray/easyui.css">        <link rel="stylesheet" type="text/css" href="/gtalk/js/jquery/themes/icon.css">        <script type="text/javascript" src="/gtalk/js/jquery/jquery-1.4.2.min.js"></script>        <script type="text/javascript" src="/gtalk/js/jquery/jquery.easyui.min.js"></script>    </head>    <style type="text/css">        body {            font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica,sans-serif;            color: #4f6b72;            background: #E6EAE9;        }                a {            color: #c75f3e;        }                #mytable {            width: 100%;            padding: 0;            margin: 0;            vertical-align: center;        }                caption {            padding: 0 0 5px 0;            width: 700px;            font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;            text-align: right;        }                th {            font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;            color: #4f6b72;            border-right: 1px solid #C1DAD7;            border-bottom: 1px solid #C1DAD7;            border-top: 1px solid #C1DAD7;            letter-spacing: 2px;            text-transform: uppercase;            text-align: left;            padding: 6px 6px 6px 12px;            background: #CAE8EA no-repeat;        }                th.nobg {            border-top: 0;            border-left: 0;            border-right: 1px solid #C1DAD7;            background: none;        }                td {            border-right: 1px solid #C1DAD7;            border-bottom: 1px solid #C1DAD7;            background: #fff;            font-size: 11px;            padding: 6px 6px 6px 12px;            color: #4f6b72;        }                td.alt {            background: #F5FAFA;            color: #797268;        }                th.spec {            border-left: 1px solid #C1DAD7;            border-top: 0;            background: #fff no-repeat;            font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;        }                th.specalt {            border-left: 1px solid #C1DAD7;            border-top: 0;            background: #f5fafa no-repeat;            font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;            color: #797268;        }  /*---------for IE 5.x bug*/        html>body td {            font-size: 11px;        }                body,td,th {            font-family: 宋体, Arial;            font-size: 12px;        }    </style>    <script>        function checkTime(){        window.location = 'information';    }    </script>    <body >        <table id="mytable" cellspacing="0">            <caption> </caption>            <tr>                <th scope="col">游戏类型</th>                <th scope="col">报警时间</th>                <th scope="col">报警类型</th>                <th scope="col">IP地址</th>                <th scope="col">服务编号</th>                <th scope="col">服务名称</th>                <th scope="col">报警信息</th>                <th scope="col">联系人</th>                <th scope="col">联系方式</th>            </tr>            <c:forEach var="information" items="${infoList}">                <tr>                    <td class="row">${information.gameType }</td>                    <td class="row">${information.date }</td>                    <td class="row">${information.alarmType }</td>                    <td class="row">${information.ip }</td>                    <td class="row">${information.srv_id }</td>                    <td class="row">${information.srv_name }</td>                    <td class="row">${information.alarmMessage }</td>                    <td class="row">${information.contact }</td>                    <td class="row">${information.tel }</td>                </tr>            </c:forEach>        </table>        <script>            window.setInterval("checkTime()",600000);        </script>    </body>    </html> 



[解决办法]
写一个监听方法吧,每过多长时间调用一次的那种···
[解决办法]
Timer,可以写个定时器,可以参考下这个:http://blog.sina.com.cn/s/blog_6a4ddf060100m4gk.html
[解决办法]
spring有个定时器的封装文件,xml的,如有需要,给我留言!很好用的,不知道LZ有帮助没?
[解决办法]
url : 'information'

这个地址确保能访问?
[解决办法]
先用写死的几个值试试
[解决办法]
可以用quartz
[解决办法]
探讨

我单独在循环外面写alert(items),是可以看到里面的东西的。
[{"GameType":"aaaaa","Date":"2012-01-16"}]
但是我在循环里面写alert(item.GameType);
这样弹不出来

热点排行