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

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

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

    備注學院

    LuLu

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      5 隨筆 :: 50 文章 :: 16 評論 :: 0 Trackbacks

    2008年9月19日 #

    網址:http://s.open-lib.com/

    前言:

    今年年頭天氣比較多變,氣溫變化較大,因此每天早上看天氣預報,然后告知女朋友,體形她注意,每天機械式的重復,有時候忘記可能會被P,雖然沒發生過忘記。。

    能不能采取自動化任務代替這樣的重復勞動呢?

    幸虧我們是強大的碼農,只怕沒IDEA,不怕做不到。。。。。

    原理:

    其實原理很簡單,就是定時抓取指定城市的天氣信息,然后組裝成要的內容,發送郵件。

    不是說短信嗎?怎么變了郵件了?

    大家別急,這里是利用幾大運營商的免費的郵件到達提醒實現的,也就發送郵件,當對方接收到郵件,自動發短信到手機,并且顯示郵件部分內容。

     

    說說:

    1、免費、不限制訂閱數量、支持一個任務發送多人(大家輕著點,別把服務器弄掛了);不支持時分秒定時任務

    2、支持訂閱類型:今明兩天的天氣預報,股票信息,基金信息,RSS。

     

    示例:

    基金:嘉實多元債券A[2011-08-01]最新凈值:1.071,昨日凈值:1.071,升幅:0.00%。


    股票:[中牧股份]:今日開盤價:22.60,當前價格:22.20,今日最高價:22.60,今日最低價:22.19。 

     

    明天天氣預報:東莞明天溫度:東莞,34℃~26℃,多云,微風(小于3級)。

     

     天氣預警:新疆維吾爾自治區吐魯番地區氣象臺發布高溫橙色預警。  (需重新調整,太抽象了;未開放)

     

    展望未來:

    1、現在在弄個天氣預警,也就是一旦天文臺發布臺風XX警報之類,會很快的發到用戶的手機,實現及時提醒,不過這部分還在測試當中,還沒開放。

    2、支持短信上行、郵件回復、GTALK遠程命令(列表,停止,啟動之類),暫時也沒對外開放,要試用的,可以聯系我。。

     

    支援:http://www.open-lib.com/Forum/Forum_13_1.action

    posted @ 2011-08-02 20:44 smildlzj 閱讀(2125) | 評論 (1)編輯 收藏

    [版權聲明]:版權歸作者所有,轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明:
    http://www.open-lib.com/Forum/Read_69_1.action

    前言:

    當jquery ajax在utf-8編碼下(頁面utf-8,接收utf-8),無任何問題。可以正常post、get,處理頁面直接獲取正確的內容。

    但在以下情況下:

    GBK -> AJAX POST ->GBK

    UTF-8 -> AJAX POST ->GBK

    后臺代碼無法獲取正確的內容,通常表現為獲取到奇怪字符、問號。

    經典解決方法:

    1:發送頁面、接收頁面均采用UTF-8編碼。

    2:發送頁面在調用ajax post方法之前,將含有中文內容的input用encodeURIComponent編碼一次,而接收頁面則調用解碼方法( 如:java.net.urldecoder.decode("接收到內容","utf-8")  )。


    其中,第一種方法無疑是最簡單、最直接,但往往不符合實際,因為很多項目并不是使用utf-8編碼,例如國內大部分使用gbk編碼,也不可能為了解決這樣一個問題,而將整個項目轉換為utf-8編碼,成本太大,風險太高。

    第二方法,是現在最多人使用的方法,俗稱二次編碼,為什么叫二次編碼,等下會解釋。客戶端編碼兩次,服務端解碼兩次。但這種方法不好的地方,就是前臺手動編碼一次,后臺再手動解碼一次,稍不留神就會忘記,而且代碼摻和前臺邏輯。

    交互過程:

    當我們使用表單按照傳統方式post提交時候(非AJAX提交),瀏覽器會根據當前頁面編碼,encode一次,然后發送到服務端,服務端接收到表單,會自動dencode一次,通常這個過程是對程序是透明的,因此加上手動編碼、解碼,就變成上面所說的二次編碼。

    但當我們使用AJAX方式提交時候,瀏覽器并不會自動替我們encode,因此在jquery中有這樣的一段代碼:

    ajax: function( s ) {
        
    // Extend the settings, but re-extend 's' so that it can be
        // checked again later (in the test suite, specifically)
        s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));

        
    var jsonp, jsre = /=?(&|$)/g, status, data,
            type 
    = s.type.toUpperCase();

        
    // convert data if not already a string
        if ( s.data && s.processData && typeof s.data !== "string" )
            s.data 
    = jQuery.param(s.data);
    ..    
    }

     

    以上是jquery的ajax方法的代碼片段,下面是正常調用jquery ajax post的代碼:

    $.ajax({
     url: ajaxurl,
     type: 'POST',
     dataType: 'html',
     timeout: 
    20000,//超時時間設定
     data:para,//參數設置
     success: function(html){

     }
    });

    通過上面代碼可以知道,當設置了data時候,jquery內部會調用jQuery.param方法對參數encode(執行本應瀏覽器處理的encode)。

    jQuery.param=function( a ) {
        
    var s = [ ];
        
    function add( key, value ){
            s[ s.length ] 
    = encodeURIComponent(key) + '=+ encodeURIComponent(value);
        };
        
    // If an array was passed in, assume that it is an array
        // of form elements
        if ( jQuery.isArray(a) || a.jquery )
            
    // Serialize the form elements
            jQuery.each( a, function(){
                add( 
    this.name, this.value );
            });

        
    // Otherwise, assume that it's an object of key/value pairs
        else
            
    // Serialize the key/values
            for ( var j in a )
                
    // If the value is an array then the key names need to be repeated
                if ( jQuery.isArray(a[j]) )
                    jQuery.each( a[j], 
    function(){
                        add( j, 
    this );
                    });
                
    else
                    add( j, jQuery.isFunction(a[j]) 
    ? a[j]() : a[j] );

        
    // Return the resulting serialization
        return s.join("&").replace(/%20/g, "+");
    }
    //jquery.param end

    上面是jQuery.param的代碼,細心點可以留意到encodeURIComponent這方法,這是javascript內置的方法,對目標字符串執行utf-8 encode,因此,當頁面使用gbk編碼時候,服務端會使用gbk進行解碼,但實際提交的數據是以utf-8編碼的,所以造成接收到內容為亂碼或者為問號。

    解決方法:

    encodeURIComponent會以utf-8編碼,在gbk編碼下,可不可以以gbk進行編碼呢?

    如果還在打encodeURIComponent主意的話,那不好意思,encodeURIComponent只會utf-8編碼,并沒有其他api進行其他編碼;不過,別擔心,看看下面:

    encodeURIComponent,它是將中文、韓文等特殊字符轉換成utf-8格式的url編碼。

    escape對0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escape,encodeURI,encodeURIComponent編碼結果相同。

    哈哈,看到希望吧?沒錯,就是用escape代替encodeURIComponent方法,不過必須注意:

    escape不編碼字符有69個:*,+,-,.,/,@,_,0-9,a-z,A-Z

    encodeURIComponent不編碼字符有71個:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

    使用了escape之后必須對加號進行編碼,否則,當內容含有加號時候會被服務端翻譯為空格。

    終于知道解決辦法了,重寫jquery代碼:

    jQuery.param=function( a ) {
        
    var s = [ ];
        
    var encode=function(str){
            str
    =escape(str);
            str
    =str.replace(/+/g,"%u002B");
            
    return str;
        };
        
    function add( key, value ){
            s[ s.length ] 
    = encode(key) + '=+ encode(value);
        };
        
    // If an array was passed in, assume that it is an array
        // of form elements
        if ( jQuery.isArray(a) || a.jquery )
            
    // Serialize the form elements
            jQuery.each( a, function(){
                add( 
    this.name, this.value );
            });

        
    // Otherwise, assume that it's an object of key/value pairs
        else
            
    // Serialize the key/values
            for ( var j in a )
                
    // If the value is an array then the key names need to be repeated
                if ( jQuery.isArray(a[j]) )
                    jQuery.each( a[j], 
    function(){
                        add( j, 
    this );
                    });
                
    else
                    add( j, jQuery.isFunction(a[j]) 
    ? a[j]() : a[j] );

        
    // Return the resulting serialization
        return s.join("&").replace(/%20/g, "+");
    }

    上面那段代碼并不需要在jquery的源文件重寫,可以在你項目的javascript貼上,覆蓋它原有的方法,不過必須在jquery加載之后。

    經初步驗證,上面那段代碼在utf-8編碼也可以工作正常,大概是編碼成unicode的緣故吧。

    這樣,就不是需要使用什么二次編碼,即影響前臺,又影響后臺。gbk編碼下ajax post不再是問題了,此乃是終極解決方法。哈哈。

    有興趣的可以到http://www.open-lib.com/Forum/Read_69_1.action與作者交流。

    posted @ 2010-10-18 20:08 smildlzj 閱讀(1827) | 評論 (3)編輯 收藏

    現我手頭上有一個OA項目.

    有模塊人事檔案、管理員模塊等。

    因為是工廠內部使用,所以人事檔案大概是兩種一群。廠工、辦公室人員

    現上級要求為所有辦公室人員增加“工作計劃”的模塊,我想做成這樣日程表的效果

    看了一下。
    dhtmlxScheduler貌似這個效果比較好看。。

    dhtmlxScheduler是一個JavaScript日程安排控件,類似于Google日歷。日歷事件通過Ajax動態加載,支持通過拖放功能調整事件日期和時間。事件可以按天,周,月三個種視圖顯示。


    現在說下我遇到的問題:

    由于已經有管理員模塊。
    現在需要為所有辦公室人員錄入賬號。

    方案一:是在人事檔案中增加賬號的字段。
    方案二:管理員表中增加關聯人事檔案的字段

    人事檔案-人事文員可以使用。但是賬號現是基于管理員表的。基于角色授權。

    如果按照方案一,那則需要允許人事人員有權管理賬號、密碼。
    按照方案二,人事文員的確接觸不到賬號、密碼;但是需要二次錄入對應的賬號,還需要超級管理員設置的。
    似乎過于麻煩。

    不知道大家有何解決辦法?原諒我發到首頁。。

    posted @ 2009-08-13 11:21 smildlzj 閱讀(1349) | 評論 (4)編輯 收藏

    進入正題,看過了很多關于SSM的帖子,今天經過近20次的重啟,終于總結出了一個完美的解決方案!
    首先感謝Odin朋友的帖子
    我的想法是用注冊表的權限設置鎖住那個控制時間的鍵值,不就可以完美破解了嗎!經過我今天一下午的試驗,終于得出完美解決方案。
    一、首先是要找出那個控制時間的鍵值,方法是卸載原來的版本,重新安裝SSM,那么安裝日期就是今天的時期。打開Excel,將日期以yyyy-mm-dd的形式輸入表格中,然后照圖做:





    二、打開注冊表編輯器,搜索轉換出來的那個數字,這里是39073。那樣就可以找到那個鍵值了。
    三、選中那個項,形如{……},點右鍵→權限→……看圖:



    posted @ 2008-09-19 12:55 smildlzj 閱讀(496) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 97国免费在线视频| 免费中文字幕视频| 久久亚洲国产精品成人AV秋霞| 亚洲色自偷自拍另类小说| 亚洲色大成网站www永久一区| 一级做a爰片性色毛片免费网站| 久草免费手机视频| 三年片在线观看免费观看高清电影| 在线观看免费大黄网站| 亚洲精品成人在线| 亚洲成人免费电影| 亚欧国产一级在线免费| 成年黄网站色大免费全看| 暖暖日本免费在线视频| 久久精品国产亚洲Aⅴ蜜臀色欲 | 午夜老司机永久免费看片| 午夜dj在线观看免费视频| 亚洲精品无码不卡在线播放HE| jlzzjlzz亚洲jzjzjz| 亚洲小说图片视频| 国产一卡2卡3卡4卡2021免费观看 国产一卡2卡3卡4卡无卡免费视频 | 亚洲国产精品乱码在线观看97| 亚洲网站免费观看| www亚洲一级视频com| 亚洲视屏在线观看| aa级一级天堂片免费观看| 亚洲AV成人一区二区三区AV| 亚洲一卡2卡4卡5卡6卡在线99| 免费一本色道久久一区| 国产亚洲精品国产福利在线观看| 91精品手机国产免费| 亚洲av综合色区| 国产精品免费αv视频| 亚洲国产精品一区二区久久hs| 国产成人自产拍免费视频| 久久精品国产精品亚洲艾草网| 免费成人福利视频| 久久久久亚洲av无码专区| 久久久受www免费人成| 免费在线看片网站| 一本色道久久综合亚洲精品蜜桃冫 |