您的位置:首页 > Web前端 > JQuery

使用jQuery的Ajax功能,完成轮询邮箱功能

2018-04-03 17:21 507 查看
使用C3P0数据库连接池;先导入相关jar包(jQuery的jar包以及C3P0相关配置)
创建Email对象:
package pojo;

import java.sql.Date;

public class Email {
private int eid;
private String sender;
private Date sendtime;
private String title;
private String content;
private int state;

public Email() {
}

public Email(int eid, String sender, Date sendtime, String title,
String content, int state) {
super();
this.eid = eid;
this.sender = sender;
this.sendtime = sendtime;
this.title = title;
this.content = content;
this.state = state;
}

public int getEid() {
return eid;
}

public void setEid(int eid) {
this.eid = eid;
}

public String getSender() {
return sender;
}

public void setSender(String sender) {
this.sender = sender;
}

public Date getSendtime() {
return sendtime;
}

public void setSendtime(Date sendtime) {
this.sendtime = sendtime;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}

public int getState() {
return state;
}

public void setState(int state) {
this.state = state;
}

}

MySQL数据库有关代码:package util;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import pojo.Email;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBUtil {
private static ComboPooledDataSource ds;
static{
ds=new ComboPooledDataSource();
}
//1表示已读,0表示未读
public static List<Email> findBystate(){
List<Email> list=new ArrayList<Email>();
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
conn=ds.getConnection();
String sql="select * from email where state=0";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
int eid=rs.getInt("eid");
String sender=rs.getString("sender");
Date sendtime=rs.getDate("sendtime");
String title=rs.getString("title");
String content=rs.getString("content");
int state=rs.getInt("state");
Email email=new Email(eid,sender,sendtime,title,content,state);
list.add(email);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}

public static int update(){
int count=0;
Connection conn=null;
PreparedStatement ps=null;
try {
conn=ds.getConnection();
String sql="update email set state=1 where state=0";
ps=conn.prepareStatement(sql);
count=ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
}

EmailServlet:package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pojo.Email;
import util.DBUtil;

@WebServlet(name = "EmailServlet", urlPatterns = { "/emailServlet" })
public class EmailServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setHeader("content-type","application/x-www-form-urlencoded");
resp.setCharacterEncoding("utf-8");
PrintWriter pw=resp.getWriter();
StringBuffer sb=new StringBuffer();
List<Email> list=DBUtil.findBystate();
for(Email email:list){
int eid=email.getEid();
String sender=email.getSender();
Date sendtime=email.getSendtime();
String title=email.getTitle();
String content=email.getContent();
sb.append("<h4>邮件编号:"+eid+"</h4>").append("<h3>发件人:"+sender+"</h3>")
.append("<h3>发送时间:"+sendtime+"</h3>").append("<h3>标题:"+title+"</h3>")
.append("<h4>邮件内容:"+content+"</h4>").append("<hr/>");
}
pw.println(sb);
pw.flush();
pw.close();
// DBUtil.update(); //改变邮件状态
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}Email.jsp<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>轮询邮箱</title>
<script type="text/javascript" src="js/jquery-3.1.1.js"></script>
<script type="text/javascript">
function check() {
$.get("/EmailAjaxS/emailServlet", function(data) {
$("#mydiv").html(data);
});
}

$(function() {
setInterval("check()", 5000)
});
</script>
</head>
<body>
<div id="mydiv"></div>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: