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

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

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

    yxhxj2006

    常用鏈接

    統(tǒng)計

    最新評論

    #

    從程序員到CTO的Java技術(shù)路線圖

      在技術(shù)方面無論我們怎么學(xué)習(xí),總感覺需要提升自已不知道自己處于什么水平了。但如果有清晰的指示圖供參考還是非常不錯的,這樣我們清楚的知道我們大概處于那個階段和水平。 

     

    Java程序員

    高級特性

                  反射、泛型、注釋符、自動裝箱和拆箱、枚舉類、可變

                  參數(shù)、可變返回類型、增強循環(huán)、靜態(tài)導(dǎo)入

            核心編程

                 IO、多線程、實體類、

                 集合類、正則表達式、

                 XML和屬性文件

                 圖形編程

                 AWT(Java2D/JavaSound/JMF)、Swing、SWT、JFace

            網(wǎng)路編程

                Applet、Socket/TCP/UDP、NIO、RMI、CORBA

           Java語法基礎(chǔ)

               類、抽象類、接口、最終類、靜態(tài)類、匿名類、內(nèi)部類、異常類、編碼規(guī)范

          Java開發(fā)環(huán)境

              JDK、JVM、Eclipse、Linux

    Java核心編程技術(shù)

    Java,設(shè)計而又非常精巧的語言。學(xué)習(xí)Java,須從Java開發(fā)環(huán)境開始,到Java語法,再到Java的核心API。

            1.Java開發(fā)入門:Java開發(fā)環(huán)境的安裝與使用,包括JDK命令、EclipseIDE、Linux下Java程序的開發(fā)和部署等。

            2.Java語法基礎(chǔ):基于JDK和Eclipse環(huán)境,進行Java核心功能開發(fā),掌握Java面向?qū)ο蟮恼Z法構(gòu)成,包括類、抽象類、接口、最終類、靜態(tài)類、匿名類、內(nèi)部類、異常的編寫。

            3.Java核心API:基于JDK提供的類庫,掌握三大核心功能:

            A。Java核心編程:包括Java編程的兩大核心功能——Java輸入/輸出流和多線程,以及常用的輔助類庫——實體類、集合類、正則表達式、XML和屬性文件。

            B。Java圖形編程:包括Sun的GUI庫AWT(Java2D、JavaSound、JMF)和Swing,IBM和GUI庫SWT和Jface;

            C. Java網(wǎng)路編程:Applet組件編程,Socket編程,NIO非阻塞Socket編程、RMI和CORBA分布式開發(fā)。

            4.Java高級特性:掌握JDK1.4、JDK5.0、JDK6.0中的Java高級特性,包括反射、泛型、注釋,以及java高級特性——自動裝箱和拆箱、枚舉類、可變參數(shù)、可變返回類型、增強循環(huán)、靜態(tài)導(dǎo)入等。

    JavaEE初級軟件工程師

    JSF框架開發(fā)技術(shù)

           配置文件(頁面導(dǎo)航、后臺Bean)、JSF組件庫(JSF EL語言、HTML標簽、事件處理、)、JSF核心庫(格式轉(zhuǎn)換、輸入驗證、國際化)

    Javaweb核心開發(fā)技術(shù)       

           開發(fā)環(huán)境(Eclipse、Linux)

           三大組件(JSP、JavaBean、Servlet)

           擴展技術(shù)(EL、JSTL、Taglib)

    網(wǎng)頁開發(fā)技術(shù)

           HTML、XML、CSS、JavaScript、AJAX

           數(shù)據(jù)庫設(shè)計技術(shù)

           SQL、MySql、Oracle、SQLServer、JDBC

    Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)

    JavaWeb核心技術(shù):

            JavaWeb項目開發(fā)的全過程可以分解為:

           網(wǎng)頁開發(fā)+數(shù)據(jù)庫設(shè)計——>JavaWeb項目開發(fā),其中,javaWeb由6項基本技術(shù)組成:JSP+JavaBean+Servlet+EL+JSTL+Taglib,而JSF正是將這6種技術(shù)進行有機結(jié)合的技術(shù)框架:

    JavaEE中級軟件工程師

    四種經(jīng)典架構(gòu)SSH1、SSI1、SSH2、SSI2

            Struts1表現(xiàn)層框架

          入門配置、核心組件、標簽庫、國際化、數(shù)據(jù)檢驗、數(shù)據(jù)庫開發(fā)、Sitemesh集成、集成Hibernate/iBATIS

            Struts2表現(xiàn)層框架

                   入門配置、核心組件、標簽庫、國際化、數(shù)據(jù)校驗、Sitemesh集成轉(zhuǎn)換器、攔截器、集成Hibernate/iBATIS

            Spring業(yè)務(wù)層框架

                  入門配置、IoC容器、MVC、標簽庫、國際化、數(shù)據(jù)校驗、數(shù)據(jù)庫開發(fā)

            Hibernate持久層框架

                MySQL、Oracle、SQLServer iBATIS持久層框架

                MySQL、Oracle、SQLServer

    Web服務(wù)器(Tomcat/Jetty/Resin/JBossWeb)

    Java高級軟件工程師

    javaWeb開源技術(shù)與框架

            工作流、

    規(guī)則引擎

    搜索引擎、

    緩存引擎 、

            任務(wù)調(diào)度、

    身份認證

            報表服務(wù)、

    系統(tǒng)測試、

            集群、

    負載平衡、

    故障轉(zhuǎn)移

    JavaWeb分布式開發(fā)技術(shù)

    JTA(Java事物管理)

          JAAS(Java驗證和授權(quán)服務(wù))

          JNDI(Java命名和目錄服務(wù))

          JavaMail(Java郵件服務(wù))

    JMS(java信息服務(wù))

    WebService(web服務(wù))

    JCA(java連接體系)

    JMS(java管理體系)

    應(yīng)用服務(wù)器(JBossAS/WebLogic/WebSphere)

    JavaEE系統(tǒng)架構(gòu)師

            面向云架構(gòu)(COA)

                COA、SaaS、網(wǎng)格計算、集群計算、分布式計算、云計算

            面向資源架構(gòu)(ROA)

                ROA、RESI

            面向web服務(wù)架構(gòu)(SOA)

               WebService、SOA、SCA、ESB、OSGI、EAI

            Java設(shè)計模式

              創(chuàng)建式模式:抽象工廠/建造者/工廠方法/原型/單例

              構(gòu)造型模式:適配器/橋接/組合/裝飾/外觀/享元/代理

              行為型模式:責(zé)任鏈/命令/解釋器/迭代子/中介者/備忘錄/觀察者/狀態(tài)/策略/模板方法/訪問者

           Java與UML建模

              對象圖、用例圖、組件圖、部署圖、序列圖、交互圖、活動圖、正向工程與逆向工程

    CTO首席技術(shù)官

             發(fā)展戰(zhàn)略

             技術(shù)總監(jiān)

             團隊提升

             團隊建設(shè)

             項目管理

             產(chǎn)品管理

    企業(yè)級項目實戰(zhàn)(帶源碼)地址http://zz563143188.iteye.com/blog/1825168


    收集五年的開發(fā)資料下載地址:  http://pan.baidu.com/share/home?uk=4076915866&view=share

     

     

     

     

     下面的更深入的有興趣可以了解一下,我的目的不是要大家掌握下面的知識,只是希望擴展自己的思維,摘自牛人的技術(shù)博客。

    /**************************************************牛人必看*****************************************************************/

     

     

     

    系統(tǒng)后臺框架:

     

     

    前端工程師技能:

     

     

     

    B2C電子商務(wù)基礎(chǔ)系統(tǒng)架構(gòu)解析
    運營B2C日 久,越來越深刻的意識到IT系統(tǒng)對確保規(guī)范化業(yè)務(wù)流轉(zhuǎn),支撐消費者端的均一服務(wù)有著決定性的作用。于是,一直想好好整理下相關(guān)的系統(tǒng)架構(gòu),怎奈俗務(wù)纏身, 一直拖到今日,猛然發(fā)現(xiàn)下周娃很可能就要出生,拖無可拖,快馬加筆,居然整出來了。本文的重點是理清系統(tǒng)的邏輯關(guān)系,詳細的功能模塊請參見結(jié)尾附上的系統(tǒng) 架構(gòu)圖。
    首先,聊下對系統(tǒng)邏輯架構(gòu)的看法;我個人始終堅持認為,系統(tǒng)的開發(fā)與演化,前臺嚴格follow消費者的購買流程,后臺則盯牢訂單流轉(zhuǎn),牢牢抓住這兩條主線,才能高屋建瓴的看清B2C的邏輯鏈和數(shù)據(jù)流,更深刻的規(guī)劃功能模塊,從而更有效支撐實際業(yè)務(wù)的流轉(zhuǎn)。
    前臺系統(tǒng)包括:商品展示,內(nèi)容展示,訂單確認,支付系統(tǒng),用戶中心四大模塊
    一,商品展示
    按照Ebay的內(nèi)部分類,任何將商品以單個或批量的方式展示給消費者的功能均應(yīng)歸入此系統(tǒng)。因此,該系統(tǒng)至少包括:
    A,站內(nèi)搜索(搜索提示,搜索規(guī)則,搜索成功頁,搜索不成功頁,相似推薦)
    B,導(dǎo)航(頻道導(dǎo)航,其他導(dǎo)航如銷售排行,廣告位,推薦位,文字鏈,Also buy等)
    C,商品分類(品牌分類,品類分類,屬性分類如剪裁形式)
    D, 登陸頁(商品列表頁,商品詳細頁,商品活動頁)
    這里的訪問邏輯是:A /B/C分流消費者去往相對個性化的頁面,由登陸頁體現(xiàn)商家的核心訴求和價值傳遞,完成call-to-action的第一步。
    二,內(nèi)容展示
    內(nèi)容展示較為簡單,對純購物品牌而言包括:
    A,公告區(qū)
    B,幫助中心
    C,論壇(如需商城與論壇發(fā)生交互,則需自行開發(fā),否則可集成discuz做同步登陸即可)
    大家都知道,就不多說了。
    三,訂單確認
    訂單確認,就是幫助消費者正確提交訂單信息的環(huán)節(jié),看似簡單,實則非常復(fù)雜,需要對很多信息邏輯判斷和處理,一般由2個部分組成:
    A,購物車(購物車浮層,購物車頁面,無注冊購買)
    無注冊購買是需要慎用的功能,除非刻意追求用戶的短平快下單,如團購/換購,一般不推薦使用,會造成系統(tǒng)異常復(fù)雜,開發(fā)量也很大。
    B,訂單提交(返回購物車,收貨地址&地址薄,支付方式判斷,配送方式,發(fā)票,訂單標記,實付金額計算等等)
    值得一提的是,幾乎大多數(shù)的促銷邏輯運算在這個環(huán)節(jié)完成,充分考慮各種促銷方式之間的互斥與重疊是系統(tǒng)設(shè)計的核心,需要充分考慮各種情況,避免出現(xiàn)邏輯漏洞。
    四,支付系統(tǒng)
    與一般的想象不同,支付系統(tǒng)其實并不簡單等于第三方支付工具接入:
    A,外部支付系統(tǒng)(支付寶將接口,財付通接口,網(wǎng)銀直聯(lián)端口,信用ka分期端口)
    B,內(nèi)部支付系統(tǒng)(賬戶余額,積分,禮品卡,優(yōu)惠券)
    支付系統(tǒng)的邏輯設(shè)計不但需要考慮到各種極端情況的發(fā)生(如一張訂單先用禮品卡,再用積分,最后網(wǎng)銀支付),還要預(yù)留財務(wù)做賬所需的相關(guān)字段,并充分考慮訂單取消之后如何回滾各類內(nèi)部賬戶。
    五,用戶中心
    用戶中心的實質(zhì)是用戶自助功能的dashboard,一般4個部分組成:
    A,注冊&登陸(快速注冊,完整注冊,注冊有禮,推薦注冊,密碼找回,主站id登陸,open-id登陸如QQ,新浪微博等)
    B,訂單中心(歷史訂單狀態(tài),中間狀態(tài)訂單修改,物流追蹤)
    C,服務(wù)中心(各類自助服務(wù)如退款申請,退換貨申請,建議與投訴等)
    D, 信息管理(用戶基本信息管理和賬戶信息管理)
    用戶中心的價值在于:盡可能引導(dǎo)用戶自行獲取所需的信息并提交所需的服務(wù),在提升服務(wù)準確率,及時性的同時降低對人工成本。
    后臺系統(tǒng)包括:商品&促銷,CRM,訂單處理,WMS,采購管理,財務(wù)管理,報表管理,系統(tǒng)設(shè)置,WA系統(tǒng)9大模塊
    一, 商品&促銷
    商品&促銷模塊的核心在于確保消費者下單之前,前臺內(nèi)容所見即所得
    A, 商品管理(品類管理,品牌管理,單品管理)
    B, 促銷管理(活動管理和自定義活動模板管理)
    在上述模塊中,最重要的是2個部分:單品管理中的批量產(chǎn)品生成的自動程序和活動管理中“共享與互斥”管理。前者用于大幅提升上新速度,后者避免促銷活動失控。
    二, CRM
    CRM是對B2C核心資源—會員的管理,服務(wù)與再營銷系統(tǒng),包括如下部分:
    A,會員管理(會員信息的增刪改查和到其他系統(tǒng)的鏈接)
    B,用戶關(guān)懷(條件觸發(fā)和人工觸發(fā)相關(guān)EDM & 短信 & OB)
    C,定向營銷(會員分組和營銷活動管理)
    D, 客服管理(內(nèi)容非常多,集成所有需前臺與后臺交互的功能,詳情還是看圖吧)
    E, 呼叫中心(IVR,坐席管理,統(tǒng)計報表,參數(shù)傳遞與窗口嵌入)
    值得注意的,EDM和短信通道市面上已經(jīng)有成熟的外包服務(wù)商,一般都會外包;呼叫中心和在線客服自行開發(fā)成本太高,特別是呼叫中心系統(tǒng),業(yè)務(wù)初期也都是外包的。
    三, 訂單處理
    訂單處理是在訂單未正式進入倉儲部門處理之前,對訂單的前置性處理環(huán)節(jié)。
    A,訂單錄入(電話訂購,網(wǎng)上下單,外部團購訂單,無金額訂單錄入如禮品單)
    B,訂單審核(自動審核和人工審核)
    C,RMA處理(RMA申請單和RMA處理單)
    RMA的邏輯也異常復(fù)雜,需要在效率和成本之間找平衡,確保在不拖垮倉儲部門的正常出入庫的前提下對消費者端快速有效close工單;對內(nèi)部則需要控制成本,貨損不能超過預(yù)算上限。
    四, WMS(Warehouse Management system倉庫管理系統(tǒng))
    WMS的流程很長,功能模塊也很多,大致分為入庫管理,庫存管理,出庫管理和票據(jù)管理4個模塊四個模塊,細細道來就是另外一篇文章了,各位可以參考 我這篇文章:庖丁解牛—B2C倉儲內(nèi)部運作解密(上,中,下)http://blog.sina.com.cn/wangxida0855
    五, 采購管理
    采購管理的核心是有效跟進采購合同/發(fā)票的狀態(tài),大貨的采購入庫/退庫,財務(wù)結(jié)算和在倉庫存查詢和處理。
    A,供應(yīng)商管理(供應(yīng)商信息管理,合同發(fā)票管理)
    B,采購單管理(PO單管理,負PO單管理)
    C,庫存管理(庫存查詢,庫存占用單,庫存變動log)
    六, 財務(wù)管理
    B2C的財務(wù)管理,主要是對供應(yīng)商,渠道和內(nèi)部費用支出的成本控制。
    A,供應(yīng)商結(jié)算
    B,渠道結(jié)算
    C,配送結(jié)算
    D, 內(nèi)部結(jié)算
    說實在的,哥對財務(wù)這塊也不算很了解,大家將就看看,圖片上有明細。
    七, 報表管理
    報表是B2C業(yè)務(wù)的宏觀表現(xiàn),理論上說,每個部門的KPI都應(yīng)該從中找到。
    A,搜索報表(站內(nèi)搜索量查詢)
    B,銷售報表(多個維度銷量查詢,優(yōu)惠券使用情況,報表導(dǎo)出)
    C,財務(wù)報表
    D, 客服報表(客服日報和坐席報表)
    前者反映與消費者發(fā)生的日常交互(包括正常與異常),后者考核客服的工作績效
    E, 倉儲物流報表
    這幾塊報表,是業(yè)務(wù)運作的核心,涉及到公司機密,就不能寫的太細了,見諒。
    八, 系統(tǒng)設(shè)置
    這塊大家都知道是干嘛的,也就不多說了,分成三塊。
    A,基礎(chǔ)設(shè)置(和業(yè)務(wù)有關(guān)的一些字段值)
    B,權(quán)限設(shè)置(不同賬號的操作權(quán)限和操作記錄)
    C,其他設(shè)置
    九, WA系統(tǒng)(Web Analytcis)
    網(wǎng)站分析系 統(tǒng),幾乎全是外購,很少有能夠自建的,即使自建,最多做幾個簡單的模塊。用于實戰(zhàn)的,要么是免費的GA(Google Analytics),要么是昂貴的Omniture。這塊的知識,細細說來也是另外一篇文章了,有興趣的同學(xué)可以看我這篇科普文章:揭秘—我所知道的網(wǎng) 站分析(上,下) http://blog.sina.com.cn/wangxida0855
    最后,上全系統(tǒng)大圖,再感慨一句,B2C系統(tǒng),真是一個大工程啊。

     

    fr  http://blog.sina.com.cn/s/blog_59d6717c0100syh3.html

    posted @ 2015-04-11 13:41 奮斗成就男人 閱讀(248) | 評論 (0)編輯 收藏

    ajax+json+Struts2實現(xiàn)list傳遞(轉(zhuǎn)載)

         摘要: ajax+json+Struts2實現(xiàn)list傳遞(轉(zhuǎn)載)一、首先需要下載JSON依賴的jar包。它主要是依賴如下:      json-lib-2.2.2-jdk15      ezmorph-1.0.4       commons-logging-1.0.4&nbs...  閱讀全文

    posted @ 2015-04-04 01:17 奮斗成就男人 閱讀(352) | 評論 (0)編輯 收藏

    iBatis簡單入門教程

         摘要: Batis 簡介:iBatis 是apache 的一個開源項目,一個O/R Mapping 解決方案,iBatis 最大的特點就是小巧,上手很快。如果不需要太多復(fù)雜的功能,iBatis 是能夠滿足你的要求又足夠靈活的最簡單的解決方案,現(xiàn)在的iBatis 已經(jīng)改名為Mybatis 了。官網(wǎng)為:http://www.myb...  閱讀全文

    posted @ 2015-04-04 01:16 奮斗成就男人 閱讀(199) | 評論 (0)編輯 收藏

    PHP頁面跳轉(zhuǎn)代碼

    第一篇: JavaScript 跳轉(zhuǎn)

    方法一:

    <script language="javascript">
        window.location= "http://www.baidu.com";
    </script>

    方法二:

    <script language="javascript">
        document.location = "http://www.baidu.com";
    </script>

    方法三: (帶進度條)

    <html>
    <head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
    <title>跳轉(zhuǎn)到baidu.com</title>
    </head>
    <body>
    <form name=loading>
    <P align=center><FONT face=Arial color=#0066ff size=2>loading...</FONT>
    <INPUT style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bolder; PADDING-BOTTOM: 0px; COLOR: #0066ff; BORDER-TOP-style: none; PADDING-TOP: 0px; BORDER-RIGHT-style: none; BORDER-LEFT-style: none; BACKGROUND-COLOR: white; BORDER-BOTTOM-style: none"
    size=46 name=chart>
    <BR>
    <INPUT style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; COLOR: #0066ff; BORDER-BOTTOM: medium none;" size=47 name=percent>
    <script language="javascript">
    var bar=0
    var line="||"
    var amount="||"
    count()
    function count(){
        bar=bar+2
        amount =amount + line
        document.loading.chart.value=amount
        document.loading.percent.value=bar+"%"
        if (bar<99){
            setTimeout("count()",100);
        }else{
            window.location = "http://www.baidu.com/";
        }
    }
    </script>
    </P>
    </form>
    </body>
    </html>

    第二篇: 頁面跳轉(zhuǎn)

    <head>
    <meta http-equiv="refresh" content="10; url=http://www.baidu.com">
    </head>

    第三篇: 動態(tài)頁面跳轉(zhuǎn)

    方法一: PHP 跳轉(zhuǎn)

    <?php
    header("location: http://www.baidu.com");
    ?>


    方法二: ASP 跳轉(zhuǎn)

    <%
    response.redirect "http://www.baidu.com"
    %>

    FYI:
    <%
    Dim ID1
    Dim ID2
    dim str
    ID1 = Request("forumID")
    ID2 = Request("threadID")
    str="/blog/threadview.asp?forumID="& ID1 &"&threadID=" & ID2
    response.redirect str
    %>
    <%
    response.redirect "http://www.baidu.com"
    %>

    FYI:
    <%
    Dim ID1
    Dim ID2
    dim str
    ID1 = Request("forumID")
    ID2 = Request("threadID")
    str="/blog/threadview.asp?forumID="& ID1 &"&threadID=" & ID2
    response.redirect str
    %>

    posted @ 2015-04-01 17:08 奮斗成就男人 閱讀(237) | 評論 (0)編輯 收藏

    zencart使用smtp發(fā)郵件設(shè)置

    zencart如何設(shè)置smtp發(fā)郵件,zencart不能發(fā)email,發(fā)email失敗怎么辦?zen cart要使用gmail發(fā)送郵件,首先要把你的gmail賬戶開通pop/smtp, 然后再zencart后臺設(shè)置郵件發(fā)送方式,郵箱帳號,密碼。 
    具體操作方法如: 
    進入后臺--商店設(shè)置--電子郵件,首先選擇”電子郵件發(fā)送方式“為smtpauth。然后輸入你的gamil郵箱地址。 
    最后設(shè)置

    1)首先后臺電子郵件 發(fā)送方式是:smtpauth
    2)smtp帳號郵箱:xxx@gmail.com
    3)smtp帳號密碼:xxxxxxxx
    4)smtp主機:smtp.gmail.com
    5)smtp服務(wù)器端口:465或者587

    注意:國內(nèi)的郵箱最好使用163郵箱:服務(wù)器:smtp.163.com  端口:465/25,其他的郵箱不能發(fā),具體原因暫時不清楚。

    如果這樣設(shè)置是正確的。但是有些主機還是會出現(xiàn)Email Error: SMTP Error: Could not connect to SMTP host.這樣的情況 。

    這個需要服務(wù)器支持。檢查下后臺-工具-服務(wù)器信息里是否有OpenSSL。因為google 傳輸是ssl://smtp.gmail.com協(xié)議。

    所以需要服務(wù)器支持Openssl這個尤為重要。

    補充重要情況:電子郵件必須從現(xiàn)有域名發(fā)送  設(shè)置成 no


    zencart-email-smtp.png
    zencart-email-smtp.png

     

    如果還是發(fā)不了email,可參考下面的技術(shù)細節(jié):

    在服務(wù)器上 telnet smtp.gmail.com 465 確定能連接

    yum -y install openssl 安裝ssl,重啟apache在試一試

     

     

     開通gmail帳號的pop/smtp功能:
    gmail-pop-smtp.png

     

    Zen Cart后臺郵件發(fā)送不成功的解決辦法,錯誤提示“電子郵件錯誤: The following From address failed: ”
    幾個需要注意的設(shè)置項:
    1、服務(wù)器應(yīng)啟用SMTPAUTH電子郵件發(fā)送方式;
    2、檢查SMTP帳號、郵箱、密碼、郵件服務(wù)器域名和端口是否設(shè)置正確。
    3、發(fā)件人郵件地址要用你的SMTP郵箱帳號,并且電子郵件必須從現(xiàn)有域名發(fā)送設(shè)為Yes.

    * 如果上述都沒錯,請多換其他SMTP賬戶/郵箱測試。推薦gmail

    收費調(diào)試服務(wù)

    我們希望您能自己搞定這些問題,但是如果你多方測試都無法找到發(fā)郵件不成功的解決辦法,我們也提供收費調(diào)試服務(wù)。診斷調(diào)試要花費技術(shù)很多時間,調(diào)試一次需要的時間可能很長,估計2-5小時。每次調(diào)試收費200元。保證幫你調(diào)試到前臺 聯(lián)系我們 contact us 頁面能發(fā)送郵件

    posted @ 2015-04-01 14:47 奮斗成就男人 閱讀(1389) | 評論 (0)編輯 收藏

    linux下導(dǎo)入、導(dǎo)出mysql數(shù)據(jù)庫命令

    一、導(dǎo)出數(shù)據(jù)庫用mysqldump命令(注意mysql的安裝路徑,即此命令的路徑):
    1、導(dǎo)出數(shù)據(jù)和表結(jié)構(gòu):
    mysqldump -u用戶名 -p密碼 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql
    #/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql
    敲回車后會提示輸入密碼

    2、只導(dǎo)出表結(jié)構(gòu)
    mysqldump -u用戶名 -p密碼 -d 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql
    #/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

    注:/usr/local/mysql/bin/  --->  mysql的data目錄


    二、導(dǎo)入數(shù)據(jù)庫
    1、首先建空數(shù)據(jù)庫
    mysql>create database abc;

    2、導(dǎo)入數(shù)據(jù)庫
    方法一:
    (1)選擇數(shù)據(jù)庫
    mysql>use abc;
    (2)設(shè)置數(shù)據(jù)庫編碼
    mysql>set names utf8;
    (3)導(dǎo)入數(shù)據(jù)(注意sql文件的路徑)
    mysql>source /home/abc/abc.sql;
    方法二:
    mysql -u用戶名 -p密碼 數(shù)據(jù)庫名 < 數(shù)據(jù)庫名.sql
    #mysql -uabc_f -p abc < abc.sql

    建議使用第二種方法導(dǎo)入。

    注意:有命令行模式,有sql命令

    posted @ 2015-03-26 14:19 奮斗成就男人 閱讀(213) | 評論 (0)編輯 收藏

    那些強悍的PHP一句話后門[轉(zhuǎn)]

         摘要: 我們以一個學(xué)習(xí)的心態(tài)來對待這些PHP后門程序,很多PHP后門代碼讓我們看到程序員們是多么的用心良苦。強悍的PHP一句話后門這類后門讓網(wǎng)站、服務(wù)器管理員很是頭疼,經(jīng)常要換著方法進行各種檢測,而很多新出現(xiàn)的編寫技術(shù),用普通的檢測方法是沒法發(fā)現(xiàn)并處理的。今天我們細數(shù)一些有意思的PHP一句話木馬。利用404頁面隱藏PHP小馬:01<!DOCTYPE HTML PUBLIC  "-...  閱讀全文

    posted @ 2015-02-25 14:18 奮斗成就男人 閱讀(2495) | 評論 (0)編輯 收藏

    如何創(chuàng)建magento模塊之Hello World例子

    步驟:
    1.創(chuàng)建一個Hello World模塊
    2.為這個模塊配置路由
    3.為這個模塊創(chuàng)建執(zhí)行控制器

     

    創(chuàng)建Hello World模塊



    創(chuàng)建模塊的結(jié)構(gòu)目錄:
    app/core/local/Sjolzy/HelloWorld/Block
    app/core/local/Sjolzy/HelloWorld/controllers
    app/core/local/Sjolzy/HelloWorld/etc
    app/core/local/Sjolzy/HelloWorld/Helper
    app/core/local/Sjolzy/HelloWorld/Model
    app/core/local/Sjolzy/HelloWorld/sql
    創(chuàng)建config.xml的內(nèi)容(app/core/local/Sjolzy/HelloWorld/etc/config.xml):
    <config>
     <modules>
      <Sjolzy_HelloWorld>
       <version>0.1.0</version>
      </Sjolzy_HelloWorld>
     </modules>
    </config>
    然后創(chuàng)建一個系統(tǒng)配置文件激活這個模塊
    Sjolzy_HelloWorld.xml(app/etc/modules/Sjolzy_HelloWorld.xml)
    <config>
     <modules>
      <Sjolzy_HelloWorld>
       <active>true</active>
       <codePool>local</codePool>
      </Sjolzy_HelloWorld>
     </modules>
    </config>
    檢查是否模塊已經(jīng)激活:先清空magento緩存(var/cache),在后臺管理:System->Configuration->Advanced 展開Disable Modules Output,看是否Sjolzy_HelloWorld顯示出來。
     

    配置路由


    路由是用來把一個URL請求轉(zhuǎn)換成一個執(zhí)行控制器的方法。
    需要在magento的全局配置中顯式的定義你的路由。
    在config.xml(app/core/local/Sjolzy/HelloWorld/etc/config.xml)中:
    <config>
     ...
     <!-- /*  fontend:指向網(wǎng)站的前臺(也可以是admin|install) */ -->
     <frontend>
      <!-- /*  routers:路由對象的定義或路由路徑的定義 */ -->
      <routers>
       <!-- /*  helloworld:指向網(wǎng)站的前臺 */ -->
       <helloworld>
        <use>standard</use>
         <args>
          <!-- /*  module:模塊名字的小寫版本 */ -->
          <module>Sjolzy_HelloWorld</module>
          <!-- /*  fontName:路由過程中的一個參數(shù),只跟路由相關(guān)(Front Controller則是用來實例化所有路由) */ -->
          <frontName>helloworld</frontName>
         </args>
       </helloworld>
      </routers>
     </frontend>
    </config>
     

    為路由創(chuàng)建執(zhí)行控制器


    路由會把控制權(quán)交給控制器,我們已經(jīng)定義了路由,現(xiàn)在來定義我們的執(zhí)行控制器。
    app/code/local/Sjolzy/HelloWorld/controllers/IndexAction.php(模塊的控制器放在子目錄controllers<小寫>里,這是magento的規(guī)定)
    <?php
    class Sjolzy_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action{
     public function indexAction(){
      echo 'Hello World!';
     }
    }
    ?>

    還是情況緩存,請求URL:http://example.com/helloworld/index/index
    注:http://example.com/frontName/執(zhí)行控制器/執(zhí)行方法


    如果看到空白頁面上寫著'Hello World!',則你的模塊創(chuàng)建成功!

    posted @ 2015-02-25 12:06 奮斗成就男人 閱讀(213) | 評論 (0)編輯 收藏

    如何在magento中建立自定義頁面

    老話重提,我們還是通過URL來進行分析

    http://<host>/<Magento虛擬目錄>/<config.xm中的frontName>/<Controller文件名去掉Controller>/<Controller文件的方法名去掉Action>

    例如,我們現(xiàn)在想在paypal的模塊中,增加一個查看幫助的頁面。

    訪問url為:
    http://youip/paypal/standard/help

    那么我們反向分析。根據(jù)之前的分析,我們找到控制文件
    \app\code\core\Mage\Paypal\controllers\StandardController.php
    在里面增加一個方法
    1. public function helpAction()
    2.        {
    3.   
    4.    $this->loadLayout();
    5.          $this->_initLayoutMessages('paypal/session');
    6.          $this->renderLayout();
    7.        }
    其中:$this->loadLayout();將載入\app\design\frontend\default\default\layout\目錄下的paypal.xml
    增加以下片段:
    1.     <paypal_standard_help>
    2.       <!-- Mage_Paypal -->
    3.          <remove name="right"/>
    4.          <remove name="left"/>

    5.       <reference name="root">
    6.       <action method="setTemplate">
    7.          <template>/page/1column.phtml</template>
    8.           </action>
    9.       </reference>
    10.       <reference name="content">
    11.       <block type="paypal/standard_help" name="paypal_standard_help" template="paypal/standard/help.phtml"/>
    12.       </reference>
    13.    </paypal_standard_help>  
    接著建立block類文件,\app\code\core\Mage\Paypal\Block\Standard\Help.php
    1. class Mage_Paypal_Block_Standard_Help extends Mage_Directory_Block_Data
    2. {
    3.    public function getHelp(){
    4.          return "this is paypal help file content!";
    5.        }
    6. }
    最后建立模板文件
    \app\design\frontend\default\default\template\paypal\standard\help.phtml
    1. <?php echo $this->getHelp(); ?> 

    posted @ 2015-02-25 12:06 奮斗成就男人 閱讀(626) | 評論 (1)編輯 收藏

    服務(wù)端XMLHTTP(ServerXMLHTTP in ASP)應(yīng)用

    近幾年很流行 Ajax,而 Ajax 的本質(zhì)就 是 XMLHttpRequest,是客戶端 XMLHttpRequest 對象的使用。相對于 Ajax,服務(wù)端 XMLHTTP 就是在服務(wù)端使 用 XMLHttpRequest 對象了。雖然說,在服務(wù)端使用異步請求是比較不方便的,但是做為可以服務(wù)端發(fā)送 HTTP 請求的組件,學(xué)習(xí)一下也是 沒有壞處的。[喝小酒的網(wǎng)摘]http://blog.const.net.cn/a/2589.htm

    這里,我講的是在 ASP 環(huán)境中使用服務(wù)端 XMLHttpRequest,并以 JScript 做為演示代碼的語言,因此,你需要了解 ASP 以及 JScript。

    服 務(wù)端 XMLHTTP,通常會用在獲取遠程主機的網(wǎng)頁或者其他內(nèi)容,新聞聚合系統(tǒng)一般就是使用服務(wù)端 XMLHTTP 對象來獲取要聚合的 Feed 的 內(nèi)容,然后使用 XMLDOM 對象來分析 Feed 的內(nèi)容,取出新聞的標題、作者、內(nèi)容等信息,再存在數(shù)據(jù)庫中,然后將若干個數(shù)據(jù)源的新聞一起顯示在 一起。抓蝦就是這樣一個新聞聚合器,但是它不是用 ASP 寫的就是了 :)

    在 ASP 中,我們可以用以下代碼來創(chuàng)建一個 ServerXMLHTTP 對象,而這個對象,就是我們在服務(wù)端進行一切操作的基礎(chǔ)。
    程序代碼:

    // demo code from xujiwei
    // @website: http://www.xujiwei.cn/
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");

    首先來了解一下 ServerXMLHTTP 對象有哪些比較有用的方法:

    1. abort 這個方法用于取消 XMLHTTP 的請求。如果 XMLHTTP 對象以異步方式發(fā)送請求,如果到達一定的時間請求仍然沒有返回,就可以使用這個方法來取消請求。

    2. getAllResponseHeaders 這個方法的返回值是一個字符串,相當于 HTTP 請求的頭部去掉了請求方法、URI和協(xié)議版本信息。

    3. getResponseHeader 這個方法用來獲取指定頭部信息,比較有用的就是可以用來獲取返回數(shù)據(jù)的 Content-Type、Referer 等。

    4. open 使用指定的請求方法、URI和同步方式以及認證信息等初始化一個請求。

    5. send 發(fā) 送 HTTP 請求,等待接收響應(yīng)數(shù)據(jù),注意,如果是以同步方式發(fā)送請求,send方法調(diào)用后不會立即返回,而是等到請求完成后才會返回,而以異步方法請 求時,則會立即返回。另外,send方法帶有一個可選參數(shù)body,表示要發(fā)送的數(shù)據(jù),這在使用 POST 方法時比較有用。

    6. setTimeout 設(shè)置 ServerXMLHTTP 對象的 4 個超時時間,分別是:域名解析、連接服務(wù)器、發(fā)送數(shù)據(jù)、接收響應(yīng)。可以通過設(shè)置相應(yīng)的超時時間來控制 ServerXMLHTTP 對象,以免 ServerXMLHTTP 不能及時返回而造成程序停止響應(yīng)。

    7. setRequestHeader 設(shè) 置請求的 Header,在客戶端 XMLHttpRequest中,通常用來設(shè)置請求的數(shù)據(jù)類型,或者標識請求的方法等等,例如 jquery 會增加 頭部標識 X-Request-With,表示請求是從 XMLHttpRequest 對象發(fā)出,以方便服務(wù)端做出相應(yīng)的動作。

    8. waitForResponse 在使用異步方式發(fā)送請求時,可以用這個方法來控制請求的進程。在服務(wù)端腳本中,不可以像客戶端那樣直接使用回調(diào)函數(shù)來控制異步請求,也沒有相應(yīng)的函數(shù)來使用程序休眠一定的時間,因此,為了等待請求返回,我們可以使用這個方法來等待一定時間。

    另外,還有其他一些方法,如 getOption、setOption、setProxy 等,這些方法用得比較少,因此這里不再介紹,需要了解的朋友可以查閱 MSDN。

    接下來,再看看 ServerXMLHTTP 對象的屬性:

    1. onreadystatechange XMLHTTP 對象狀態(tài)改變時的回調(diào)函數(shù),這個屬性為異步操作奠定了一個基礎(chǔ),可以讓程序在不用查詢 XMLHTTP 對象狀態(tài)的情況獲知 XMLHTTP 操作是否已經(jīng)完成。

    2. readyState XMLHTTP 對象狀態(tài),有 5 個值,從 0 到 4,分別代表的意思是:

    0 - 未初始化,剛使用 new ActiveXObject("MSXML.ServerXMLHTTP.5.0") 創(chuàng)建時對象所處的狀態(tài)

    1 - 載入中,這個時候,已經(jīng)調(diào)用了 open 方法,但是還沒有使用 send 方法發(fā)送數(shù)據(jù)

    2 - 已經(jīng)載入,已經(jīng)調(diào)用了 send 方法發(fā)送數(shù)據(jù),但是還沒有可用的響應(yīng)流

    3 - 正在交互,正在接收數(shù)據(jù),這個時候可以使用 responseBody 和 responseText 屬性來獲取已經(jīng)得到的部分數(shù)據(jù)了

    4 - 完成請求,全部數(shù)據(jù)已經(jīng)接收完成

    通常情況下,我們只需要判斷一下狀態(tài) 4 即可,這個時候數(shù)據(jù)已經(jīng)全部載入,使用 responseBody 或 responseText 屬性就能獲取需要的數(shù)據(jù)。

    3. status HTTP 響應(yīng)狀態(tài)碼,正常情況應(yīng)該為 200,如果請求的資源不存在,就會返回 404,還有其他狀態(tài)碼如服務(wù)器錯誤 500 等。

    4. statusText HTTP 響應(yīng)狀態(tài)文本,用于描述響應(yīng)狀態(tài)碼所代表的意思,諸如 200 OK 中的 OK,404 Not Found 中的 Not Found

    5. responseBody 響應(yīng)數(shù)據(jù)的字節(jié)數(shù)組,這在 VBScript 里是可以直接使用的,但是在 JScript 里就需要轉(zhuǎn)換過了。

    6. responseText 以文本方式獲取響應(yīng)數(shù)據(jù)

    7. responseXML 將響應(yīng)數(shù)據(jù)作為一個 XMLDOM 對象來返回,這在請求的數(shù)據(jù)是一個 XML 文檔時特別有用

    8. responseStream 響應(yīng)流對象,這個屬性不常用
    在 ServerXMLHTTP中,異步請求不再是主要用途,往往是同步的請求用得更多,因為在服務(wù)端編程中,程序的執(zhí)行是需要迅速結(jié)束并返回結(jié)果的,不像在 桌面程序中,有一個消息循環(huán)。這樣就導(dǎo)致了在服務(wù)端編程中,同步編程用得更多。當然,這并不是說異步請求沒有用處,在一定的情況下,異步請求會有很大的作 用。

    1. 簡單的使用ServerXMLHTTP請求并顯示指定Url

    首先來看一下很簡單的例子,使用ServerXMLHTTP請求Google的首頁并顯示出來:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    var url = "http://www.google.cn";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    xmlhttp.open("GET", url, false);
    xmlhttp.send("");
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>

    在瀏覽器查看這個頁面,你就可以看到Google的首頁了:

    圖片附件

    但是,我們可以看到,這里的Logo圖片是沒有顯示的,因為這個logo在網(wǎng)頁源代碼里是以相對路徑的方式來指定的:

    <img src=/intl/zh-CN/images/logo_cn.gif width=286 height=110 border=0 alt="Google" title="Google">

    但是,我們的測試服務(wù)器里并沒有這個圖片文件,因此瀏覽器就會顯示此圖片的替代文字“Google”。

    這 里我使用了xmlhttp的responseBody屬性,這是因為,在不知道所請求的網(wǎng)頁是使用什么編碼的情況下,可以讓瀏覽器來處理這個問題,而不用 在服務(wù)器處理編碼。如果要在服務(wù)器處理編碼,你必需知道你所請求的URL所返回的內(nèi)容是使用什么編碼的,并且正確的將返回內(nèi)容進行轉(zhuǎn)碼以使得客戶端瀏覽器 能正常的顯示。

    例如,我們請求Baidu的首頁,就會因為編碼問題而導(dǎo)致頁面完全錯亂:

    圖片附件

    所以,使用responseText或者responseBody,完全取決于我們的需要,并不是一成不變的,或者,在某些時候,我們要使用的并不是這兩個中的一個,而是responseXML:)

    2. 設(shè)置超時

    在 使用ServerXMLHTTP發(fā)送同步請求時,整個ASP程序的執(zhí)行是被阻塞了的,也就意味著在開始發(fā)送請求到請求完成響應(yīng)這段時間里,我們是做不了任 何事情的。那么這里就有幾個問題,如果所請求的域名解析很慢怎么辦?如果程序運行的服務(wù)器與請求的服務(wù)器之間的網(wǎng)絡(luò)環(huán)境比較差導(dǎo)致連接很慢怎么辦?如果要 發(fā)送的數(shù)據(jù)量很大但是帶寬不夠怎么辦?同樣如果響應(yīng)的數(shù)據(jù)量很大但是帶寬不夠怎么辦?

    服務(wù)器所在環(huán)境及網(wǎng)絡(luò)條件我們是無法改善的,因為,面對這些問題,我們只能采取回避的策略,即如果碰到這些問題,我們就直接丟掉這個請求。這時,ServerXMLHTTP的超時機制就有很大的用處了。

    在 前一篇中,我介紹了ServerXMLHTTP的常用方法,其中有一個setTimeouts方法,就是用來設(shè)置ServerXMLHTTP對象的四個超 時時間,分別是:域名解析超時時間(resolveTimeout)、連接超時時間(connectTimeout)、數(shù)據(jù)發(fā)送超時時間 (sendTimeout)、數(shù)據(jù)接收超時時間(receiveTimeout)。這四個超時時間所代表的意義可以從它們的字面來理解,它們分別對應(yīng)了這 一節(jié)開頭所提出一的四個問題。

    在不使用setTimeouts方法進行設(shè)置的情況下,域名解析超時時間(resolveTimeout)是 無限的,即不會在域名解析時產(chǎn)生超時,連接超時時間(connectTimeout)的默認值為60秒,數(shù)據(jù)發(fā)送超時時間(sendTimeout)的默 認值為30秒,數(shù)據(jù)接收超時時間(receiveTimeout)的默認值也是30秒。

    通常情況下,我們不需要默認值中所指定的那么長的超時時間,因為碰到了最壞的情況下,在一個頁面顯示時,訪客將要面對2分鐘左右的無響應(yīng)時間,這時訪客往往認為這個頁面是無效的并且會離開這個頁面。

    所 以我們要做的就是給ServerXMLHTTP設(shè)置一個較短的超時時間,一般情況下,域名解析和連接遠程服務(wù)器都可以在2秒內(nèi)完成,發(fā)送數(shù)據(jù)時間視數(shù)據(jù)量 而定,如果只是使用GET請求,這個數(shù)據(jù)量是很小的,也可以在2秒內(nèi)完成,而響應(yīng),則可以稍微長一點,定在10秒左右,超過10秒時可以認為遠程服務(wù)器沒 有響應(yīng)。

    需要注意的是,setTimeouts方法所使用的參數(shù)單位是以毫秒為單位的,也就是說,如果 要指定2秒的超時時間,所用的參數(shù)為2000。另外,setTimeouts的參數(shù)順序也是固定的,按順序為:域名解析超時時間 (resolveTimeout)、連接超時時間(connectTimeout)、數(shù)據(jù)發(fā)送超時時間(sendTimeout)、數(shù)據(jù)接收超時時間 (receiveTimeout)。

    那么,可以使用下面的代碼來完成超時設(shè)置:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    var url = "http://www.google.com";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    // 設(shè)置超時時間,注意參數(shù)順序
    xmlhttp.setTimeouts(2000, 2000, 2000, 10000);
    xmlhttp.open("GET", url, false);
    xmlhttp.send("");
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>

    如 果在某個階段超時了,程序會拋出異常,在JScript里可以使用try...catch來捕獲,并根據(jù)ServerXMLHTTP對象的 readyState屬性來獲知是在哪個階段產(chǎn)生了超時異常。注意,同步請求時,超時異常會發(fā)生在調(diào)用send方法所在的行,例如上例中的 xmlhttp.send("")。
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    var url = "http://www.youtube.com/";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    // 設(shè)置超時時間,注意參數(shù)順序
    xmlhttp.setTimeouts(2000, 2000, 2000, 10000);
    xmlhttp.open("GET", url, false);
    try {
    xmlhttp.send("");
    }
    catch(e) {
    Response.Write("發(fā)生異常:" + e.message + "<br/>");
    // 判斷是否為超時錯誤
    if(e.number == -2147012894) {
    var step = "";
    // 判斷超時錯誤發(fā)生所在的階段
    switch(xmlhttp.readyState) {
    case 1:
    step = "解析域名或連接遠程服務(wù)器"
    break;
    case 2:
    step = "發(fā)送請求";
    break;
    case 3:
    step = "接收數(shù)據(jù)";
    break;
    default:
    step = "未知階段";
    }
    Response.Write("在 " + step + " 時發(fā)生超時錯誤");
    }
    Response.End();
    }
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>
    3. 請求使用HTTP認證的頁面

    呃,雖然說目前使用HTTP基本認證的已經(jīng)少之又少,但是,總該知道ServerXMLHTTP有這么一個功能,可以直接實現(xiàn)HTTP基本認證。

    在ServerXMLHTTP對象的open中,我們通常用到的只是它的前3個參數(shù),即method、uri、async,但事實上,它還有另外兩個可選參數(shù),即用于HTTP基本認證的username及password。

    那么,如果某天,我們要使用ServerXMLHTTP訪問某個使用HTTP基本認證的網(wǎng)站,并且我們已經(jīng)有了認證所需要的用戶名及密碼,那么可以使用以下密碼來訪問需要認證的內(nèi)容:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    // 訪問www.google.cn并不需要HTTP認證,這里只是作為一個演示
    var url = "http://www.google.cn";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    // 用戶名和密碼分別為username和password
    xmlhttp.open("GET", url, false, "username", "password");
    xmlhttp.send("");
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>

    4. 使用responseXML屬性

    有時候,我們所需要的結(jié)果并不是文本的,而是一個XML文檔,譬如目前最常用的RSS。這個時候,responseXML屬性就是我們的不二選擇了。

    使用responseXML屬性所得到的對象,就是一個DOMDocument對象,這個對象可以使用諸如selectNodes、selectSingleNode這樣的方法來操作XML文檔對象。

    例如,我們可以利用ServerXMLHTTP抓取新浪新聞的RSS并顯示出來:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    // 新浪新聞的RSS地址
    var url = "http://rss.sina.com.cn/news/marquee/ddt.xml";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    xmlhttp.open("GET", url, false);
    xmlhttp.send("");
    var xml = xmlhttp.responseXML;
    Response.Write("<h1>" + xml.selectSingleNode("/rss/channel/title").text + "</h1>");
    var items = xml.selectNodes("/rss/channel/item");
    for(var i = 0; i < items.length; i++) {
    Response.Write("<h3>" + items[i].selectSingleNode("title").text + "</h3>");
    Response.Write("<small>" + items[i].selectSingleNode("pubDate").text + "</small>");
    Response.Write("<div>" + items[i].selectSingleNode("description").text + "</div><hr />");
    }
    items = null;
    xmlhttp = null;
    %>

    這些如果弄明白了,寫一個RSS新聞聚合器就不是難事了。當然XMLDOM操作就不在本系列的范圍之類了。
    服務(wù)端XMLHTTP(ServerXMLHTTP in ASP)進階應(yīng)用-User Agent偽裝

    這篇開始講講ServerXMLHTTP的進階應(yīng)用。說是進階應(yīng)用,但也就是講一些在基本應(yīng)用里沒有講到的屬性或者方法之類:)

    使用setRequestHeader偽裝User-Agent

    User-Agent一般是服務(wù)端程序用來判斷客戶端瀏覽器、操作系統(tǒng)等信息的標志,它的說明可以參考Wiki,譬如在我的電腦 IE7 的UA就是:

    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;

    SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

    可以看到,這個UA提供了不少信息,IE版本、Windows版本、.NET版本都有。再看看 Firefox 的:

    Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)

    UA的格式不是本文的重點,因此,如果需要了解UA的具體格式,可以去Google上找找,另外,在http://www.user-agents.org/這里可以找到目前大多數(shù)瀏覽器、搜索引擎Spider等的UA。

    在我們使用 ServerXMLHTTP 發(fā)送請求時,它所用的 User-Agent 是以下內(nèi)容:

    Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)

    但是,某些網(wǎng)站會限制這個UA的訪問,比如Google,如果我們使用以下代碼來請求Google的頁面,它使用的是默認UA“Mozilla/4.0 (compatible; Win32; WinHttp.WinHttpRequest.5)”:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    var url = "http://news.google.cn/?output=rss";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    xmlhttp.open("GET", url, false);
    //xmlhttp.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)");
    xmlhttp.send("");
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>

    你會發(fā)現(xiàn),我們會收到一個 403 Forbidden 的錯誤:

    圖片附件

    為 了使得Google的RSS輸出程序能把我們的識別成正常的RSS閱讀或者一般瀏覽器,就需要在請求發(fā)出前設(shè)置 Request Header。要設(shè) 置 Request Header,只需要簡單的在調(diào)用 open 方法之后,send 方法之前使用 setRequestHeader 來設(shè)置就行 了,它的語法是 xmlhttp.setRequestHeader(key, value)。下面我們就讓Google的RSS輸出程序把我們的請求識 別為Firefox的請求:
    程序代碼:

    <%@LANGUAGE="JScript" CODEPAGE="65001"%>
    <%
    // code from xujiwei
    // http://www.xujiwei.cn
    var url = "http://news.google.cn/?output=rss";
    var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.5.0");
    xmlhttp.open("GET", url, false);
    // 設(shè)置 User Agent 為 Firefox 的UA
    xmlhttp.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)");
    xmlhttp.send("");
    Response.BinaryWrite(xmlhttp.responseBody);
    xmlhttp = null;
    %>

    刷新瀏覽器,顯示出了Firefox的RSS預(yù)覽界面,獲取Google資訊RSS成功!

    圖片附件

    ok,我們能正確得到Google資訊的RSS了,再通過XMLDOM來操作返回的RSS文檔,就可以采集Google資訊那海量的新聞了。
    [喝小酒的網(wǎng)摘]http://blog.const.net.cn/a/2589.htm

    轉(zhuǎn)載自 [blog.const.net.cn]喝小酒的網(wǎng)摘 及本文鏈接地址:http://blog.const.net.cn/a/2589.htm

    相關(guān)文章
  • 發(fā)生msxml3.dll,錯誤800c0005錯誤的原因和解決方法
  • Function getHTTPPage(url)
    dim http
    set http=Server.createobject("Microsoft.XMLHTTP")
    Http.open "GET",url,false
    Http.send()
    if Http.readystate<
  • 定時運行ASP文件
  • 在一定的時候,要定時的運行某個ASP文件去執(zhí)行一個任務(wù),如一個工廠在早上9點鐘要采集所有的電表的讀數(shù),當然這要通過IN SQL連接到各個電表中,我們現(xiàn)在就是用一個ASP文件把IN SQL中表的讀數(shù)再集中到MS SQL中。

    可能你看到的定時運行ASP文件的方法有多種,不過我現(xiàn)在要說的是一種簡單的方法,利用計劃任務(wù)就可簡單的實現(xiàn)。

    首先,你要
  • 安裝asppdf的幾種方式
  • asppdf其實只有一個文件,也就是asppdf.dll,安裝的時候只需要復(fù)制到系統(tǒng)system32目錄下,然后regsvr32就可以了,當然你 也可以去官方網(wǎng)站下載asppdf.exe,安裝程序不會把asppdf.dll復(fù)制到system32,但他還是已經(jīng)regsvr32了,并且有一些示 例代碼,也自動新建了一個虛擬目錄/asppdf。也就是說可以直接http://localhost/asppd
  • xmlhttp屬性和方法
  • 下面是WinHttpRequest component,不過我想也應(yīng)該適用于xmlhttp,
    前文有講到xmlhttp的屬性與方法,但覺得不是很完整,所以就有了下面的補充,下面的這些數(shù)據(jù)是來自于Microsoft,估計這個是比較全的,但里面提到的一些方法,例如屬性(property-get)Option,在xmlhttp中平時都沒有用過,又比如function SetTimeouts
  • asp中使用xmlhttp下載圖片代碼
  • asp中使用xmlhttp下載圖片代碼:
    <%
    function getHTTPimg(url)
    dim http
    set http=server.createobject("MSXML2.XMLHTTP")
    Http.open "GET",url,false
    Http

    posted @ 2015-02-05 00:45 奮斗成就男人 閱讀(591) | 評論 (0)編輯 收藏

    僅列出標題
    共23頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 亚洲heyzo专区无码综合| 国产啪精品视频网站免费尤物| 国产精品久久免费视频| 一级免费黄色毛片| 久久亚洲AV成人无码| 国产乱子影视频上线免费观看| 日韩免费高清播放器| 亚洲国产无线乱码在线观看| 337p日本欧洲亚洲大胆裸体艺术| 真人做人试看60分钟免费视频| 免费一级毛suv好看的国产网站| 亚洲国产精品热久久| 免费乱码中文字幕网站| 日本免费大黄在线观看| 一区二区免费国产在线观看| 亚洲狠狠ady亚洲精品大秀| 亚洲精品网站在线观看不卡无广告| 24小时日本韩国高清免费| 在线播放免费人成视频网站| 亚洲国产成a人v在线| 国产成人亚洲综合色影视 | 国产一区二区三区在线观看免费| 免费国产污网站在线观看15| 看Aⅴ免费毛片手机播放| 亚洲日产2021三区| 国产偷国产偷亚洲清高动态图| 成年美女黄网站18禁免费| 外国成人网在线观看免费视频| 免费福利资源站在线视频| 久久狠狠爱亚洲综合影院| 亚洲AV日韩AV高潮无码专区| 亚洲AV之男人的天堂| 毛片免费观看的视频| 84pao强力永久免费高清| 中文无码日韩欧免费视频| 在线观看亚洲电影| 亚洲乱人伦中文字幕无码| 亚洲最大在线观看| 久久久久亚洲AV无码专区体验 | 亚洲变态另类一区二区三区| 亚洲国产高清视频在线观看|