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

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

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

    應(yīng)用,一定要應(yīng)用

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks

    2006年11月6日 #

    Sybase Powerdesigner具有強大的模板和腳本功能,可以自定義和擴展生成數(shù)據(jù)庫時的DDL。
    在主界面菜單中選擇Tools-->Resources-->DBMS.
    再彈出的菜單中選擇需要擴展的數(shù)據(jù)庫類型。
    點擊左上角Property圖標(biāo),彈出模板設(shè)置窗口。
    在窗口中設(shè)置相應(yīng)的Sql生成模板。
    posted @ 2008-06-21 11:22 flyffa 閱讀(929) | 評論 (0)編輯 收藏

    1.1. 繼承

    今天遇到了需要在 javascript 中繼承的問題:

    查了一些帖子,自己又寫了幾個例子測試了一下,總結(jié)如下:

    1.1.1. ??? 三種方法

    js 中實現(xiàn)繼承有三種方法:

    假設(shè)父類為 Parent, 子類為 Child,

    ?

    第一種,子類強制調(diào)用父類構(gòu)造

    function Child(){

    ?????? Parent.call(this);

    }

    ?

    第二種,子類間接調(diào)用父類構(gòu)造

    function Child(){

    ?????? this.base = Parent;

    ?????? this.base();

    }

    ?

    第三種:設(shè)置原型

    function Child(){}

    Child.prototype = new Parent();

    這種方式雖然不夠直觀,卻應(yīng)該是最有效率的方式。

    ?

    1.1.2. ??? 總結(jié):

    其實 js 本身是沒有什么繼承之類的概念的,只是為了使用利用 js 的一些特性而加的。

    ?

    js 的原型方式 prototype, 使得許多的工作變得容易。

    ?

    一個 function 對象和根據(jù) function 構(gòu)造出來的對象是不同的。

    ?

    一個 function 對象的原型其實就是一個根據(jù) function 對象構(gòu)建出來的對象。

    記住:這個對象可與 new 出來的對象不一樣。在 function 內(nèi)部的代碼并不會被執(zhí)行,如:

    this.funcName = function() 這樣的代碼。而 new 出來的對象則不然,他具有執(zhí)行后的對象特性。

    ?

    function 的局部變量相當(dāng)于 class 里的私有變量,無法在子類中獲取和操作。但 this. 的部分是可以的。

    ?

    1.1.3. ??? 猜測和假想

    (這是我推斷的,沒有任何的根據(jù),當(dāng)然也是可以測試的):

    當(dāng)一個 Child new 時,第一二種方法中, js 執(zhí)行器

    1 、先分配一個空間,(相當(dāng)于 this = new Object() (msdn 中有具體的描述 )

    2 、拷貝原型:

    3 、執(zhí)行構(gòu)造:也就是 Child.call(this) (相當(dāng)于 child(), 此時 this 對象有值)( msdn 中有描述)

    然后執(zhí)行 Parent(); 這個時候 parent 的構(gòu)造函數(shù)執(zhí)行以下幾步:

    1 、將 parent prototype 拷貝到 object 區(qū)域,這時覆蓋了前面的區(qū)域 ( 好像測試證明 parent 的原型并不會被拷貝,此步不會被執(zhí)行 )

    2 、對這個區(qū)域執(zhí)行初始化,也就是正常的 function 調(diào)用的過程。(相當(dāng)于 Parent(),this 變量有值)

    ?

    而普通的 function 調(diào)用應(yīng)該是這個樣子:由于沒有 new 操作符,所以沒有為其分配當(dāng)前的 this( 也沒有空間 ),

    this 被放到了 window 對象上。但是 new 的時候顯然不是這樣。

    ?

    obj.func() 的調(diào)用和 func() 調(diào)用是完全不一樣的, obj.func this 對象是 obj 對象,而 func() 調(diào)用 this 對象是 window 對象,這個應(yīng)該和 jvm 中靜態(tài)方法和類實例方法調(diào)用的區(qū)別的原理一樣。

    ?

    1.2. 方法重載

    在實現(xiàn)了對象繼承之后,我開始面臨到第二個問題,重載。

    1.1.4. ??? 兩種方法

    js 怎樣實現(xiàn)重載。

    1 、簡單的重載:

    在這種重載中,子類的方法無需調(diào)用父類的方法,直接在執(zhí)行父類構(gòu)造之后,再執(zhí)行子類的重載方法,如 Parent toString() 方法,這時只需執(zhí)行 this.toString = function(){....} 就可以了。

    ?

    2 、調(diào)用父類方法的重載:

    由于 js 實際運行時并沒有父類、子類兩個實例空間,所以 super.toString() 肯定是不行的,而在子類的 toString 方法中進行 this.toString() 調(diào)用只能引起內(nèi)存溢出,其實這種也可以想辦法做到。

    ?

    this.super_toString = this.toString();

    this.toString=function(){

    ?????? ..............

    ?????? this.super_toString();

    ?????? ..............

    }

    posted @ 2006-12-28 14:39 flyffa 閱讀(1235) | 評論 (1)編輯 收藏

    基本方法:

    基本的方法,網(wǎng)上到處都是,在 java 中就是在 web.xml 注冊一個 Listener ,如下:

    <listener>

    ??? <listener-class>xp.web.SessionCounter</listener-class>

    </listener>

    SessionCounter.java 實現(xiàn) javax.servlet.http.HttpSessionListener 接口,分別在 sessionCreated 方法和 sessionDestroyed 方法中處理 session 數(shù)目。

    ?

    這樣的方法有一定的問題:

    1 、對于真正從網(wǎng)頁訪問的和搜索引擎的 spider 無法區(qū)分。

    2 、當(dāng) Tomcat 重啟時,加載了上次持久化的 session 時,無法準(zhǔn)確計算在線數(shù)。

    ?

    第二個問題我們可以不予考慮,這是 tomcat 容器實現(xiàn)不標(biāo)準(zhǔn)的問題,我們要解決的是的第一個問題,如何知道你的訪問的是真實的。

    ?

    js 繞過搜索引擎

    做過 pv 統(tǒng)計的都知道,可以用 script 的方式得到你真實的 pageView 數(shù)目,我們現(xiàn)在要做的就是這樣的一件事情,我們在所有的頁面都加入一段話:

    <script type="text/javascript">

    document.write ("<iframe src='/sessionCountServlet' width=0 height=0 frameborder=no border=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=no></iframe>");

    </script>

    然后我們寫上一個 servlet 來記錄這些真正的訪問者。

    import java.io.*;

    ?

    import javax.servlet.*;

    import javax.servlet.http.*;

    public class SessionCounterServlet extends HttpServlet {

    ??? public SessionCounterServlet() {

    ??????? super();

    ??? }

    ?

    ??? public void doGet(HttpServletRequest request,

    ????????????????????? HttpServletResponse response) throws IOException,

    ??????????? ServletException {

    ?

    ??????? process(request, response);

    ?

    ??? }

    ?

    ??? public void doPost(HttpServletRequest request,

    ?????????????????????? HttpServletResponse response) throws IOException,

    ??????????? ServletException {

    ?

    ??????? process(request, response);

    ?

    ??? }

    ?

    ??? public void process(HttpServletRequest request,

    ??????????????????????? HttpServletResponse response) throws IOException,

    ??????????? ServletException {

    ??????? SessionCounter.put(request.getSession().getId());

    }

    }

    ?

    我們可以看到這個 servlet 只是做了一件事情,在 process 里面做了 SessionCounter.put(request.getSession().getId()); 這個動作。

    我們來看看我們的 SessionCounter 做了些什么:

    import javax.servlet.http.*;

    import java.util.Hashtable;

    ?

    public class SessionCounter implements HttpSessionListener {

    ??? public SessionCounter() {

    ??? }

    ?

    ??? public static Hashtable m_real = new Hashtable();

    ?

    ??? private static long count = 0;

    ?

    ??? public void sessionCreated(HttpSessionEvent e) {

    ??????? count++;

    ??? }

    ?

    ??? public void sessionDestroyed(HttpSessionEvent e) {

    ??????? if (count > 0) {

    ??????????? count--;

    ??????? }

    ??????? m_real.remove(e.getSession().getId());

    ??? }

    ?

    ??? public static long getSessionCount() {

    ??????? return count;

    ??? }

    ?

    ??? public static void put(String sessionId){

    ??????? m_real.put(sessionId,"1");

    ??? }

    ?

    ??? public static int getRealCount(){

    ??????? return m_real.size();

    ??? }

    }

    我們記錄了一個靜態(tài)的 hash 表來記錄激活狀態(tài)的 sessionid ,并在 session 銷毀的時候?qū)⑦@個 sessionid 置為空。

    怎么把 servlet 配置到 web 應(yīng)用中我就不羅唆了。

    posted @ 2006-12-14 15:10 flyffa 閱讀(2404) | 評論 (1)編輯 收藏

         摘要: 在網(wǎng)上找了一些文檔,還是覺得不是很清楚,自己走了些彎路,才把這個配置好,還是寫下來吧,以備后查。 1.?? 目標(biāo) 使用 apache 和 tomcat 配置一個可以應(yīng)用的 web 網(wǎng)站,要達到以下要求: ...  閱讀全文
    posted @ 2006-11-06 11:49 flyffa 閱讀(3244) | 評論 (9)編輯 收藏

    主站蜘蛛池模板: 亚洲国产成人a精品不卡在线| 91嫩草私人成人亚洲影院| 好猛好深好爽好硬免费视频| 亚洲天堂一区二区| 日韩av无码成人无码免费| 精品免费AV一区二区三区| 亚洲a一级免费视频| 日本成人免费在线| 亚洲免费在线播放| 日日摸日日碰夜夜爽亚洲| 亚洲第一中文字幕| 免费中文字幕一级毛片| 亚洲网站免费观看| 国产日韩精品无码区免费专区国产| 亚洲精品中文字幕麻豆| 亚洲午夜激情视频| 好大好硬好爽免费视频| 免费国产污网站在线观看| 亚洲sm另类一区二区三区| 亚洲AV美女一区二区三区| 免费一级毛片在线播放| 97国产免费全部免费观看 | 99久久免费国产精品热| 亚洲不卡影院午夜在线观看| 亚洲色婷婷综合久久| 免费亚洲视频在线观看| 91黑丝国产线观看免费 | 特级无码毛片免费视频尤物| 香蕉视频在线观看免费| 亚洲一区二区三区精品视频| 亚洲成a人片在线观看无码| 国产免费拔擦拔擦8x| 国色精品卡一卡2卡3卡4卡免费 | 国产成人免费A在线视频| 成人免费视频69| 一个人免费日韩不卡视频| 韩国免费A级毛片久久| 黄色a级免费网站| 亚洲免费网站观看视频| 亚洲一区中文字幕在线观看| 亚洲午夜精品久久久久久人妖|