⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auto_save.jsp

📁 Ajax经典实例大全
💻 JSP
字号:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page language="java"%>
<%@ page import="java.sql.*,ajax.db.DBUtils,java.text.SimpleDateFormat,java.util.Date"%>
<%!
    //保存用户输入内容
    void saveContent(String userName, String content) {
        String sql = "update draft set draft = ? where username = ?";//定义更新数据库的SQL语句
        String sqlInsert = "insert into draft(username, draft) values (?,?)";//定义插入SQL语句
        Connection conn = null;                 //声明Connection对象
        PreparedStatement pstmt = null;         //声明PreparedStatement对象
        try {
            conn = DBUtils.getConnection();     //获取数据库连接
            pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
            pstmt.setString(1, content);        //设置草稿内容
            pstmt.setString(2, userName);       //设置用户名
            int rows = pstmt.executeUpdate();   //执行更新
            //如果返回值为0,表示记录尚不存在,改为执行插入语句
            if (rows == 0) {
                pstmt.close();                  //关闭PreparedStatement
                pstmt = conn.prepareStatement(sqlInsert);//根据sql创建PreparedStatement
                pstmt.setString(1, userName);   //设置用户名
                pstmt.setString(2, content);    //设置草稿内容
                pstmt.executeUpdate();          //执行插入
            }
        } catch (SQLException e) {
            System.out.println(e.toString());
        } finally {
            DBUtils.close(pstmt);               //关闭PreparedStatement
            DBUtils.close(conn);                //关闭连接
        }
    }

    //获取保存的草稿内容
    String getContent(String userName) {
        String content = null;                  //用于保存草稿内容
        String sql = "select draft from draft where username = ?";   //定义查询数据库的SQL语句
        Connection conn = null;                 //声明Connection对象
        PreparedStatement pstmt = null;         //声明PreparedStatement对象
        ResultSet rs = null;                    //声明ResultSet对象
        try {
            conn = DBUtils.getConnection();     //获取数据库连接
            pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
            pstmt.setString(1, userName);       //设置用户名
            rs = pstmt.executeQuery();          //执行查询
            if (rs.next()) {
                content = rs.getString(1);      //保存获取到的内容
            }
            //如果内容未获取成功,将其改为空字符串
            if (content == null) {
                content = "";
            }
        } catch (SQLException e) {
            System.out.println(e.toString());
        } finally {
            DBUtils.close(rs);                  //关闭结果集
            DBUtils.close(pstmt);               //关闭PreparedStatement
            DBUtils.close(conn);                //关闭连接
        }
        return content;
    }

    //按格式获取当前时间
    String getNowDate() {
        SimpleDateFormat formatter = new SimpleDateFormat("MM月dd日 HH:mm:ss"); //声明输出格式
        return formatter.format(new Date());
    }

%>
<%
    out.clear();                                        //清空当前的输出内容(空格和换行符)
    request.setCharacterEncoding("UTF-8");              //设置请求体字符编码格式为UTF-8

    String userName = request.getParameter("userName"); //获取用户名
    String content = request.getParameter("content");   //获取用户输入的文本
    String action = request.getParameter("action");     //获取要执行的操作

    //执行保存操作
    if ("save".equals(action)) {
        saveContent(userName, content);                 //保存文本
        out.print("最后保存于 " + getNowDate() + "。"); //输出最后保存时间
    //执行恢复保存结果操作
    } else if ("restore".equals(action)) {
        out.print(getContent(userName));
    //显示用户最终提交内容
    } else {
        %>
        <div>用户名:<%=userName%></div>
        <div>提交内容:</div>
        <div><%=content%></div>
        <%
    }
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -