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

Ajax

开发平台:

Java

  1. <%@ page contentType="text/plain; charset=UTF-8"%>
  2. <%@ page language="java"%>
  3. <%@ page import="java.sql.*,ajax.db.DBUtils"%>
  4. <%!
  5.     //检查单词在数据库中是否存在
  6.     boolean checkWord(String word) {
  7.         boolean result = false;                 //存放检查结果
  8.         String sql = "select id from words where word = ?";   //定义查询数据库的SQL语句
  9.         Connection conn = null;                 //声明Connection对象
  10.         PreparedStatement pstmt = null;         //声明PreparedStatement对象
  11.         ResultSet rs = null;                    //声明ResultSet对象
  12.         try {
  13.             conn = DBUtils.getConnection();     //获取数据库连接
  14.             pstmt = conn.prepareStatement(sql); //根据sql创建PreparedStatement
  15.             pstmt.setString(1, word);           //设置参数
  16.             rs = pstmt.executeQuery();          //执行查询,返回结果集
  17.             if (rs.next()) {
  18.                 result = true;
  19.             }
  20.         } catch (SQLException e) {
  21.             System.out.println(e.toString());
  22.         } finally {
  23.             DBUtils.close(rs);                  //关闭结果集
  24.             DBUtils.close(pstmt);               //关闭PreparedStatement
  25.             DBUtils.close(conn);                //关闭连接
  26.         }
  27.         return result;
  28.     }
  29.     //解析单词,去除常见标点
  30.     String parseWord (String srcWord) {
  31.         String lastChar = srcWord.substring(srcWord.length()-1);    //获取单词最后的字符
  32.         //如果最后的字符是常见标点,则去掉后返回,否则直接返回原字符
  33.         if (".".equals(lastChar) || ",".equals(lastChar) ||
  34.             "!".equals(lastChar) || "?".equals(lastChar)) {
  35.             return srcWord.substring(0,srcWord.length()-1);
  36.         } else {
  37.             return srcWord;
  38.         }
  39.     }
  40. %>
  41. <%
  42.     out.clear();                                        //清空当前的输出内容(空格和换行符)
  43.     String text = request.getParameter("text");         //获取用户输入的文本
  44.     StringBuffer result = new StringBuffer();           //用于保存结果的StringBuffer
  45.     String[] words = text.split(" ");                   //将字符用空格分隔为字符串数组
  46.     String srcWord = null;                              //保存原始字符
  47.     String word = null;                                 //保存去除标点后的字符
  48.     //遍历每个单词,在数据库中查找是否存在
  49.     for (int i=0; i<words.length; i++) {
  50.         srcWord = words[i];
  51.         //当切分的字符不包含内容时跳过本次循环
  52.         if ("".equals(srcWord)) {
  53.             continue;
  54.         }
  55.         word = parseWord(srcWord);                      //去除标点
  56.         //检查单词是否存在,不存在时将单词放在span标签内返回
  57.         if (checkWord(word)) {
  58.             result.append(srcWord);
  59.         } else {
  60.             result.append("<span class='warn'>");
  61.             result.append(srcWord);
  62.             result.append("</span>");
  63.         }
  64.         result.append(" ");                             //每个单词后增加一个空格
  65.     }
  66.     out.print(result.toString());                       //将检查结果写入响应体
  67. %>