JSP與ajax無重新整理判斷日誌重複並儲存執行個體

來源:互聯網
上載者:User

html頁面

 代碼如下 複製代碼

<%@ page language="java" import="java.util.*,jform.Allclass" contentType="text/html;charset=gb2312"%>  
<jsp:useBean id="log" class="jBean.InsertMessage" scope="page"/>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<title>添加日誌</title>  
<link rel="stylesheet"  href="../css/main.css" type="text/css" />  
<script type="text/javascript">  
  function check_fir()  
{  
    if (document.log.log_title.value== "")  
  {  
    window.alert("請填寫日誌標題!");  
    document.log.log_title.focus();  
    return (false);  
  }  
    if (document.log.showmen.value== "")  
  {  
    window.alert("請填寫日誌作者!");  
    document.log.showmen.focus();  
    return (false);  
  }  
    if (document.log.content.value== "")  
  {  
    window.alert("請填寫日誌內容!");  
    document.log.content.focus();  
    return (false);  
  }  
    if (document.log.log_title.length>2000 || document.log.log_title.length<16)  
  {  
    window.alert("請填寫您的使用者名稱!");  
    document.log.log_title.focus();  
    return (false);  
  }  
}  
   //建立XMLHttpRequest對象   
 function GetO()   
 {   
   var ajax=false;   
    try   
    {   
     ajax = new ActiveXObject("Msxml2.XMLHTTP");   
    }   
    catch (e)   
    {   
      try   
      {   
       ajax = new ActiveXObject("Microsoft.XMLHTTP");   
      }   
      catch (E)   
      {   
       ajax = false;   
      }   
    }   
    if (!ajax && typeof XMLHttpRequest!='undefined')   
    {   
     ajax = new XMLHttpRequest();   
    }   
    return ajax;   
 }   
   
 function getMyHTML(serverPage, objID) {   
   var ajax = GetO();   
    //得到了一個html元素,在下面給這個元素的屬性賦值   
 var obj = document.all[objID];   
    //佈建要求方法及目標,並且設定為非同步提交   
 ajax.open("post", serverPage, true);   
 ajax.onreadystatechange = function()   
 {   
    if (ajax.readyState == 4 && ajax.status == 200)   
    {   
    //innerHTML是HTML元素的屬性,如果您不理解屬性那就理解為HTML元素的變數   
    //ajax.responseText是伺服器的傳回值,把值賦給id=log_title_msg的元素的屬性   
    //innerHTML這個屬性或說這個變數表示一組開始標記和結束標記之間的內容   
     obj.innerHTML = ajax.responseText;   
    }   
   }   
    //發送請求   
 ajax.send(null);   
   }   
   function checkLogTitle()   
   {   
      getMyHTML("logrepeat.jsp?log_title="+document.getElementById("log_title").value, "log_title_msg");   
   }   
   //這個函數的作用是當使用者的焦點從其他地方回到log_title這個輸入框時再給屬性賦回原內容   
 function logTitleMsg(msg)   
   {   
    if(msg=='log_title_msg')   
   {   
      document.all[msg].innerHTML = "<div style='color:red;' align='left'>系統會自動判斷日誌標題是否重複,請關注此提示以避免發布重複文章。</div>";   
     }   
   }  
  </script>  
</head>  
<body>  
<form action="addlog.jsp" method="post" enctype="multipart/form-data" name="log" onSubmit="return check_fir()">  
<table class="ta" width="600" border="0">  
  <tr>  
    <td width="522" height="189" valign="top"><table width="600" border="0">  
     <tr>  
        <td colspan="2" align="center"><strong>發表日誌</strong></td>  
        </tr>  
      <tr>  
        <td width="60" align="left">日誌標題:</td>  
        <td width="452" align="left"><input id="log_title" name="log_title" type="text"size="40" onBlur="javaScript:checkLogTitle();" onFocus="return logTitleMsg('log_title_msg');"  />  
          <span id="log_title_msg" class="intro">*</span></td>  
      </tr>  
      <tr>  
        <td align="left">日誌分類:</td>  
        <td align="left"><select name="class_name">  
        <%  
            Collection c=log.showLogClass();  
            Iterator it=c.iterator();  
            while(it.hasNext())  
            {  
                Allclass log_class=(Allclass)it.next();  
        %>  
          <option value="<%=log_class.getClassname()%>"><%=log_class.getClassname()%></option>  
        <%}%>  
        </select>  
          <span class="intro">*</span>        </td>  
      </tr>  
      <tr>  
        <td align="left">發 布 人:</td>  
        <td align="left"><input name="showmen" type="text" /></td>  
      </tr>  
      <tr>  
        <td align="left">上傳檔案:</td>  
        <td align="left"><input type="file" name="myfile" />  
         </td>  
      </tr>  
      <tr>  
        <td height="1" colspan="2" align="left" bgcolor="00759b"></td>  
        </tr>  
      <tr>  
        <td colspan="2" align="left">日誌內容:<span class="intro">(內容字數限制在2000字以內)</span></td>  
        </tr>  
      <tr>  
        <td colspan="2" align="left" valign="top"><textarea class="content" rows="10" cols="50" name="log_content"></textarea></td>  
      </tr>  
      <tr>  
        <td colspan="2" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="Submit" type="submit"  value="發布日誌">  
          &nbsp;&nbsp;<input name="reset" type="reset" id="reset" value="清除重寫"></td>  
        </tr>  
    </table></td>  
  </tr>  
</table>  
</form>  
</body>  
</html>  

查重前台處理頁面logrepeat.jsp代碼如下

 

 代碼如下 複製代碼
<%@ page language="java" import="java.util.Date" contentType="text/html; charset=gb2312"%>  
<jsp:directive.page import="com.jspsmart.upload.SmartUpload"/>  
<jsp:useBean id="addlog" class="jform.Addlog" scope="request"/>  
<jsp:useBean id="insert" class="jBean.InsertLog" scope="request"/>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>    
    <title>日誌上傳</title>  
  </head>  
    
  <body>  
    <%  
        String is=new String(request.getParameter("log_title").getBytes("ISO-8859-1"), "GBK");  
        try{  
        int isSave=insert.logRepeat(is);   
        if (isSave==-1){  
        out.println("<div style='color:red;' align='left'>日誌重複!</div>");   
        }  
        }  
        catch(Exception ee){out.println("系統出錯");}  
    %>  
  </body>  
</html> 


日誌查重幕後處理檔案InsertLog.java代碼如下:

 代碼如下 複製代碼


/* 
     * 日誌查重 
     */ 
    int isSave=1;  
    public int logRepeat(String log_title)  
    {  
        ResultSet rs=null;  
        Statement stm=null;  
        StringBuffer sb = new StringBuffer();  
        //sb.append("select * from log_add where log_title = ").append("'");  
        //sb.append("這是一個測試的日誌3").append("'");  
        String sq="select * from log_add where log_title = ?";   
        //String sql="select * from log_add where log_title=";   
        try{  
            stm= dd.con.createStatement();  
            pstm=dd.con.prepareStatement(sq);  
            pstm.setString(1, log_title);  
            rs=pstm.executeQuery();  
            //rs=stm.executeQuery(sb.toString());  
            //rs=stm.executeQuery(sq);  
            //rs.next();  
            if(rs.next())isSave=-1;  
            //System.out.println(sb.toString());  
            //System.out.println(log_title);  
            //System.out.println(dd.con);  
            }  
            catch(Exception e){  
                System.out.print(e);  
            }  
            return isSave;  
    } 


上面使用的是N久前的js ajax來實現 了,現在我們可使用jquery+ajax/" target="_blank">jquery ajax來實現,在建立xmlhttp方便jquery ajax方便許多了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.