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

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

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

    lycong

    2008年5月18日 #

    使用SAX對(duì)XML根據(jù)具體需求過濾標(biāo)簽和長(zhǎng)度截取

         摘要:        需要解決的問題是 根據(jù)一輸入流讀取一段XML內(nèi)容,然后對(duì)其進(jìn)行過濾截取,最后寫回輸出流中。具體說明如下: 1.對(duì)XML根據(jù)特定需求,過濾標(biāo)簽(如SCRIPT,FRAME等非標(biāo)準(zhǔn)HTML標(biāo)簽),過濾屬性(如onclick,onblur等) 2.對(duì)XML進(jìn)行長(zhǎng)度截取,具體做法如下: (1)對(duì)start標(biāo)簽的處理: 若加上s...  閱讀全文

    posted @ 2008-09-01 21:26 cong 閱讀(927) | 評(píng)論 (0)編輯 收藏

    解決JSTL標(biāo)簽 循環(huán) 中途 break

    如果直接使用<c:forEach> 直接在中間的代碼中 插入break , 并不能退出循環(huán)。可以采用以下策略進(jìn)行代換:
    1. 用 <c:set var="collections" value="${forEach中的items}"/>
    2. 用 jspContext.getAttribute("collections"); 獲得對(duì)應(yīng)的集合
    3.最后就用最原始的for()。

    posted @ 2008-07-14 14:19 cong 閱讀(1829) | 評(píng)論 (1)編輯 收藏

    將來2個(gè)月的學(xué)習(xí)計(jì)劃

    1.重溫《Thinking in Java》的IO、容器、并發(fā)部分,泛型編程:大約用2周時(shí)間
    2.重溫《Core Java》的SWING ,大約用1周。
    3.由于公司近期準(zhǔn)備開發(fā)一套IM系統(tǒng),要重點(diǎn)學(xué)習(xí)一下有關(guān)網(wǎng)絡(luò)編程,特別是TCP/IP知識(shí),socket編程:2周時(shí)間
    5.學(xué)習(xí)《Ajax in Action》中Ajax高級(jí)應(yīng)用部分。 1.5周
    4.學(xué)習(xí)《Code Complete》有關(guān)測(cè)試部分,要學(xué)會(huì)編寫測(cè)試用例:1.5周時(shí)間

    posted @ 2008-07-10 20:33 cong 閱讀(185) | 評(píng)論 (0)編輯 收藏

    經(jīng)常碰到的模塊:修改密碼 一 安全小技巧(服務(wù)器后臺(tái)不返回密碼)

            問題如下:當(dāng)修改密碼時(shí),為了防止通過查看html源文件或其他方法看到用戶的原始密碼,一般服務(wù)器不會(huì)返回用戶密碼,可以利用javascript的技巧 ,在頁面顯示一虛假密碼,然后判斷密碼是否修改過,如果真有修改過密碼,才把密碼送到后臺(tái)服務(wù)器,否則不發(fā)送密碼到后臺(tái)服務(wù)器。
    1. 頁面顯示代碼:
    <%--構(gòu)造一個(gè)虛假的密碼顯示框--%>
                         
    <fmt:message key="falsity_password_defaultValue" var="falsity_password_defaultValue" />
                         
    <input id="falsity_password" type="password" name="falsity_password"
                                 
    default="${falsity_password_defaultValue}"
                                 value
    ="${fn:escapeXml(param.falsity_password != null ? param.falsity_password : falsity_password_defaultValue)}" autocomplete="off">
                         
    <input id="true_password" type="hidden" name="password"/>
    其中 falsity_password_defaultValue 為服務(wù)器端事先設(shè)置好的虛假密碼(可以在資源文件中設(shè)置), falsity_password 為頁面顯示的虛假密碼,true_password 是當(dāng)密碼修改后,才發(fā)送到服務(wù)器, 下面就會(huì)對(duì)上面2個(gè)變量值作一些處理判斷。

    2. 對(duì)是否修改過密碼進(jìn)行處理。
    A.當(dāng)focus到密碼框時(shí),密碼框清空, 到?jīng)]有修改過密碼就離開密碼框時(shí),就還原為虛假密碼顯示.
    B.當(dāng)修改過密碼后,就會(huì)把true_password的值設(shè)置為修改后的值。
     <script type="text/javascript"><!--
      
    function getTruePassword(){
        
    <c:if test="${param.edit == 'modify'}">
          
    var falsity_password = document.getElementById("falsity_password");
          
    var true_password = document.getElementById("true_password");
               
    if(falsity_password && true_password){
          
    var defaultValue=falsity_password.getAttribute("default");

              
    if(falsity_password.value != defaultValue) {
                   true_password.value 
    = falsity_password.value;
              }

          }

        
    </c:if>
      }

      
    <c:if test="${param.edit == 'modify'}">
      
    var falsity_passwordNode = document.getElementById("falsity_password");
      
    if(falsity_passwordNode) {
          Object.extend(falsity_passwordNode, 
    {
              onfocus : 
    function() {
                  
    if (this.value == this.getAttribute("default")) {
                      
    this.value = '';
                  }

              }
    ,
              onblur : 
    function() {
                  
    if (this.value == '') {
                      
    this.value = this.getAttribute("default");
                  }

              }

          }
    )

      }

      
    </c:if>
      
    //--></script>

    判斷falsity_password密碼是否為虛假密碼,若不是,則把true_password設(shè)置為修改過的密碼。


    3.服務(wù)器端要判斷是否修改過密碼,若修改過才把密碼傳到后臺(tái)進(jìn)行修改,這里主要看true_password是否為" ",若不為" ",則說明密碼修改過。
    這里可以通過tag來進(jìn)行處理
    <c:if test="${!empty param.true_password}">
    /* 把true_password 傳到后臺(tái)進(jìn)行修改    */
    </c:if>


    posted @ 2008-07-06 20:14 cong 閱讀(564) | 評(píng)論 (0)編輯 收藏

    Fix 問題: 進(jìn)入編輯頁面,當(dāng)點(diǎn)擊其他地方時(shí),判斷頁面是否修改過,并提示相關(guān)信息。

         摘要:         問題如下:例如要修改某個(gè)人的信息時(shí),進(jìn)入編輯頁面,當(dāng)點(diǎn)擊其他地方時(shí),判斷信息是否已被修改過,并提示相關(guān)信息。         本例中以個(gè)人通訊錄信息為背景, 解決方法如下: 1.首先要有個(gè) Object保存 一開始時(shí)從服...  閱讀全文

    posted @ 2008-06-16 21:50 cong 閱讀(619) | 評(píng)論 (0)編輯 收藏

    關(guān)于text文本框 按回車鍵 何種情況下 submit-------- 從一個(gè)bugfix 問題中想到

                接到一個(gè)問題,大概描述如下:頁面有一text文本框,有一submit類型的按鈕,輸入內(nèi)容后,按回車頁面只是刷新一下,但是沒有執(zhí)行創(chuàng)建操作。而且文件夾名有如下限制:不能和之前創(chuàng)建文件夾同名,且非空。jsp中的內(nèi)容簡(jiǎn)化為如下: 

    <form> <tr>
     <td><input type="text" id="filename" /> </td>
    <td><input type="submit" onclick="return addFile();"  id="sub"/> </td>
    </tr> </form>


            其中addFile()函數(shù)會(huì)有上面提及到限制判斷,并且會(huì)返回boolean類型,當(dāng)然符合條件時(shí)就返回true,不符合就返回false。理所當(dāng)然當(dāng)輸入內(nèi)容后點(diǎn)擊submit按鈕會(huì)正常執(zhí)行相關(guān)操作而且會(huì)正常執(zhí)行限制判斷。可是奇怪的是,在IE下 在text框輸入內(nèi)容后直接按回車確不能執(zhí)行相關(guān)操作,只是頁面刷新了一下, 但是在FIREFOX下 按回車卻能正常執(zhí)行操作和判斷。 之前第一時(shí)間就是想到應(yīng)該在text文本框中加一個(gè)onkeydown的事件enter_file(),enter_file函數(shù)是當(dāng)按下回車時(shí)就執(zhí)行,并且函數(shù)中應(yīng)該有這句代碼 document.getElementById('sub').click(); 就是說當(dāng)回車時(shí)就執(zhí)行submit按鈕的click操作。 貌似應(yīng)該會(huì)正常執(zhí)行操作的吧,可是又一奇怪問題出現(xiàn)了,就是在IE下,在文本框中輸入 a 后(假設(shè)之前沒有文件名為a的文件),然后快速按2下(更多下也可以),結(jié)果會(huì)跳過“不能創(chuàng)建重復(fù)文件名”的判斷,創(chuàng)建出2個(gè)相同名字a 的文件夾,而且例如輸入同名文件名后,彈出框會(huì)一閃而過,不會(huì)等點(diǎn)擊確認(rèn)后才退出彈出框,但是在FIREFOX下卻是正常執(zhí)行,也不會(huì)出現(xiàn)一閃而過的現(xiàn)象,就是快速按幾下也只是創(chuàng)建一個(gè)文件夾a。 之后百思不得其解,試過一些方法,比如把submit類型改為button類型,把onkeydown事件換成onkeypress或者onkeyup ,結(jié)果還是出現(xiàn)IE下快速按回車 創(chuàng)建2個(gè)同名文件夾,還是出現(xiàn)一閃而過的現(xiàn)象。
           初步判斷可能是ie和ff在text框按回車的響應(yīng)不同,最后上網(wǎng)搜了一下,找到一個(gè)帖子 名為求解一個(gè)關(guān)于回車的問題 http://topic.csdn.net/t/20061128/14/5191186.html ,具體內(nèi)容到那個(gè)帖子看看。抽取其中值得注意的地方如下:
       IE:       
      1.   只有一個(gè)text框時(shí),(不管有沒有submit),直接觸發(fā)onsubmit   (form標(biāo)簽的一事件屬性)
      2.   有多個(gè)text框時(shí),觸發(fā)submit上的onclick,其默認(rèn)行為為觸發(fā)onsubmit。  

    相對(duì)來說,ff的行為最復(fù)雜。       
      1.   有submit或button時(shí),觸發(fā)submit或button的onclick,然后該onclick的默認(rèn)行為會(huì)觸發(fā)onsubmit。  
      2.   沒有submit或button時(shí),  
      2.1   只有一個(gè)text框時(shí),觸發(fā)onsubmit;  
      2.2   有多個(gè)text框時(shí),不觸發(fā)onsubmit。  

    因?yàn)榭吹疆?dāng)只有一個(gè)text框時(shí),直接觸發(fā)onsubmit,就聯(lián)想到要在form標(biāo)簽中加上onsubmit事件,于是把上面的代碼改為如下:
    <form onsubmit="return addFile()"> <tr>
     <td><input type="text" id="filename" /> </td>
    <td><input type="submit" id="sub"/> </td>
    </tr> </form>
    結(jié)果在IE下終于能成功操作,即是快速按幾下也只是創(chuàng)建一個(gè)文件夾,并且不在出現(xiàn)一閃而過的現(xiàn)象。 因此很多時(shí)候在IE下可能出現(xiàn)奇怪問題,換作FF下就沒問題了,F(xiàn)irefox支持JavaScript是正宗的。另外用firefox的插件 firedebug 來調(diào)試 javascript 程序 簡(jiǎn)直太爽了。




    posted @ 2008-05-28 21:03 cong 閱讀(1868) | 評(píng)論 (1)編輯 收藏

    開發(fā)產(chǎn)品之個(gè)人感悟

              軟件行業(yè)做項(xiàng)目和做產(chǎn)品有什么不同呢?最大的感受就是做產(chǎn)品始終是以客戶(即使用者)為中心,不斷做到精益求精。由于所在公司是開發(fā)郵件系統(tǒng),也就是開發(fā)產(chǎn)品,之前自己負(fù)責(zé)的一些開發(fā)任務(wù)都是FIX系統(tǒng)的一些BUG或improvement,那些問題真得有些令我吃驚,每一步操作都必須考慮到用戶的感受和使用方便程度,連每步TAB到哪個(gè)輸入框都考慮到很精確,給我感覺就是客戶端做得很龐大,也就是所謂的“胖客戶端”,并且我暫時(shí)還沒接觸到的后臺(tái)服務(wù)器的功能也是要做得盡善盡美。

    posted @ 2008-05-23 21:56 cong 閱讀(216) | 評(píng)論 (0)編輯 收藏

    被逼開通了首個(gè)屬于自己技術(shù)博客

                 作為一個(gè)程序員,沒有自己的技術(shù)BLOG貌似說不過去,看見公司大牛們的技術(shù)BLOG后,決定自己也搞一個(gè)。公司實(shí)習(xí)快2個(gè)月了,這些日子算是學(xué)到一點(diǎn)東西,主要是JAVASCRIPT,還有JSTL的一些用法。從之前的JAVASCRIPT“白癡”,到現(xiàn)在看到JS代碼沒當(dāng)初那么頭疼了,而且還有一點(diǎn)感覺,由于剛進(jìn)入公司,主要的開發(fā)工作還是客戶端的一些小BUG問題(其實(shí)真的小的不能再小了)。公司是做郵件系統(tǒng)(在業(yè)界應(yīng)該是前茅的),郵箱頁面主要是分為A(AJAX),H(主要是JSP)風(fēng)格2種,令我驚訝的是A風(fēng)格是完全由JS代碼全部控制,生成HTML代碼,加入AJAX,調(diào)用服務(wù)器接口等操作均是由JS生成,而且代碼量極其多,剛開始的時(shí)候看A風(fēng)格的代碼簡(jiǎn)直就如同看天書一樣,后來慢慢的適應(yīng)了他的一些寫法,但是還是很多不懂。
                接下去還要去學(xué)習(xí)JAVAMAIL 的API, RMI, 我很想抽個(gè)時(shí)間去重新學(xué)習(xí)一下操作系統(tǒng)的知識(shí),覺得當(dāng)時(shí)學(xué)操作系統(tǒng)好像不知道學(xué)了什么,盡管考試分?jǐn)?shù)有90多分,進(jìn)入公司以后,我逐漸感覺自己在之前學(xué)的專業(yè)知識(shí)(操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫原理,計(jì)算機(jī)網(wǎng)絡(luò)等)的時(shí)候,心態(tài)搞錯(cuò)了,總覺得這些知識(shí)好像和編程沒什么掛鉤,能拿個(gè)高分?jǐn)?shù)就行了,很多時(shí)候就是死記硬背。

    posted @ 2008-05-18 17:46 cong 閱讀(260) | 評(píng)論 (0)編輯 收藏

    My Links

    Blog Stats

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 午夜成年女人毛片免费观看| 亚洲日韩在线观看| 亚洲av无码片vr一区二区三区 | 一级视频免费观看| 亚洲嫩模在线观看| 我想看一级毛片免费的| 中文字幕在线免费观看视频| 亚洲自偷自拍另类图片二区 | 亚洲女人影院想要爱| 国产伦精品一区二区三区免费下载 | 99re免费视频| 亚洲AV无码专区国产乱码不卡| 亚洲五月午夜免费在线视频| 50岁老女人的毛片免费观看| 亚洲AV成人片无码网站| 亚洲va在线va天堂va四虎 | 91亚洲精品视频| 国产午夜鲁丝片AV无码免费| 久久黄色免费网站| 在线亚洲v日韩v| 亚洲毛片在线免费观看| 精品国产亚洲男女在线线电影 | 国产亚洲玖玖玖在线观看| 精品亚洲一区二区三区在线观看 | 在线免费视频一区| 久爱免费观看在线网站| 久久久久久亚洲精品无码| 亚洲AV无码成人精品区天堂| 国产成人精品免费直播| 亚洲高清中文字幕免费| 久久国产精品萌白酱免费| 美女啪啪网站又黄又免费| 亚洲伊人色一综合网| 亚洲成在人线av| 国产av无码专区亚洲国产精品| 大学生一级毛片免费看| 久久久精品2019免费观看| www在线观看播放免费视频日本| 亚洲日韩国产AV无码无码精品| 亚洲a在线视频视频| 亚洲精品无码MV在线观看|