auto_save.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,java.text.SimpleDateFormat,java.util.Date"%>
  4. <%!
  5.     //保存用户输入内容
  6.     void saveContent(String userName, String content) {
  7.         String sql = "update draft set draft = ? where username = ?";//定义更新数据库的SQL语句
  8.         String sqlInsert = "insert into draft(username, draft) values (?,?)";//定义插入SQL语句
  9.         Connection conn = null;                 //声明Connection对象
  10.         PreparedStatement pstmt = null;         //声明PreparedStatement对象
  11.         try {
  12.             conn = DBUtils.getConnection();     //获取数据库连接
  13.             pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  14.             pstmt.setString(1, content);        //设置草稿内容
  15.             pstmt.setString(2, userName);       //设置用户名
  16.             int rows = pstmt.executeUpdate();   //执行更新
  17.             //如果返回值为0,表示记录尚不存在,改为执行插入语句
  18.             if (rows == 0) {
  19.                 pstmt.close();                  //关闭PreparedStatement
  20.                 pstmt = conn.prepareStatement(sqlInsert);//根据sql创建PreparedStatement
  21.                 pstmt.setString(1, userName);   //设置用户名
  22.                 pstmt.setString(2, content);    //设置草稿内容
  23.                 pstmt.executeUpdate();          //执行插入
  24.             }
  25.         } catch (SQLException e) {
  26.             System.out.println(e.toString());
  27.         } finally {
  28.             DBUtils.close(pstmt);               //关闭PreparedStatement
  29.             DBUtils.close(conn);                //关闭连接
  30.         }
  31.     }
  32.     //获取保存的草稿内容
  33.     String getContent(String userName) {
  34.         String content = null;                  //用于保存草稿内容
  35.         String sql = "select draft from draft where username = ?";   //定义查询数据库的SQL语句
  36.         Connection conn = null;                 //声明Connection对象
  37.         PreparedStatement pstmt = null;         //声明PreparedStatement对象
  38.         ResultSet rs = null;                    //声明ResultSet对象
  39.         try {
  40.             conn = DBUtils.getConnection();     //获取数据库连接
  41.             pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  42.             pstmt.setString(1, userName);       //设置用户名
  43.             rs = pstmt.executeQuery();          //执行查询
  44.             if (rs.next()) {
  45.                 content = rs.getString(1);      //保存获取到的内容
  46.             }
  47.             //如果内容未获取成功,将其改为空字符串
  48.             if (content == null) {
  49.                 content = "";
  50.             }
  51.         } catch (SQLException e) {
  52.             System.out.println(e.toString());
  53.         } finally {
  54.             DBUtils.close(rs);                  //关闭结果集
  55.             DBUtils.close(pstmt);               //关闭PreparedStatement
  56.             DBUtils.close(conn);                //关闭连接
  57.         }
  58.         return content;
  59.     }
  60.     //按格式获取当前时间
  61.     String getNowDate() {
  62.         SimpleDateFormat formatter = new SimpleDateFormat("MM月dd日 HH:mm:ss"); //声明输出格式
  63.         return formatter.format(new Date());
  64.     }
  65. %>
  66. <%
  67.     out.clear();                                        //清空当前的输出内容(空格和换行符)
  68.     request.setCharacterEncoding("UTF-8");              //设置请求体字符编码格式为UTF-8
  69.     String userName = request.getParameter("userName"); //获取用户名
  70.     String content = request.getParameter("content");   //获取用户输入的文本
  71.     String action = request.getParameter("action");     //获取要执行的操作
  72.     //执行保存操作
  73.     if ("save".equals(action)) {
  74.         saveContent(userName, content);                 //保存文本
  75.         out.print("最后保存于 " + getNowDate() + "。"); //输出最后保存时间
  76.     //执行恢复保存结果操作
  77.     } else if ("restore".equals(action)) {
  78.         out.print(getContent(userName));
  79.     //显示用户最终提交内容
  80.     } else {
  81.         %>
  82.         <div>用户名:<%=userName%></div>
  83.         <div>提交内容:</div>
  84.         <div><%=content%></div>
  85.         <%
  86.     }
  87. %>