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

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

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

    隨筆-31  評(píng)論-7  文章-0  trackbacks-0
      2008年9月22日

    內(nèi)容如下:

     

    Code

    大家注意身體啊 



    --------------------------
    09博客園紀(jì)念T恤
    新聞:網(wǎng)站評(píng)測(cè):搜狐博客 VS 我燒網(wǎng)
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/08/25/1553578.html
    posted @ 2009-08-25 13:33 破名超難起 閱讀(160) | 評(píng)論 (0)編輯 收藏

    防盜鏈原理:

    http標(biāo)準(zhǔn)協(xié)議中有專門的字段記錄referer

    一來(lái)可以追溯上一個(gè)入站地址是什么

    二來(lái)對(duì)于資源文件,可以跟蹤到包含顯示他的網(wǎng)頁(yè)地址是什么。

    因此所有防盜鏈方法都是基于這個(gè)Referer字段

    網(wǎng)上比較多的2種

    一種是使用apache文件FileMatch限制,在httpd.conf中增加 ( 其實(shí)也可以將把下面的語(yǔ)句存成一個(gè).htaccess文件),并放到你的網(wǎng)站的根目錄(就是www/html目錄),這樣子別人就沒有辦法盜連你的東東了~~

    SetEnvIfNoCase Referer "^
    Order Allow,Deny
    Allow from env=local_ref
    Allow from 127.0.0.1


    這種很方便禁止非允許訪問URL引用各種資源文件

    請(qǐng)大家注意,把第一句"^
    http://www.linji.cn
    我應(yīng)該這么寫的
    "^
    第二種是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目錄權(quán)限限制
    在虛擬主機(jī)根目錄增加.htaccess文件,描述從定向,把非本地地址refer的圖片文件都從定向到警告圖片或者警告網(wǎng)頁(yè)上。

    首先要確認(rèn)你的服務(wù)器或空間的服務(wù)器解譯引擎為Apache2,還有支持.htaccess客戶設(shè)置文件,
    如果你有自己的服務(wù)器就請(qǐng)先對(duì)./conf/httpd.conf 文件做以下修改
    找到:#LoadModule rewrite_module modules/mod_rewrite.so
    把前面的 # 給去丟
    找到等一個(gè) AllowOverride None 改為 AllowOverride All
    重啟Apache2服務(wù)器

    接下就是做一個(gè) .htaccess 文件了,其 .htaccess 文件內(nèi)容為

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^
    http://aaoo.net/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://aaoo.net$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net$ [NC]
    RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://down.yoyo.com.ru/err.html [R,NC]

    其中有色的地方都是要改為你的:
    紅色:就是改為你提供下載頁(yè)面的地址,也就是只有通過(guò)這個(gè)地址才可以下載你所提供的東東。
    藍(lán)色:就是要保護(hù)文件的擴(kuò)展名(以|分開),也就是說(shuō)以這些為擴(kuò)展名的文件只有通過(guò)紅色的地址才可以訪問。
    綠色:如果不是通過(guò)紅色的地址訪問藍(lán)色這些為擴(kuò)展名的文件時(shí)就回重定向到綠色地址上。

    這個(gè)方法有個(gè)好處是,不同的虛擬主機(jī)用不同的描述定義。

    接下就是怎么用 .htaccess 文件來(lái)實(shí)現(xiàn)防盜鏈了。
    首先要在空間上建兩個(gè)目錄(當(dāng)然目錄名隨你),一個(gè)為 web 另一個(gè)為 down ,
    web 是用來(lái)放下載頁(yè)面的(或下載程序),down 當(dāng)然就是放你提供的東東的啦,
    把 .htaccess 文件的紅色部分改一下,改為http://你的域名/web。藍(lán)色部分
    改為你要保護(hù)文件的擴(kuò)展名。綠色部分改為http://你的域名/web。改后保存
    .htaccess 文件把它上傳到 down 目錄。

    還有第三種:

    我在解決plog禁止盜鏈的時(shí)候,發(fā)現(xiàn)個(gè)問題,也算個(gè)好方法。
    plog把所有資源都自己管理起來(lái),用resserver.php來(lái)動(dòng)態(tài)顯示,這樣統(tǒng)一的入口方便添加權(quán)限操作。
    同時(shí)造成上面2種方法無(wú)法使用,因?yàn)椴辉偈莂pache直接訪問資源文件,而是php通過(guò)文件讀取。

    因此只能在代碼中做手腳:在讀取資源文件輸出之前,加如下判斷代碼


    引用

    $referer = $_SERVER['HTTP_REFERER'];
    $selfurl = $_SERVER['HTTP_HOST'];
    if(false == strpos($referer,$selfurl))
    {
    echo '非法盜鏈!';
    exit(1);
    }





    這里有些偷懶,直接看引用地址中是否包含host地址,不過(guò)原理就是這樣,判斷referer是否是本站地址。

    我們常常在下載的時(shí)候,也碰到盜鏈網(wǎng)站無(wú)法下載,報(bào)盜鏈的問題。要下載這類文件最簡(jiǎn)單的方法就是改referer

    比方flashget中,網(wǎng)址下面的"引用"一欄中,直接填寫下載地址就可以了。



    --------------------------
    09博客園紀(jì)念T恤
    新聞:微軟:不一樣的PowerPoint 2010
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/08/21/1551756.html
    posted @ 2009-08-21 23:30 破名超難起 閱讀(333) | 評(píng)論 (0)編輯 收藏

    這兩天完善了一下視頻轉(zhuǎn)換這個(gè)東西,以前做的那套東西上傳完之后就開始轉(zhuǎn)換,無(wú)法適應(yīng)大并發(fā)量下的視頻轉(zhuǎn)換(我覺得同時(shí)有10個(gè)ffmpeg進(jìn)程在轉(zhuǎn)視頻服務(wù)器肯定要掛掉),所以我用了另一套方案,視頻上傳之后先不轉(zhuǎn)換,把視頻的基本信息存到數(shù)據(jù)庫(kù)中,然后由程序定時(shí)的從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),依次轉(zhuǎn)換視頻。具體做法是:1、上傳文件,將文件名存入數(shù)據(jù)庫(kù),同時(shí)在數(shù)據(jù)庫(kù)標(biāo)明videostat字段為0(表示未轉(zhuǎn)換)

      2、通過(guò)程序,每隔30秒(根據(jù)不同情況可以改變)取出一個(gè)未轉(zhuǎn)換(videostat=0)且失敗次數(shù)小于5(confailtime<5)的紀(jì)錄

      3、開始轉(zhuǎn)換視頻,這里要先將數(shù)據(jù)庫(kù)中videostat字段改為2(表示正在轉(zhuǎn)換)不然30秒鐘轉(zhuǎn)換不完下個(gè)進(jìn)程又會(huì)讀到這條紀(jì)錄開始轉(zhuǎn)換......

      4、等待轉(zhuǎn)換進(jìn)程結(jié)束,如果成功將相應(yīng)紀(jì)錄的videostat字段的值改為1(表示轉(zhuǎn)換成功),若轉(zhuǎn)換失敗則將失敗次數(shù)字段加一(confailtime=confailtime+1)

      在鼓搗這東西的過(guò)程中,遇到了一個(gè)問題,如果一個(gè)進(jìn)程先執(zhí)行p.waitFor();方法而后輸出命令行中的結(jié)果是不行的,即:

    Code

    如果這樣執(zhí)行的話進(jìn)程會(huì)掛起,無(wú)法繼續(xù)下午,而正確的方法是先讀取命令行的數(shù)據(jù),再來(lái)waitFor();

    還有一點(diǎn)需要注意的是獲得命令行的輸出結(jié)果先要從錯(cuò)誤流中獲得,即(ErrorStream),而非從輸入流(InputStream)中獲得,很有用的經(jīng)驗(yàn)。



    --------------------------
    09博客園紀(jì)念T恤
    新聞:自由軟件基金會(huì)列舉Windows 7之七宗罪
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/08/04/1538824.html
    posted @ 2009-08-04 17:45 破名超難起 閱讀(275) | 評(píng)論 (0)編輯 收藏

    很久不在這里發(fā)帖子了,最近在家閑來(lái)無(wú)事,想到轉(zhuǎn)視頻的那東西又要做了,遂翻出以前的帖子,看到一年前豐哥讓我做一下文件上傳的進(jìn)度條....額~~那就做一下吧。

    東西很簡(jiǎn)單,主要用到commons-fileupload,其中有一個(gè)progressListener的接口,該接口可以實(shí)現(xiàn)實(shí)時(shí)更新已上傳文件的大小,有了這個(gè)還說(shuō)什么呢?

    給出代碼

    代碼

     

    然后在上傳得servlet或action中加入這樣一段代碼,就可以把自定義的progressListener添加進(jìn)去

     

    代碼

     

    最后就是通過(guò)js來(lái)不斷的訪問另一個(gè)servlet來(lái)實(shí)時(shí)返回上傳狀態(tài)就可以了,限于篇幅我就不再貼代碼了,有興趣的讀者可以自己下載來(lái)看。

     代碼下載(目標(biāo)另存為就行了)



    --------------------------
    09博客園紀(jì)念T恤
    新聞:網(wǎng)速調(diào)查報(bào)告:韓國(guó)互聯(lián)網(wǎng)網(wǎng)速全球居首
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/08/03/1537870.html
    posted @ 2009-08-03 19:46 破名超難起 閱讀(4901) | 評(píng)論 (7)編輯 收藏
    http://family168.com/oa/springsecurity/html/index.html
    posted @ 2009-07-19 18:28 破名超難起 閱讀(198) | 評(píng)論 (0)編輯 收藏

    package lc.util;

    import java.math.BigDecimal;

    public class MathHelper {
     private static final int DEF_DIV_SCALE = 10;

     private MathHelper() {

     }

     /**
      * 提供精確的加法運(yùn)算。
      *
      * @param v1
      *            被加數(shù)
      * @param v2
      *            加數(shù)
      * @return 兩個(gè)參數(shù)的和
      */
     public static double add(double v1, double v2) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.add(b2).doubleValue();
     }

     /**
      * 提供精確的減法運(yùn)算。
      *
      * @param v1
      *            被減數(shù)
      * @param v2
      *            減數(shù)
      * @return 兩個(gè)參數(shù)的差
      */
     public static double sub(double v1, double v2) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.subtract(b2).doubleValue();
     }

     /**
      * 提供精確的乘法運(yùn)算。
      *
      * @param v1
      *            被乘數(shù)
      * @param v2
      *            乘數(shù)
      * @return 兩個(gè)參數(shù)的積
      */
     public static double mul(double v1, double v2) {
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.multiply(b2).doubleValue();
     }

     /**
      * 提供(相對(duì))精確的除法運(yùn)算,當(dāng)發(fā)生除不盡的情況時(shí),精確到 小數(shù)點(diǎn)以后10位,以后的數(shù)字四舍五入。
      *
      * @param v1
      *            被除數(shù)
      * @param v2
      *            除數(shù)
      * @return 兩個(gè)參數(shù)的商
      */
     public static double div(double v1, double v2) {
      return div(v1, v2, DEF_DIV_SCALE);
     }

     /**
      * 提供(相對(duì))精確的除法運(yùn)算。當(dāng)發(fā)生除不盡的情況時(shí),由scale參數(shù)指 定精度,以后的數(shù)字四舍五入。
      *
      * @param v1
      *            被除數(shù)
      * @param v2
      *            除數(shù)
      * @param scale
      *            表示表示需要精確到小數(shù)點(diǎn)以后幾位。
      * @return 兩個(gè)參數(shù)的商
      */

     public static double div(double v1, double v2, int scale) {
      if (scale < 0) {
       throw new IllegalArgumentException(
         "The scale must be a positive integer or zero");
      }
      BigDecimal b1 = new BigDecimal(Double.toString(v1));
      BigDecimal b2 = new BigDecimal(Double.toString(v2));
      return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
     }

     /**
      * 提供精確的小數(shù)位四舍五入處理。
      *
      * @param v
      *            需要四舍五入的數(shù)字
      * @param scale
      *            小數(shù)點(diǎn)后保留幾位
      * @return 四舍五入后的結(jié)果
      */
     public static double round(double v, int scale) {
      if (scale < 0) {
       throw new IllegalArgumentException(
         "The scale must be a positive integer or zero");
      }
      BigDecimal b = new BigDecimal(Double.toString(v));
      BigDecimal one = new BigDecimal("1");
      return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
     }
    }



    --------------------------
    09博客園紀(jì)念T恤
    新聞:王建宙臺(tái)灣布道TD:痛快,一起努力的感覺
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/05/20/1469589.html
    posted @ 2009-05-20 17:13 破名超難起 閱讀(313) | 評(píng)論 (0)編輯 收藏

    import java.sql.*;

    public class Access

    {

    public static void main(String args[])

    {

    try

    {

    String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=books.mdb";

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    Connection conn=DriverManager.getConnection(strurl) ;

    Statement stmt=conn.createStatement();

    ResultSet rs=stmt.executeQuery("select * from books");

    if(rs.next())

    {

    System.out.println(rs.getString("簡(jiǎn)介"));

    }

    }catch(Exception e)

    {

    System.out.println(e);

    }

    }

    }



    --------------------------
    09博客園紀(jì)念T恤
    新聞:微軟正式對(duì)Word禁售令提起上訴 稱法官不懂法
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/05/08/1452661.html
    posted @ 2009-05-08 15:08 破名超難起 閱讀(185) | 評(píng)論 (0)編輯 收藏

    又一個(gè)新聞發(fā)布......比以前的更加人性化了,用到了Struts2、Struts2的JSON插件,前臺(tái)js用了Jquery庫(kù),自己看吧。歡迎大家提出自己的寶貴意見。

    關(guān)于顯示新聞的功能我還沒有找到一個(gè)合適的AJAX表現(xiàn)形式,所以還沒有完成,歡迎大家給我個(gè)建議

     

    點(diǎn)擊下載源碼



    --------------------------
    09博客園紀(jì)念T恤
    新聞:IBM 2009年北美裁員近1萬(wàn)人
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2009/03/16/1413631.html
    posted @ 2009-03-16 17:48 破名超難起 閱讀(202) | 評(píng)論 (0)編輯 收藏

         最近搞的一個(gè)通訊錄想要加一個(gè)Ajax的自動(dòng)完成功能,看起來(lái)功能雖小,可給用戶的體驗(yàn)會(huì)改進(jìn)不少。在一個(gè)介紹了幾十種java的Ajax框架的網(wǎng)頁(yè)里面,我找到了AjaxTags這個(gè)小東西,開始了我的第一次Ajax之旅。

         從AjaxTags的官方網(wǎng)站上面http://ajaxtags.sourceforge.net/可以下載到其最新的版本,目前是AjaxTags1.3順便下載了一個(gè)官方的小例子看了看,確實(shí)很好阿,例子中使用Ajax完成了11種功能,然而我需要的是自動(dòng)完成(autocomplete)部分的代碼,所以重點(diǎn)研究這一部分

          jsp頁(yè)面中,首先當(dāng)然是要添加AjaxTags的標(biāo)簽支持,需要如下語(yǔ)句

    Code

         然后在頁(yè)面中加入如下的標(biāo)簽

     

    Code

        在官方的例子中使用的是Servlet來(lái)完成Ajax,而對(duì)于使用struts就不適用了,后面說(shuō)這個(gè)問題。

        在 autocomplete.view對(duì)應(yīng)的Servlet類中需要建立xml來(lái)供頁(yè)面調(diào)取,代碼如下

    Code
        其實(shí)還是很簡(jiǎn)單的,接下來(lái)看CarService的代碼吧,重點(diǎn)其實(shí)只有一段,然后在下面顯示出自動(dòng)提示,于是可以把剛才的那個(gè)ajax標(biāo)簽修改如下
    Code

    例子看完了,開始實(shí)際操作吧,在我的頁(yè)面中,需要通過(guò)一個(gè)名為"name"的文本框輸入要查詢的人的姓名

    Code

     接下來(lái)是我的Action,在寫Action的時(shí)候,我以為只需要把原來(lái)Servlet繼承的BaseAjaxServlet改為BaseAjaxAction就可以了,可后來(lái)才發(fā)現(xiàn),jar包中根本就沒有BaseAjaxAction這個(gè)類,無(wú)語(yǔ),去官方網(wǎng)站上看了后才知道,在1.2更新到1.3的時(shí)候,把對(duì)Struts的支持去掉了,如果想支持Struts的話需要建立自己的BaseAjaxAction

    (Struts removed, to use it create your own BaseAjaxAction.java and implement BaseAjaxXmlAction then just call xml = AjaxActionHelper.invoke(this, request, response);)

    下載了一份AjaxTags的源碼來(lái)看,原來(lái)AjaxActionHelper.invoke();這個(gè)方法需要調(diào)用Action中的getXmlContent方法來(lái)完成xml的寫入,那就好說(shuō)了,代碼如下:

    Code
    剩下工作就是在struts-config.xml中配置對(duì)應(yīng)的action,在spring中配置對(duì)應(yīng)的bean就ok拉

     



    --------------------------
    09博客園紀(jì)念T恤
    新聞:Office 2010雙拳出擊加強(qiáng)反盜版
    網(wǎng)站導(dǎo)航: 博客園首頁(yè)  個(gè)人主頁(yè)  新聞  社區(qū)  博問  閃存  找找看
    文章來(lái)源:http://www.cnblogs.com/xiaoao808/archive/2008/09/22/1295661.html
    posted @ 2008-09-22 09:42 破名超難起 閱讀(209) | 評(píng)論 (0)編輯 收藏
    主站蜘蛛池模板: 一区二区三区福利视频免费观看| 亚洲av永久无码精品古装片| 亚洲一卡2卡3卡4卡国产网站| 日韩免费电影网站| 久久91亚洲人成电影网站| xvideos永久免费入口| 亚洲国产精品人人做人人爱| 苍井空亚洲精品AA片在线播放| 亚洲一区精品无码| 国产99久久久国产精免费| 国产午夜亚洲不卡| 国产午夜免费高清久久影院| 亚洲精品乱码久久久久久 | 国产成人免费网站在线观看| 亚洲AV色吊丝无码| 成人永久福利免费观看| 黄色网址在线免费观看| 久久精品亚洲福利| 中文字幕无码日韩专区免费| 亚洲欧洲日产国码久在线观看| 国产大片免费网站不卡美女| 久久久久亚洲国产| 一个人看的免费视频www在线高清动漫 | 日韩内射激情视频在线播放免费| 久久久久亚洲AV无码观看 | www.亚洲精品| 亚洲人成电影在线天堂| 亚洲精品在线免费观看| 亚洲人成网亚洲欧洲无码| 免费成人黄色大片| 美女视频黄a视频全免费网站色窝| 精品日韩亚洲AV无码| 好吊妞在线成人免费| 国产福利电影一区二区三区,免费久久久久久久精 | 日本免费一区尤物| 国产在线精品一区免费香蕉| 久久夜色精品国产亚洲AV动态图| 国产大片免费网站不卡美女| 美女被吸屁股免费网站| 亚洲欧洲一区二区| 国产免费人视频在线观看免费|