<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 44,  comments - 48,  trackbacks - 0
      2007年4月27日
    1.下載所需軟件
        1.1SVN服務(wù)端(svn-1.4.3-setup.exe)
            http://subversion.tigris.org/project_packages.html
        1.2把SVN設(shè)置成window服務(wù)(SVNService.exe)
            我沒有下載地址,如有需要,留下你的email
        1.3Eclipse的SVN插件(用Eclipse插件下載):

    2.配置服務(wù)端
        2.1安裝svn-1.4.3-setup.exe
        2.2開始->運(yùn)行->cmd->進(jìn)入SVN服務(wù)端的安裝目錄下面的bin目錄
        2.3cmd下運(yùn)行svnadmin create SVN庫的位置(如:D:\SVN_PRJ)
        2.4復(fù)制SVNService.exe到SVN服務(wù)端安裝目錄下的bin目錄
        2.5cmd下運(yùn)行SVNService -install -d -r D:\SVN_PRJ(SVN庫的位置)
        2.6如果想撤消掉后臺服務(wù),則運(yùn)行SVNService -remove
        2.7進(jìn)入D:\SVN_PRJ\conf目錄下編輯svnserve.conf,內(nèi)容如下(切記下面幾行字前不能有空格):
            [general]
            anon-access = read    #匿名訪問權(quán)限,取值為read,write,none
            auth-access = write   #認(rèn)證用戶的權(quán)限
            password-db = passwd #認(rèn)證用戶數(shù)據(jù)庫,即允許連到SVN的用戶(當(dāng)前目錄下的passwd文件中存放的用戶及密碼)
            realm = TESTING       #在用戶認(rèn)證界面上出現(xiàn)的提示語句
        2.8編輯D:\SVN_PRJ\conf\passwd文件,內(nèi)容如下
            [users]
            test = password       #這時你連接SVN的時候可以使用用戶名為test密碼為password來連接SVN
        2.9開始->設(shè)置->控制面板->管理工具->服務(wù)->啟動SVNService服務(wù)

    3.Eclipse下配置SVN插件
        3.1幫助->軟件更新->查找并安裝->搜索要安裝的新功能部件->新建遠(yuǎn)程站點(diǎn)->輸入一個任意的名稱->URL輸入

    http://subclipse.tigris.org/update_1.2.x->確定->選中你剛才添加的遠(yuǎn)程站點(diǎn)->完成->選中Subclipse->執(zhí)行安裝操作
        3.2窗口->打開透視圖->SVN資源庫研究->右鍵->新建->資源庫位置->URL中輸入svn://127.0.0.1/->輸入2.7定義的用戶名test和密碼

    password

    4.提交工程
        4.1右擊工程->小組->共享項(xiàng)目->選擇SVN->選擇svn://127.0.0.1(如果沒有,則創(chuàng)建一個新的資源庫)->下一步->完成

    5.下載工程
        5.1在SVN資源庫透視圖下,點(diǎn)開svn://127.0.0.1,會顯示出現(xiàn)在本機(jī)SVN上的所有工程,右擊你想下載的工程->檢出為->下一步->完成

    6.基本操作
        6.1同步
            在MyEclipse J2EE透視圖下,右擊你要同步的工程->小組->與資源庫同步->這時會進(jìn)入同步透視圖,會顯示出本機(jī)與SVN上內(nèi)容有不同的文件,雙擊文件名,會顯示出兩個文件中哪里不同;
        6.2提交
            在同步透視圖下有"灰色向右的箭頭,表示你本機(jī)修改過",右擊該文件,可以選擇提交操作;
        6.3覆蓋/更新
            在同步透視圖下有"藍(lán)色向左的箭頭,表示你本機(jī)修改過",右擊該文件,可以選擇覆蓋/更新操作;

    7.圖標(biāo)說明
        7.1灰色向右箭頭:本地修改過
        7.2藍(lán)色向左箭頭:SVN上修改過
        7.3灰色向右且中間有個加號的箭頭:本地比SVN上多出的文件
        7.4藍(lán)色向左且中間有個加號的箭頭:SVN上比本地多出的文件
        7.5灰色向右且中間有個減號的箭頭:本地刪除了,而SVN上未刪除的文件
        7.6藍(lán)色向左且中間有個減號的箭頭:SVN上刪除了,而本地未刪除的文件
        7.7紅色雙向箭頭:SVN上修改過,本地也修改過的文件

    8.一些我遇到的出錯信息
        8.1在上面講的3.2步輸入URL(svn://127.0.0.1)點(diǎn)下一步出現(xiàn)"svnserve.conf:12: Option expected"錯誤
            你打開svnserve.conf文件中的第12行,該錯誤是由于該行的前面有空格引起的,把左邊多出的空格刪除掉即可;
        8.2在上面講的3.2步輸入URL(svn://127.0.0.1/SVN_PRJ)點(diǎn)下一步出現(xiàn)"svn://127.0.0.1/SVN_PRJ non-existent in revision '7'"錯誤
            URL錯了,應(yīng)該輸入svn://127.0.0.1即可
    9.SVN服務(wù)端自帶的基于命令行的操作語句
        9.1設(shè)置SVN服務(wù)端安裝目錄下的/bin到環(huán)境變量中;
        9.2在命令行下運(yùn)行svn import c:/test svn://127.0.0.1/test -m "initial import" --username test --password passwd可進(jìn)行上傳操作
        9.3進(jìn)入你要檢出的目錄,在命令行下運(yùn)行svn checkout svn://127.0.0.1/test --username test -password passwd 可進(jìn)行檢出工程的操作
        9.4在命令行下運(yùn)行svn commit test.txt -m "modified" --username test -password passwd 可進(jìn)行提交操作
        9.5在命令行下運(yùn)行svn update -r HEAD test.txt --username test -password passwd 可進(jìn)行更新操作

    注:上面講的127.0.0.1可以換成外網(wǎng)IP,或者局域網(wǎng)IP皆可(即,在家里創(chuàng)建一個SVN服務(wù)端,即可在公司去訪問家里的SVN)
    posted @ 2008-01-05 23:40 摩西 閱讀(38591) | 評論 (6)編輯 收藏

    import java.io.UnsupportedEncodingException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class TempClass {

     /**
      * @param args
      * @throws UnsupportedEncodingException
      * @throws ClassNotFoundException
      * @throws SQLException
      */
     public static void main(String[] args) throws UnsupportedEncodingException {
      String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=tran";
      try {
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
       Connection conn = DriverManager.getConnection(url, "sa", "sa");
       Statement st = conn.createStatement();
       ResultSet rs = st.executeQuery("select vcword from cn_other");

       // mysql
       String url_mysql = "jdbc:mysql://127.0.0.1:3306/zwspace";
       Class.forName("org.gjt.mm.mysql.Driver");
       Connection conn_mysql = DriverManager.getConnection(url_mysql,
         "root", "root");
       PreparedStatement st_mysql = conn_mysql
         .prepareStatement("insert into chds_cihui(name) values(?)");

       if (rs.next()) {

        String rsname = rs.getString("vcword");
        // String name = new String(rsname.getBytes("GB2312"),
        // "GB2312");
        // String name = new String(rsname.getBytes("UTF-8"), "GB2312");
        // String name = new String(rsname.getBytes("utf8"), "GB2312");
        // String name = new String(rsname.getBytes("iso-8859-1"),
        // "GB2312");
        // String name = new String(rsname.getBytes("GBK"), "GB2312");

        // String name = new String(rsname.getBytes("GBK"), "GBK");
        // String name = new String(rsname.getBytes("GB2312"), "GBK");
        // String name = new String(rsname.getBytes("UTF-8"), "GBK");
        // String name = new String(rsname.getBytes("iso-8859-1"),
        // "GBK");

        // String name = new String(rsname.getBytes("GBK"), "UTF-8");
        // String name = new String(rsname.getBytes("GB2312"), "UTF-8");
        // String name = new String(rsname.getBytes("UTF-8"), "UTF-8");
        // String name = new String(rsname.getBytes("iso-8859-1"),
        // "UTF-8");

        // String name = new String(rsname.getBytes("GBK"),
        // "iso-8859-1");
        // String name = new String(rsname.getBytes("GB2312"),
        // "iso-8859-1");
        // String name = new String(rsname.getBytes("UTF-8"),
        // "iso-8859-1");
        // String name = new String(rsname.getBytes("iso-8859-1"),
        // "iso-8859-1");

        // String name = new String(rsname.getBytes(), "GBK");
        // String name = new String(rsname.getBytes(), "GB2312");
        // String name = new String(rsname.getBytes(), "UTF-8");
        // String name = new String(rsname.getBytes(), "iso-8859-1");
        String name = rsname;

        System.out.println(rsname);

        st_mysql.setString(1, name);
        st_mysql.executeUpdate();
       }
       rs.close();
       st.close();
       conn.close();

       st_mysql.close();
       conn_mysql.close();

      } catch (ClassNotFoundException e) {
       e.printStackTrace();
      } catch (SQLException e) {
       e.printStackTrace();
      }
     }

    }



    試過以上的所有編碼都無法解決數(shù)據(jù)在MYSQL中的亂碼問題,看來是jdbc連mysql時的編碼不對,于是
    將   String url_mysql="jdbc:mysql://127.0.0.1:3306/zwspace";后加上編碼
       String url_mysql="jdbc:mysql://127.0.0.1:3306/zwspace?useUnicode=true&characterEncoding=utf8";終于OK了

    posted @ 2007-11-20 15:21 摩西 閱讀(862) | 評論 (0)編輯 收藏
    在使用hibernate項(xiàng)目中,持久化類的ID用Long與long有很大區(qū)別!!
    用long 作為id,當(dāng)一個新的臨時類要持久化時會報一個這種錯:
    Exception executing batch: org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
    因?yàn)檫@個臨時類,已經(jīng)有一個id=0 (long的默認(rèn)值);這時hibernate 為錯認(rèn)為這是一條持久化類,從而進(jìn)行更新操作,故報錯!!
    這時把持久類的id 類型改成Long 就OK了,再create 時,臨時類的id為null ,hibernate 才會正確的判斷這是臨時類而進(jìn)行save操作!!
    posted @ 2007-09-28 11:42 摩西 閱讀(2445) | 評論 (1)編輯 收藏
                    user.getUserinfo().setSex(new String(pu.getSex().getBytes("ISO8859_1"),"GB2312"));
                    user.setNickname(new String(pu.getName().getBytes("ISO8859_1"),"GB2312"));
                    userService.createUser(user);
     

                String(byte[] bytes, int offset, int length, String charsetName) 
                 通過使用指定的字符集解碼指定的 byte 子數(shù)組,構(gòu)造一個新的 String。 
                
     byte[] getBytes(String charsetName)
              使用指定的字符集將此 String 編碼為 byte 序列,并將結(jié)果存儲到一個新的 byte 數(shù)組中



    #800080      

    #7B7D62

    #56B6E9

    #4B8D32

    posted @ 2007-08-29 13:45 摩西 閱讀(420) | 評論 (0)編輯 收藏
    <script language="JavaScript">
    function doZoom(size){

     document.getElementById("zwsky_content").style.fontSize=size+'px'
    }
     function ReImgSize(){
       for (j=0;j<document.images.length;j++)
       {
         if (document.images[j].src.indexOf("www.***.com/back") >0)
         document.images[j].src=document.images[j].src.replace("www.***.com/back","back.****.com/back");
       }
     }
    </script>

    ............................


    <body  bottommargin="0" leftmargin="0" rightmargin="0" topmargin="0" onload="ReImgSize()">
    posted @ 2007-08-23 17:47 摩西 閱讀(350) | 評論 (0)編輯 收藏
    <input type="button" name="Submit3" value="搜 索"  onClick="location.href='SearchResult.jsp?cluster_node_id=&key_word=' + document.CMS4JSearchForm.KEY_WORD.value + '&db_id=' + document.CMS4JSearchForm.DB_ID.value;">
    posted @ 2007-08-21 10:51 摩西 閱讀(1889) | 評論 (0)編輯 收藏
    這個錯誤我一共遇到過兩次,一直沒有找到很好的解決方案,這個錯誤產(chǎn)生原因相信大家都知道,因?yàn)樵趆ibernate中同一個session里面有了兩個相同標(biāo)識但是是不同實(shí)體.
    一開始按網(wǎng)上說的用session.merge(Object)報了一個錯,可能是沒有用好,改用 session.clear(); session.update(user);這樣就OK了,
    方法為:

    package org.springframework.orm.hibernate3.support;
    ...
        public void modifyByMerge(User user) {
            Session session = getHibernateTemplate().getSessionFactory().
                              getCurrentSession();
            session.clear();
            session.update(user);
        }
    ...
    項(xiàng)目用的是spring + hibernate所以得用
    getHibernateTemplate().getSessionFactory().getCurrentSession();得當(dāng)前Session


    posted @ 2007-08-20 11:29 摩西 閱讀(29506) | 評論 (9)編輯 收藏

         上一次在做交友模板時,出來了這種問題,后來才發(fā)現(xiàn)是hibernate的一個映射文件配錯了,今天在做DC攝影時,
    映射文件加了一個lazy="false" fetch="join"  結(jié)果,也出現(xiàn)了數(shù)據(jù)重復(fù)取。
    <many-to-one name="user" column="user_id"  class="com.zwspace.domain.User" lazy="false" fetch="join" />
    這樣也會有錯嗎!想不通,只能把它給刪了。


    posted @ 2007-08-14 16:53 摩西 閱讀(699) | 評論 (0)編輯 收藏

    js驗(yàn)證表單大全
    1. 長度限制
    <script>
    function test()
    {
    if(document.a.b.value.length>50)
    {
    alert("不能超過50個字符!");
    document.a.b.focus();
    return false;
    }
    }
    </script>
    <form name=a onsubmit="return test()">
    <textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
    <input type="submit" name="Submit" value="check">
    </form>

    2. 只能是漢字
    <input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

    3." 只能是英文
    <script language=javascript>
    function onlyEng()
    {
    if(!(event.keyCode>=65&&event.keyCode<=90))
    event.returnvalue=false;
    }
    </script>

    <input onkeydown="onlyEng();">

    4. 只能是數(shù)字
    <script language=javascript>
    function onlyNum()
    {
    if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
    //考慮小鍵盤上的數(shù)字鍵
    event.returnvalue=false;
    }
    </script>

    <input onkeydown="onlyNum();">

    5. 只能是英文字符和數(shù)字
    <input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

    6. 驗(yàn)證油箱格式
    <SCRIPT LANGUAGE=javascript RUNAT=Server>
    function isEmail(strEmail) {
    if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
    return true;
    else
    alert("oh");
    }
    </SCRIPT>
    <input type=text onblur=isEmail(this.value)>

    7. 屏蔽關(guān)鍵字(這里屏蔽***和****)
    <script language="javascript1.2">
    function test() {
    if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
    alert(":)");
    a.b.focus();
    return false;}
    }
    </script>
    <form name=a onsubmit="return test()">
    <input type=text name=b>
    <input type="submit" name="Submit" value="check">
    </form>

    8. 兩次輸入密碼是否相同
    <FORM METHOD=POST ACTION="">
    <input type="password" id="input1">
    <input type="password" id="input2">
    <input type="button" value="test" onclick="check()">
    </FORM>
    <script>
    function check()
    {
    with(document.all){
    if(input1.value!=input2.value)
    {
    alert("false")
    input1.value = "";
    input2.value = "";
    }
    else document.forms[0].submit();
    }
    }
    </script>
    夠了吧 :)
    屏蔽右鍵 很酷
    oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
    加在body中


    2.1  表單項(xiàng)不能為空

    <script  language="javascript">
    <!--
    function  CheckForm()

    if  (document.form.name.value.length  ==  0)  { 
    alert("請輸入您姓名!");
    document.form.name.focus();
    return  false;
    }
    return  true;
    }
    -->
    </script>

    2.2  比較兩個表單項(xiàng)的值是否相同

    <script  language="javascript">
    <!--
    function  CheckForm()
    if  (document.form.PWD.value  !=  document.form.PWD_Again.value)  { 
    alert("您兩次輸入的密碼不一樣!請重新輸入.");
    document.ADDUser.PWD.focus();
    return  false;
    }
    return  true;
    }
    -->
    </script>

    2.3  表單項(xiàng)只能為數(shù)字和"_",用于電話/銀行帳號驗(yàn)證上,可擴(kuò)展到域名注冊等

    <script  language="javascript">
    <!--
    function  isNumber(String)

    var  Letters  =  "1234567890-";  //可以自己增加可輸入值
    var  i;
    var  c;
    if(String.charAt(  0  )=='-')
    return  false;
    if(  String.charAt(  String.length  -  1  )  ==  '-'  )
    return  false;
    for(  i  =  0;  i  <  String.length;  i  ++  )

    c  =  String.charAt(  i  );
    if  (Letters.indexOf(  c  )  <  0)
    return  false;
    }
    return  true;
    }
    function  CheckForm()

    if(!  isNumber(document.form.TEL.value))  { 
    alert("您的電話號碼不合法!");
    document.form.TEL.focus();
    return  false;
    }
    return  true;
    }
    -->
    </script>


    2.4  表單項(xiàng)輸入數(shù)值/長度限定

    <script  language="javascript">
    <!--
    function  CheckForm() 

    if  (document.form.count.value  >  100  ||  document.form.count.value  <  1)

    alert("輸入數(shù)值不能小于零大于100!");
    document.form.count.focus();
    return  false;
    }
    if  (document.form.MESSAGE.value.length<10)

    alert("輸入文字小于10!");
    document.form.MESSAGE.focus();
    return  false;
    }
    return  true;
    }
    //-->
    </script>

    2.5  中文/英文/數(shù)字/郵件地址合法性判斷

    <SCRIPT  LANGUAGE="javascript">
    <!--

    function  isEnglish(name)  //英文值檢測

    if(name.length  ==  0)
    return  false;
    for(i  =  0;  i  <  name.length;  i++)  { 
    if(name.charCodeAt(i)  >  128)
    return  false;
    }
    return  true;
    }

    function  isChinese(name)  //中文值檢測

    if(name.length  ==  0)
    return  false;
    for(i  =  0;  i  <  name.length;  i++)  { 
    if(name.charCodeAt(i)  >  128)
    return  true;
    }
    return  false;
    }

    function  isMail(name)  //  E-mail值檢測

    if(!  isEnglish(name))
    return  false;
    i  =  name.indexOf("  at  ");
    j  =  name  dot  lastIndexOf("  at  ");
    if(i  ==  -1)
    return  false;
    if(i  !=  j)
    return  false;
    if(i  ==  name  dot  length)
    return  false;
    return  true;
    }

    function  isNumber(name)  //數(shù)值檢測

    if(name.length  ==  0)
    return  false;
    for(i  =  0;  i  <  name.length;  i++)  { 
    if(name.charAt(i)  <  "0"  ||  name.charAt(i)  >  "9")
    return  false;
    }
    return  true;
    }

    function  CheckForm()

    if(!  isMail(form.Email.value))  { 
    alert("您的電子郵件不合法!");
    form.Email.focus();
    return  false;
    }
    if(!  isEnglish(form.name.value))  { 
    alert("英文名不合法!");
    form.name.focus();
    return  false;
    }
    if(!  isChinese(form.cnname.value))  { 
    alert("中文名不合法!");
    form.cnname.focus();
    return  false;
    }
    if(!  isNumber(form.PublicZipCode.value))  { 
    alert("郵政編碼不合法!");
    form.PublicZipCode.focus();
    return  false;
    }
    return  true;
    }
    //-->
    </SCRIPT>

    2.6  限定表單項(xiàng)不能輸入的字符

    <script  language="javascript">
    <!--

    function  contain(str,charset)//  字符串包含測試函數(shù)

    var  i;
    for(i=0;i<charset.length;i++)
    if(str.indexOf(charset.charAt(i))>=0)
    return  true;
    return  false;
    }

    function  CheckForm()

    if  ((contain(document.form.NAME.value,  "%\(\)><"))  ||  (contain(document.form.MESSAGE.value,  "%\(\)><")))

    alert("輸入了非法字符");
    document.form.NAME.focus();
    return  false;
    }
    return  true;
    }
    //-->
    </script> 

    1. 檢查一段字符串是否全由數(shù)字組成      
    ---------------------------------------      
    <script language="Javascript"><!--          
    function checkNum(str){return str.match(/\D/)==null}          
    alert(checkNum("1232142141"))          
    alert(checkNum("123214214a1"))          
    // --></script>        
         
    2. 怎么判斷是否是字符        
    ---------------------------------------      
    if (/[^\x00-\xff]/g.test(s)) alert("含有漢字");         
    else alert("全是字符");     
              
    3. 怎么判斷是否含有漢字       
    ---------------------------------------       
    if (escape(str).indexOf("%u")!=-1) alert("含有漢字");        
    else alert("全是字符");          
       
    4. 郵箱格式驗(yàn)證   
    ---------------------------------------     
    //函數(shù)名:chkemail    
    //功能介紹:檢查是否為Email Address    
    //參數(shù)說明:要檢查的字符串    
    //返回值:0:不是 1:是    
    function chkemail(a)    
    { var i=a.length;    
    var temp = a.indexOf('@');    
    var tempd = a.indexOf('.');    
    if (temp > 1) {    
    if ((i-temp) > 3){    
    if ((i-tempd)>0){    
    return 1;    
    }    
       
    }    
    }    
    return 0;    
    }    
       
    5. 數(shù)字格式驗(yàn)證   
    ---------------------------------------     
    //函數(shù)名:fucCheckNUM    
    //功能介紹:檢查是否為數(shù)字    
    //參數(shù)說明:要檢查的數(shù)字    
    //返回值:1為是數(shù)字,0為不是數(shù)字    
    function fucCheckNUM(NUM)    
    {    
    var i,j,strTemp;    
    strTemp="0123456789";    
    if ( NUM.length== 0)    
    return 0    
    for (i=0;i<NUM.length;i++)    
    {    
    j=strTemp.indexOf(NUM.charAt(i));    
    if (j==-1)    
    {    
    //說明有字符不是數(shù)字    
    return 0;    
    }    
    }    
    //說明是數(shù)字    
    return 1;    
    }    
       
    6. 電話號碼格式驗(yàn)證   
    ---------------------------------------     
    //函數(shù)名:fucCheckTEL    
    //功能介紹:檢查是否為電話號碼    
    //參數(shù)說明:要檢查的字符串    
    //返回值:1為是合法,0為不合法    
    function fucCheckTEL(TEL)    
    {    
    var i,j,strTemp;    
    strTemp="0123456789-()# ";    
    for (i=0;i<TEL.length;i++)    
    {    
    j=strTemp.indexOf(TEL.charAt(i));    
    if (j==-1)    
    {    
    //說明有字符不合法    
    return 0;    
    }    
    }    
    //說明合法    
    return 1;    
    }   
      
    7. 判斷輸入是否為中文的函數(shù)  
    ---------------------------------------     
    function ischinese(s){  
    var ret=true;  
    for(var i=0;i<s.length;i++)  
    ret=ret && (s.charCodeAt(i)>=10000);  
    return ret;  
    }   
      
    8. 綜合的判斷用戶輸入的合法性的函數(shù) 
    ---------------------------------------     
    <script language="javascript"> 
    //限制輸入字符的位數(shù)開始 
    //m是用戶輸入,n是要限制的位數(shù) 
    function issmall(m,n) 

    if ((m<n) && (m>0)) 
      { 
      return(false); 
      } 
    else 
    {return(true);} 

     
    9. 判斷密碼是否輸入一致 
    ---------------------------------------     
    function issame(str1,str2) 

    if (str1==str2) 
    {return(true);} 
    else 
    {return(false);} 

     
    10. 判斷用戶名是否為數(shù)字字母下滑線
    ---------------------------------------     
    function notchinese(str){
    var reg=/[^A-Za-z0-9_]/g
        if (reg.test(str)){
        return (false);
        }else{
    return(true);    }
    }

    11. form文本域的通用校驗(yàn)函數(shù)
    ---------------------------------------     
    作用:檢測所有必須非空的input文本,比如姓名,賬號,郵件地址等等。
    該校驗(yàn)現(xiàn)在只針對文本域,如果要針對form里面的其他域?qū)ο螅梢愿淖兣袛鄺l件。

    使用方法:在要檢測的文本域中加入title文字。文字是在提示信息,你要提示給用戶的該字段的中文名。比如要檢測用戶名
    html如下<input name="txt_1" title="姓名">,當(dāng)然,最好用可視化工具比如dreamweaver什么的來編輯域。
    如果要檢測數(shù)字類型數(shù)據(jù)的話,再把域的id統(tǒng)一為sz.
    javascript判斷日期類型比較麻煩,所以就沒有做日期類型校驗(yàn)的程序了.高手可以補(bǔ)充。

    程序比較草,只是提供一個思路。拋磚引玉! :)
    哦,對了,函數(shù)調(diào)用方法:< form  onsubmit="return dovalidate()">

    function dovalidate()
    {
    fm=document.forms[0] //只檢測一個form,如果是多個可以改變判斷條件
        for(i=0;i<fm.length;i++)
        { 
        //檢測判斷條件,根據(jù)類型不同可以修改
        if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT" && (fm[i].title!=""))
       
             if(fm[i].value="/blog/="")//
             {
             str_warn1=fm[i].title+"不能為空!";
             alert(str_warn1);
            fm[i].focus();
             return false;        
             }
             if(fm[i].id.toUpperCase()=="SZ")//數(shù)字校驗(yàn)
             {
                     if(isNaN(fm[i].value))
                    { str_warn2=fm[i].title+"格式不對";
                    alert(str_warn2);
                    fm[i].focus();
                     return false;
                     }
            }
        }
        return true;
    }


    2 >表單提交驗(yàn)證類


    2.1 表單項(xiàng)不能為空

    <script language="javascript">
    <!--
    function CheckForm()
    {
    if (document.form.name.value.length == 0) {
    alert("請輸入您姓名!");
    document.form.name.focus();
    return false;
    }
    return true;
    }
    -->
    </script>

    2.2 比較兩個表單項(xiàng)的值是否相同

    <script language="javascript">
    <!--
    function CheckForm()
    if (document.form.PWD.value != document.form.PWD_Again.value) {
    alert("您兩次輸入的密碼不一樣!請重新輸入.");
    document.ADDUser.PWD.focus();
    return false;
    }
    return true;
    }
    -->
    </script>

    2.3 表單項(xiàng)只能為數(shù)字和"_",用于電話/銀行帳號驗(yàn)證上,可擴(kuò)展到域名注冊等

    <script language="javascript">
    <!--
    function isNumber(String)
    {
    var Letters = "1234567890-"; //可以自己增加可輸入值
    var i;
    var c;
    if(String.charAt( 0 )=='-')
    return false;
    if( String.charAt( String.length - 1 ) == '-' )
    return false;
    for( i = 0; i < String.length; i ++ )
    {
    c = String.charAt( i );
    if (Letters.indexOf( c ) < 0)
    return false;
    }
    return true;
    }
    function CheckForm()
    {
    if(! isNumber(document.form.TEL.value)) {
    alert("您的電話號碼不合法!");
    document.form.TEL.focus();
    return false;
    }
    return true;
    }
    -->
    </script>


    2.4 表單項(xiàng)輸入數(shù)值/長度限定

    <script language="javascript">
    <!--
    function CheckForm()
    {
    if (document.form.count.value > 100 || document.form.count.value < 1)
    {
    alert("輸入數(shù)值不能小于零大于100!");
    document.form.count.focus();
    return false;
    }
    if (document.form.MESSAGE.value.length<10)
    {
    alert("輸入文字小于10!");
    document.form.MESSAGE.focus();
    return false;
    }
    return true;
    }
    //-->
    </script>

    2.5 中文/英文/數(shù)字/郵件地址合法性判斷

    <SCRIPT LANGUAGE="javascript">
    <!--

    function isEnglish(name) //英文值檢測
    {
    if(name.length == 0)
    return false;
    for(i = 0; i < name.length; i++) {
    if(name.charCodeAt(i) > 128)
    return false;
    }
    return true;
    }

    function isChinese(name) //中文值檢測
    {
    if(name.length == 0)
    return false;
    for(i = 0; i < name.length; i++) {
    if(name.charCodeAt(i) > 128)
    return true;
    }
    return false;
    }

    function isMail(name) // E-mail值檢測
    {
    if(! isEnglish(name))
    return false;
    i = name.indexOf(" at ");
    j = name dot lastIndexOf(" at ");
    if(i == -1)
    return false;
    if(i != j)
    return false;
    if(i == name dot length)
    return false;
    return true;
    }

    function isNumber(name) //數(shù)值檢測
    {
    if(name.length == 0)
    return false;
    for(i = 0; i < name.length; i++) {
    if(name.charAt(i) < "0" || name.charAt(i) > "9")
    return false;
    }
    return true;
    }

    function CheckForm()
    {
    if(! isMail(form.Email.value)) {
    alert("您的電子郵件不合法!");
    form.Email.focus();
    return false;
    }
    if(! isEnglish(form.name.value)) {
    alert("英文名不合法!");
    form.name.focus();
    return false;
    }
    if(! isChinese(form.cnname.value)) {
    alert("中文名不合法!");
    form.cnname.focus();
    return false;
    }
    if(! isNumber(form.PublicZipCode.value)) {
    alert("郵政編碼不合法!");
    form.PublicZipCode.focus();
    return false;
    }
    return true;
    }
    //-->
    </SCRIPT>

    2.6 限定表單項(xiàng)不能輸入的字符

    <script language="javascript">
    <!--

    function contain(str,charset)// 字符串包含測試函數(shù)
    {
    var i;
    for(i=0;i<charset.length;i++)
    if(str.indexOf(charset.charAt(i))>=0)
    return true;
    return false;
    }

    function CheckForm()
    {
    if ((contain(document.form.NAME.value, "%\(\)><")) || (contain(document.form.MESSAGE.value, "%\(\)><")))
    {
    alert("輸入了非法字符");
    document.form.NAME.focus();
    return false;
    }
    return true;
    }
    //-->
    </script>

     

    posted @ 2007-06-07 10:47 摩西 閱讀(369) | 評論 (0)編輯 收藏
    Java/J2EE中文問題終極解決之道
     
    Java中文問題一直困擾著很多初學(xué)者,如果了解了Java系統(tǒng)的中文問題原理,我們就可以對中文問題能夠采取根本的解決之道。

      最古老的解決方案是使用String的字節(jié)碼轉(zhuǎn)換,這種方案問題是不方便,我們需要破壞對象封裝性,進(jìn)行字節(jié)碼轉(zhuǎn)換。

      還有一種方式是對J2EE容器進(jìn)行編碼設(shè)置,如果J2EE應(yīng)用系統(tǒng)脫離該容器,則會發(fā)生亂碼,而且指定容器配置不符合J2EE應(yīng)用和容器分離的原則。

      在Java內(nèi)部運(yùn)算中,涉及到的所有字符串都會被轉(zhuǎn)化為UTF-8編碼來進(jìn)行運(yùn)算。那么,在被Java轉(zhuǎn)化之前,字符串是什么樣的字符集? Java總是根據(jù)操作系統(tǒng)的默認(rèn)編碼字符集來決定字符串的初始編碼,而且Java系統(tǒng)的輸入和輸出的都是采取操作系統(tǒng)的默認(rèn)編碼。

      因此,如果能統(tǒng)一Java系統(tǒng)的輸入、輸出和操作系統(tǒng)3者的編碼字符集合,將能夠使Java系統(tǒng)正確處理和顯示漢字。這是處理Java系統(tǒng)漢字的一個原則,但是在實(shí)際項(xiàng)目中,能夠正確抓住和控制住Java系統(tǒng)的輸入和輸出部分是比較難的。J2EE中,由于涉及到外部瀏覽器和數(shù)據(jù)庫等,所以中文問題亂碼顯得非常突出。

      J2EE應(yīng)用程序是運(yùn)行在J2EE容器中。在這個系統(tǒng)中,輸入途徑有很多種:一種是通過頁面表單打包成請求(request)發(fā)往服務(wù)器的;第二種是通過數(shù)據(jù)庫讀入;還有第3種輸入比較復(fù)雜,JSP在第一次運(yùn)行時總是被編譯成Servlet,JSP中常常包含中文字符,那么編譯使用javac時,Java將根據(jù)默認(rèn)的操作系統(tǒng)編碼作為初始編碼。除非特別指定,如在Jbuilder/eclipse中可以指定默認(rèn)的字符集。

      輸出途徑也有幾種:第一種是JSP頁面的輸出。由于JSP頁面已經(jīng)被編譯成Servlet,那么在輸出時,也將根據(jù)操作系統(tǒng)的默認(rèn)編碼來選擇輸出編碼,除非指定輸出編碼方式;還有輸出途徑是數(shù)據(jù)庫,將字符串輸出到數(shù)據(jù)庫。

      由此看來,一個J2EE系統(tǒng)的輸入輸出是非常復(fù)雜,而且是動態(tài)變化的,而Java是跨平臺運(yùn)行的,在實(shí)際編譯和運(yùn)行中,都可能涉及到不同的操作系統(tǒng),如果任由Java自由根據(jù)操作系統(tǒng)來決定輸入輸出的編碼字符集,這將不可控制地出現(xiàn)亂碼。

      正是由于Java的跨平臺特性,使得字符集問題必須由具體系統(tǒng)來統(tǒng)一解決,所以在一個Java應(yīng)用系統(tǒng)中,解決中文亂碼的根本辦法是明確指定整個應(yīng)用系統(tǒng)統(tǒng)一字符集。

      指定統(tǒng)一字符集時,到底是指定ISO8859_1 、GBK還是UTF-8呢? 

      (1)如統(tǒng)一指定為ISO8859_1,因?yàn)槟壳按蠖鄶?shù)軟件都是西方人編制的,他們默認(rèn)的字符集就是ISO8859_1,包括操作系統(tǒng)Linux和數(shù)據(jù)庫MySQL等。這樣,如果指定Jive統(tǒng)一編碼為ISO8859_1,那么就有下面3個環(huán)節(jié)必須把握:

      開發(fā)和編譯代碼時指定字符集為ISO8859_1。

      運(yùn)行操作系統(tǒng)的默認(rèn)編碼必須是ISO8859_1,如Linux。

      在JSP頭部聲明:<%@ page contentType="text/html;charset=ISO8859_1" %>。

      (2)如果統(tǒng)一指定為GBK中文字符集,上述3個環(huán)節(jié)同樣需要做到,不同的是只能運(yùn)行在默認(rèn)編碼為GBK的操作系統(tǒng),如中文Windows。

      統(tǒng)一編碼為ISO8859_1和GBK雖然帶來編制代碼的方便,但是各自只能在相應(yīng)的操作系統(tǒng)上運(yùn)行。但是也破壞了Java跨平臺運(yùn)行的優(yōu)越性,只在一定范圍內(nèi)行得通。例如,為了使得GBK編碼在linux上運(yùn)行,設(shè)置Linux編碼為GBK。

      那么有沒有一種除了應(yīng)用系統(tǒng)以外不需要進(jìn)行任何附加設(shè)置的中文編碼根本解決方案呢?

      將Java/J2EE系統(tǒng)的統(tǒng)一編碼定義為UTF-8。UTF-8編碼是一種兼容所有語言的編碼方式,惟一比較麻煩的就是要找到應(yīng)用系統(tǒng)的所有出入口,然后使用UTF-8去“結(jié)扎”它。

      一個J2EE應(yīng)用系統(tǒng)需要做下列幾步工作:

    1. 開發(fā)和編譯代碼時指定字符集為UTF-8。JBuilder和Eclipse都可以在項(xiàng)目屬性中設(shè)置。 
    2. 使用過濾器,如果所有請求都經(jīng)過一個Servlet控制分配器,那么使用Servlet的filter執(zhí)行語句,將所有來自瀏覽器的請求(request)轉(zhuǎn)換為UTF-8,因?yàn)闉g覽器發(fā)過來的請求包根據(jù)瀏覽器所在的操作系統(tǒng)編碼,可能是各種形式編碼。關(guān)鍵一句:
      request.setCharacterEncoding("UTF-8")。
      網(wǎng)上有此filter的源碼,Jdon框架源碼中com.jdon.util.SetCharacterEncodingFilter
      需要配置web.xml 激活該Filter。 
    3. 在JSP頭部聲明:<%@ page contentType="text/html;charset= UTF-8" %>。 
    4. 在Jsp的html代碼中,聲明UTF-8:
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    5. 設(shè)定數(shù)據(jù)庫連接方式是UTF-8。例如連接MYSQL時配置URL如下:
      jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8
      注意,上述寫法是JBoss的mysql-ds.xml寫法,多虧網(wǎng)友提示,在tomcat中&amp;要寫成&即可。一般其他數(shù)據(jù)庫都可以通過管理設(shè)置設(shè)定UTF-8 
    6. 其他和外界交互時能夠設(shè)定編碼時就設(shè)定UTF-8,例如讀取文件,操作XML等。 
         筆者以前在Jsp/Servlet時就采取這個原則,后來使用Struts、Tapestry、EJB、Hibernate、Jdon等框架時,從未被亂碼困擾過,可以說適合各種架構(gòu)。希望本方案供更多初學(xué)者分享,減少Java/J2EE的第一個攔路虎,也避免因?yàn)椴扇∫恍┡R時解決方案,導(dǎo)致中文問題一直出現(xiàn)在新的技術(shù)架構(gòu)中。 
    posted @ 2007-04-27 15:24 摩西 閱讀(389) | 評論 (0)編輯 收藏
        
    <entry key="webaddsuccess" value="redirect:/web.do?method=friendSitelist"/>
    posted @ 2007-04-27 09:30 摩西 閱讀(901) | 評論 (2)編輯 收藏
    主站蜘蛛池模板: 精品国产麻豆免费人成网站| 中国亚洲女人69内射少妇 | 卡1卡2卡3卡4卡5免费视频| 中文字幕成人免费高清在线 | 成人午夜视频免费| 免费不卡在线观看AV| 51午夜精品免费视频| 国产成人高清亚洲一区久久| 亚洲毛片无码专区亚洲乱| 久久国产亚洲精品麻豆| 高清在线亚洲精品国产二区| 国内一级一级毛片a免费| 免费观看无遮挡www的小视频| 亚洲免费观看视频| aaa毛片免费观看| 五月天国产成人AV免费观看| 免费在线观看亚洲| 国产成人高清亚洲一区久久| 亚洲色偷偷综合亚洲av78 | 日本道免费精品一区二区| 成人免费网站久久久| 另类专区另类专区亚洲| 色偷偷亚洲第一综合| 亚洲精品国产av成拍色拍| 在线aⅴ亚洲中文字幕| 亚洲AV无码一区二区三区人 | 成年女人午夜毛片免费看| 免费专区丝袜脚调教视频| 24小时在线免费视频| 国产高清不卡免费视频| 日韩在线不卡免费视频一区| 免费观看91视频| 无码av免费一区二区三区试看| 日本免费高清视频| 99热在线观看免费| 18未年禁止免费观看| 青娱分类视频精品免费2| 国产福利在线免费| 啦啦啦www免费视频| 又大又黄又粗又爽的免费视频| 国产精品免费一级在线观看|