ajax轮询实用例子之动态更新消息

本文写得有点含糊,主要是在index.jsp实现新消息实时提醒功能,用到了ajax轮询(即隔一段时间发送请求),后台查询响应(

数据库查询新消息数目,然后返回数据,再插入index.js[中实现更新操作




Jsp文件添加如下内容:

<script>



//ajax轮询
setTimeout(function(){
   Push();},
   200);


setInterval(function(){
//alert("定时");
    Push();},
    3000);






function Push(){
//alert("1");
    $.ajax({
        type:"POST",         //采用post方法传递参数
        //url:"Maven_Project/src/main/java/com.chillax.Controller/MyServlet",       
        url:"notice/getNumberNotice",    //服务器端接受请求参数的路径
        data:{userid:"${userid}"},       //采用json格式传递参数到服务器端
        beforeSend:function(){},
        success: function(data){
            var obj=eval("("+data+")");//接受服务器响应的json数据
            if(obj.msg!=0){
      //alert(obj.msg);
                $("#tongzhi-content").html(obj.msg);//更新消息标签中的消息数量
                //$("#tongzhi").show();//消息提示内容,整个部分都显示出来
            }else{
                
            }




        }
    });

}



NoticeConroller部分文件如下:

@RequestMapping("/getNumberNotice")
public void getNumberNotice(HttpServletRequest request,PrintWriter printWriter){

  // Session session=request.getSession().getAttribute("userid");
String userid1 = request.getParameter("userid"); 
int userid=Integer.parseInt(userid1);
String driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=t120170703";
String username="sa";
String password="123456";
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Connection conn;
conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
ResultSet rs=stmt.executeQuery("select COUNT(*) from notice where userId = "+userid+" and stauts = '1'");
JSONObject jsonObject = new JSONObject(); 
if (rs.next()) {
String msgNum1 = rs.getString(1);
int msgNum=Integer.parseInt(msgNum1); //Stringתint
System.out.print(msgNum);
jsonObject.put("msg", msgNum); 
   rs.close();
  stmt.close();
  conn.close();
 printWriter.print(jsonObject.toString());
 } 
}catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}












  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值