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

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

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

    應用,一定要應用

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

    2006年11月1日 #

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

    1.1. 繼承

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

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

    1.1.1. ??? 三種方法

    js 中實現繼承有三種方法:

    假設父類為 Parent, 子類為 Child,

    ?

    第一種,子類強制調用父類構造

    function Child(){

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

    }

    ?

    第二種,子類間接調用父類構造

    function Child(){

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

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

    }

    ?

    第三種:設置原型

    function Child(){}

    Child.prototype = new Parent();

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

    ?

    1.1.2. ??? 總結:

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

    ?

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

    ?

    一個 function 對象和根據 function 構造出來的對象是不同的。

    ?

    一個 function 對象的原型其實就是一個根據 function 對象構建出來的對象。

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

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

    ?

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

    ?

    1.1.3. ??? 猜測和假想

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

    當一個 Child new 時,第一二種方法中, js 執行器

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

    2 、拷貝原型:

    3 、執行構造:也就是 Child.call(this) (相當于 child(), 此時 this 對象有值)( msdn 中有描述)

    然后執行 Parent(); 這個時候 parent 的構造函數執行以下幾步:

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

    2 、對這個區域執行初始化,也就是正常的 function 調用的過程。(相當于 Parent(),this 變量有值)

    ?

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

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

    ?

    obj.func() 的調用和 func() 調用是完全不一樣的, obj.func this 對象是 obj 對象,而 func() 調用 this 對象是 window 對象,這個應該和 jvm 中靜態方法和類實例方法調用的區別的原理一樣。

    ?

    1.2. 方法重載

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

    1.1.4. ??? 兩種方法

    js 怎樣實現重載。

    1 、簡單的重載:

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

    ?

    2 、調用父類方法的重載:

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

    ?

    this.super_toString = this.toString();

    this.toString=function(){

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

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

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

    }

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

    基本方法:

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

    <listener>

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

    </listener>

    SessionCounter.java 實現 javax.servlet.http.HttpSessionListener 接口,分別在 sessionCreated 方法和 sessionDestroyed 方法中處理 session 數目。

    ?

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

    1 、對于真正從網頁訪問的和搜索引擎的 spider 無法區分。

    2 、當 Tomcat 重啟時,加載了上次持久化的 session 時,無法準確計算在線數。

    ?

    第二個問題我們可以不予考慮,這是 tomcat 容器實現不標準的問題,我們要解決的是的第一個問題,如何知道你的訪問的是真實的。

    ?

    js 繞過搜索引擎

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

    <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();

    ??? }

    }

    我們記錄了一個靜態的 hash 表來記錄激活狀態的 sessionid ,并在 session 銷毀的時候將這個 sessionid 置為空。

    怎么把 servlet 配置到 web 應用中我就不羅唆了。

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

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

    ???最近做網頁的時候無意中發現一個有意思的問題,只在Ie中測試過,不知道在firefox中有什么現象。
    先定義樣式表:
    <STYLE>
    DIV .head1
    {
    ?background-color: yellow;
    }

    DIV.head2
    {
    ?background-color: red;
    }

    </STYLE>


    展現樣式:

    <div class="head1">div1</div>
    <span class="head1">span1</span>
    <div class="head2">div1</div>
    <span class="head2">span1</span>

    div1
    span1
    div1
    span1

    測試head1 與head2的區別

    <div>
    <div class="head1">div2</div>
    <span class="head1">span2</span>
    </div>

    div2
    span2

    <p>
    <div class="head1">div2</div>
    <span class="head1">span2</span>
    </p>

    div2
    span2




    總結:
    ?head1樣式和head2樣式的主要區別就是中間多了一個空格。?感覺像是head1樣式是指在div內部適用的樣式;?head2樣式是應用于div元素上的樣式;

    另:由于博客上的編輯器自動在style之間增加了cdata角標,導致我的效果無法顯示,head1的效果我是通過設置背景色完成的,有興趣的朋友可以把那幾段代碼拷出來存成一個文件,就可以看到效果。

    請高手指教。

    posted @ 2006-11-02 13:14 flyffa 閱讀(3051) | 評論 (7)編輯 收藏

    ??????自己以前做程序都是自己寫連接池,那個時候項目大,環境各異,為了便于實施,總是由自己進行連接池的管理,等到自己想做一些小東西的時候,才發現這個連接池成了一個專用的東西,和系統做了太多的綁定,只能找連接池用,用過resin自帶的連接池,再用tomcat連接池的時候就很不爽,沒有監控的功能,在網上選來選去,最后選擇了Proxool。

    ??????Proxool連接池是sourceforge下的一個開源項目,這個項目提供一個健壯、易用的連接池,最為關鍵的是這個連接池提供監控的功能,方便易用,便于發現連接泄漏的情況。開源項目地址是:
    http://proxool.sourceforge.net/


    配置連接池比較的簡單:
    1、將下載的包解開,從包中的lib目錄下將proxool-xxx.jar(xxx隨著不同的版本號變化)加入你的工程中。
    2、配置數據源:
    ??????在web-info下建立文件:proxool.xml,文件內容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <something-else-entirely>
    ? <proxool>
    ??? <alias>Develop</alias>
    ??? <driver-url>jdbc:mysql://localhost/kuanxue</driver-url>
    ??? <driver-class>com.mysql.jdbc.Driver</driver-class>
    ??? <driver-properties>
    ????? <property name="user" value="root"/>
    ????? <property name="password" value=""/>
    ????? <property name="useUnicode" value="true"/>
    ????? <property name="characterEncoding" value="GBK"/>
    ??? </driver-properties>
    ??? <maximum-connection-count>500</maximum-connection-count>
    ??? <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
    ? </proxool>
    ?</something-else-entirely>

    3、配置web.xml
    在web.xml中增加:
    <!--?配置初始化servlet,在web容器加載的時候自動加載配置文件,如果不是web程序,這個部分就需要通過開發接口來初始化了 -->
    <servlet>
    ???? <servlet-name>proxoolInitialServlet</servlet-name>
    ?<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
    ???? <init-param>
    ?????? <param-name>xmlFile</param-name>
    ?????? <param-value>WEB-INF/proxool.xml</param-value>
    ???? </init-param>
    ???? <load-on-startup>1</load-on-startup>
    ?? </servlet>
    <!--配置監控servlet,其實如果不想監控的話,可以不配-->
    ?? <servlet>
    ??? <servlet-name>dbpoolAdmin</servlet-name>
    ??? <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
    ? </servlet>
    ?? <servlet-mapping>
    ??? <servlet-name>dbpoolAdmin</servlet-name>
    ??? <url-pattern>/dbpool</url-pattern>
    ? </servlet-mapping>

    4、在程序中調用
    一般我將獲取connection的行為封裝為一個工廠模式,便于多種情況的切換,以下是其中proxool數據源的getConnection方法的實現:

    public Connection getConnection() {
    ??????? try{
    ??????????? Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
    ??????????? return DriverManager.getConnection("proxool.Develop");
    ??????? }catch(Exception ex){
    ??????????? ex.printStackTrace();
    ??????? }
    ??????? return null;
    ??? }

    5、應用開發:
    ??????在實際的應用中,我們可能需要更多的功能,比如監控功能不夠強大,權限不好控制,我們希望能夠編寫出更強大的功能,比如殺死一些大的查詢語句等,記錄各種查詢語句占用的時間,這就需要對開發接口進行進一步的研究了。
    posted @ 2006-11-02 12:00 flyffa 閱讀(5880) | 評論 (7)編輯 收藏

    最近寫網頁,用DIV加CSS實現,發現DIV嵌套時,當內嵌浮動div的時候不能正常擴展

    <div style="border-style:solid">
    ?? <div style = "float:right;border-style:solid">dsfsdfsd<div>
    </div>

    發現內層div會越界,在網上找了一下:
    <div style="border-style:solid">
    ?? <div style = "float:right;border-style:solid">dsfsdfsd<div>
    ?? <div style="font: 0px/0px sans-serif;clear: both;display: block">
    </div>
    加這么一句就好了,順便查到了一個在firefox中解決的方法:
    <div style="border-style:solid">
    ?? <div style = "float:right;border-style:solid">dsfsdfsd<div>
    ?? <br clear="alll">
    </div>
    posted @ 2006-11-01 12:43 flyffa 閱讀(2390) | 評論 (2)編輯 收藏

    主站蜘蛛池模板: 免费一级做a爰片久久毛片潮喷| 亚洲无码在线播放| 成人亚洲国产精品久久| 亚洲av色福利天堂| mm1313亚洲精品无码又大又粗| 亚洲一区二区免费视频| 国产va免费精品| 色偷偷尼玛图亚洲综合| 亚洲中文字幕一二三四区| 亚洲天堂男人天堂| 亚洲熟女一区二区三区| 又黄又爽一线毛片免费观看| 成年人在线免费看视频| 182tv免费视视频线路一二三 | 99re这里有免费视频精品| 亚洲成年人啊啊aa在线观看| 成年男女男精品免费视频网站| 最新黄色免费网站| 四虎国产精品永久免费网址| 国产午夜精品理论片免费观看 | 日韩中文字幕免费| 成人毛片18女人毛片免费| 日韩在线播放全免费| 免费无码一区二区三区| 无码av免费网站| 男人都懂www深夜免费网站| 免费人成在线观看视频高潮| 91成人免费观看在线观看| 中文字幕在线免费看| 中国内地毛片免费高清| baoyu122.永久免费视频| 中文字幕无码毛片免费看| 日韩精品无码免费专区午夜| a在线观看免费视频| 国产午夜精品免费一区二区三区 | 国产精品亚洲不卡一区二区三区| 可以免费观看一级毛片黄a | 国产综合成人亚洲区| 国产AV日韩A∨亚洲AV电影| 男人扒开添女人下部免费视频| 免费国产污网站在线观看不要卡|