chatroom.jsp
上传用户:shjgzm
上传日期:2017-08-31
资源大小:2757k
文件大小:4k
源码类别:

Ajax

开发平台:

Java

  1. <%@ page contentType="text/html; charset=UTF-8"%>
  2. <%@ page language="java"%>
  3. <%@ page import="java.sql.*,ajax.db.DBUtils"%>
  4. <%
  5.     request.setCharacterEncoding("UTF-8");          //设置请求体字符编码格式为UTF-8
  6.     out.clear();                                    //清空当前的输出内容(空格和换行符)
  7.     String action = request.getParameter("action"); //获取操作类型
  8.     int lastId = Integer.parseInt(request.getParameter("lastId"));  //获取客户最后读取发言id
  9.     //处理发言请求
  10.     if ("send".equals(action)) {
  11.         String userName = request.getParameter("userName");         //获取用户名
  12.         String msg = request.getParameter("msg");                   //获取用户发言信息
  13.         String insertSql = "insert into chatmsg(username, chatmsg) values (?,?)";//定义保存发言的SQL语句
  14.         Connection conn = null;                                     //声明Connection对象
  15.         PreparedStatement pstmt = null;                             //声明PreparedStatement对象
  16.         ResultSet rs = null;                                        //声明ResultSet对象
  17.         try {
  18.             conn = DBUtils.getConnection();                         //获取数据库连接
  19.             pstmt = conn.prepareStatement(insertSql);               //根据sql创建PreparedStatement
  20.             pstmt.setString(1, userName);                           //设置用户名
  21.             pstmt.setString(2, msg);                                //设置发言
  22.             pstmt.executeUpdate();                                  //写入数据库
  23.         } catch (SQLException e) {
  24.             System.out.println(e.toString());
  25.         } finally {
  26.             DBUtils.close(rs);                                      //关闭结果集
  27.             DBUtils.close(pstmt);                                   //关闭PreparedStatement
  28.             DBUtils.close(conn);                                    //关闭连接
  29.         }
  30.     }
  31.     String sql = "select id, username, chatmsg from chatmsg where id > ? order by id asc";//定义查询数据库的SQL语句
  32.     StringBuffer newMsg = new StringBuffer("{'msg':'");             //保存查询结果
  33.     Connection conn = null;                     //声明Connection对象
  34.     PreparedStatement pstmt = null;             //声明PreparedStatement对象
  35.     ResultSet rs = null;                        //声明ResultSet对象
  36.     try {
  37.         conn = DBUtils.getConnection();         //获取数据库连接
  38.         pstmt = conn.prepareStatement(sql);     //根据sql创建PreparedStatement
  39.         pstmt.setInt(1, lastId);                //设置参数
  40.         rs = pstmt.executeQuery();              //执行查询,返回结果集
  41.         //遍历结果集,创建发言信息
  42.         while (rs.next()) {
  43.             lastId = rs.getInt("id");           //将id设置为lastId
  44.             newMsg.append("<div class="oneMsg"><span class="userName">");
  45.             newMsg.append(rs.getString("username"));
  46.             newMsg.append("</span> 说:");
  47.             newMsg.append(rs.getString("chatmsg"));
  48.             newMsg.append("</div>");
  49.         }
  50.     } catch (SQLException e) {
  51.         System.out.println(e.toString());
  52.     } finally {
  53.         DBUtils.close(rs);                      //关闭结果集
  54.         DBUtils.close(pstmt);                   //关闭PreparedStatement
  55.         DBUtils.close(conn);                    //关闭连接
  56.     }
  57.     newMsg.append("','lastId':");
  58.     newMsg.append(lastId);                      //将最后的id值写入查询结果
  59.     newMsg.append("}");
  60.     out.print(newMsg.toString());               //输出查询结果
  61. %>