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

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

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

    隨筆-26  評論-13  文章-46  trackbacks-0
      2005年6月7日

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    </head>

    <body>
    ?<SCRIPT language="javascript">
    ?function next()
    ?? {
    ?? if(event.keyCode==13)event.keyCode=9;
    ? }
    ?</SCRIPT>
    <form name="form1" method="post" action="">
    <input onkeydown="next()" name="text1">
    <input onkeydown="next()" name="text2">
    <input onkeydown="next()" name="text3">
    <input onkeydown="next()" name="text5">
    <input onkeydown="if(event.keyCode==13)event.keyCode=9" name="text4">
    ? <input type="submit" name="Submit" value="Submit">
    ? <input type="reset" name="Submit2" value="Reset">
    </form>
    </body>
    </html>

    posted @ 2006-04-04 13:24 似水流年 閱讀(3300) | 評論 (1)編輯 收藏
         摘要: 以下是摘自http://xdoclet.sourceforge.net/xdoclet/tags/hibernate-tags.html的內容 @hibernate Tag Reference Tags for declaration of Hibernate descriptor file Applies to: All classes, at class level and on get...  閱讀全文
    posted @ 2005-11-15 14:03 似水流年 閱讀(1126) | 評論 (0)編輯 收藏

    一.安裝
       1.安裝jdk1.5,E:\server\jdk1.5
       2.安裝mysql 4.0,E:\server\mysql
       3.安裝Ant 1.6,E:\apache-ant-1.6.2
       4.安裝tomcat5.5,E:\tomcat5

    二.系統路徑的設置:

       1、JAVA_HOME = E:\server\jdk1.5
       2、MYSQL_HOME = E:\server\mysql
       3、ANT_HOME = E:\apache-ant-1.6.2
       4、CATALINA_HOME = E:\tomcat5
       5、path,%JAVA_HOME%\bin;%ANT_HOME%\bin;%CATALINA_HOME%\bin;%MYSQL_HOME%\bin

    三.安裝appfuse-1.8.2,E:\jbproject\appfuse
       1.將..\appfuse\lib\junit3.8.1\junit.jar拷貝到%ANT_HOME%/lib目錄下
       2.根據需要修改build.properties以下部分
         #database.jar=${postgresql.jar}
         #database.type=postgresql
         #database.host=localhost
         #database URL for creating other databases (doesn't work with pgsql)
         #database.admin.url=jdbc:${database.type}://${database.host}/template1
         #database.admin.username=postgres
         #database.admin.password=postgres

         #hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
         #database.driver_class=org.postgresql.Driver
         #database.url=jdbc:${database.type}://${database.host}/${database.name}

       我只修改了database.admin.password=我的mysql密碼
       3.安裝的可選項,
         如果你希望使用 iBATIS 作為持久化framework, 查看extras/ibatis目錄下的 README.txt 文件或者運行 ant install-ibatis。
         如果你希望使用 Spring 作為web framework, 查看 extras/spring 目錄下的 README.txt 文件或者運行 ant install-springmvc。
         如果你希望使用 WebWork 作為web framework, 查看extras/webwork 目錄下的 README.txt 文件或者運行 ant install-webwork。
         如果你希望使用 JSF 作為web framework, 查看 extras/jsf 目錄下的 README.txt 文件或者運行 ant install-jsf。
         如果你希望使用 Tapestry 作為web framework, 查看 extras/tapestry 目錄下的 README.txt 文件或者運行 ant install-tapestry。

      
    四.新建項目
       1. 在控制臺,E:\jbproject\appfuse>ant new 按照提示輸入application名稱(myapp),database名稱(mydb),package名稱(com.jinn).
       2. 如果package名稱不是org.appfuse,拷貝appfuse下的ApplicationResources_zh_CN.properties和ApplicationResources_zh.properties到對應的路徑下myapp下。(注意如果你的package名稱不是org.appfuse(或不是以org開頭?沒有做過測試),會提示你輸入the first part of your new package,先別忙著
    輸入,看看myapp,跟appfuse一樣,我要你著重看看myapp\web\WEB-INF\classes下的ApplicationResources_zh_CN.properties或ApplicationResources_zh.properties
          跟appfuse下是一樣的。輸入the first part of your new package,例如com,再看看myapp\web\WEB-INF\classes下的ApplicationResources_zh_CN.properties或ApplicationResources_zh.properties
          它的內容變了。原來appfuse在執行rename package的過程中把相關的properties內容做了處理。這會造成頁面顯示亂碼。
       3. 運行E:\jbproject\myapp>ant setup ,BUILD SUCCESSFUL,在瀏覽器輸入http://localhost:8080/myapp。一切正常,此時打開查看${CATALINA_HOME}\webapps\myapp\WEB-INF\classes\ApplicationResources_zh_CN.properties,已被編碼轉換。
       4. 關閉tomcat,運行E:\jbproject\myapp>ant test-all,出錯," failed with message "Wrong document title found! Expected "AppFuse
          ~ ???è?????" but got "AppFuse ~ ???è?????",顯然還是資源文件編碼的問題,注意控制臺有段提示"test with locale 'zh'",將myapp\web\WEB-INF\classes>ApplicationResources_zh.properties更名為ApplicationResources_zh.properties.bak
          運行E:\jbproject\myapp\web\WEB-INF\classes>native2ascii -encoding gbk ApplicationResources_zh.properties ApplicationResources_zh.properties
          再次運行E:\jbproject\myapp>ant test-all BUILD SUCCESSFUL

    參考文章:http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuseQuickStart_zh
     

    posted @ 2005-11-15 11:20 似水流年 閱讀(636) | 評論 (0)編輯 收藏
     

    AppFuseAnt任務

    This page contains a listing of the most common Ant targets in AppFuse that I use in my daily development. For a complete list of tasks, type "ant -projecthelp" at the command line.
    任務
    描述

    setup

    建立database, 配置tomcatdeploys expanded war

    clean

    Removes build artifacts

    compile

    編譯所有的文件

    deploy

    編譯、然后部署到Tomcat

    deploy-web

    部署JSP和靜態Web內容到Tomcat

    install

    使用TomcatManager程序安裝Web程序.
    對于向遠程服務器上部署程序很適合

    list

    列出Tomcat已經安裝、部署好的應用

    refresh

    Undeploys, cleans, 然后重新部署.

    reload

    使Tomcat重新裝載所有程序

    remove

    刪除Tomcat部署好的程序

    setup-db

    創建數據庫,并插入范例需要的數據

    setup-tomcat

    復制JDBC驅動和context.xmlTomcat相應目錄下

    test-all

    運行所有用于測試dao, serviceweb的測試用例

    test-dao

    測試dao模塊

    test-service

    測試service模塊

    test-web

    使用Mocks測試Action/Controller (不需要容器)

    test-jsp

    Tomcat中運行Canoo WebTest (啟動/停止Tomcat, 執行前Tomcat應該被停止)

    test-canoo

    Tomcat已經運行時,執行Canoo WebTest

    test-reports

    產生測試報告

    undeploy

    $CATALINA_HOME/webapps中刪除war文件和相應的目錄

    posted @ 2005-11-11 14:14 似水流年 閱讀(426) | 評論 (0)編輯 收藏

    三個需要的程序包:

    commons-dbcp-1.2.1.jar

    http://apache.linuxforum.net/dist/jakarta/commons/dbcp/binaries/

    struts-legacy.jar

    http://apache.linuxforum.net/dist/jakarta/struts/struts-legacy/

    commons-pool-1.2.jar

    http://apache.linuxforum.net/dist/jakarta/commons/pool/binaries/

    strut-config.xml


      <data-sources>
        <data-source key="mysqlWebDB" type="org.apache.commons.dbcp.BasicDataSource">
          <set-property property="description" value="Mysql DataSource For zyweb" />
          <set-property property="driverClassName" value="org.gjt.mm.mysql.Driver" />
          <set-property property="url" value="jdbc:mysql://localhost:3306/zyweb?useUnicode=true&amp;characterEncoding=GBK" />
          <set-property property="username" value="root" />
          <set-property property="password" value="zyadmin" />
          <set-property property="maxActive" value="10" />
          <set-property property="maxWait" value="5000"/>
          <set-property property="defaultAutoCommit" value="false" />
          <set-property property="defaultReadOnly" value="false"/>
        </data-source>
      </data-sources>

    posted @ 2005-10-13 16:24 似水流年 閱讀(656) | 評論 (0)編輯 收藏
    Java 中對文件的讀寫操作之比較
    一.在 JDK 1.0 中,通常是用 InputStream & OutputStream 這兩個基類來進行讀寫操作的。
    InputStream 中的 FileInputStream 類似一個文件句柄,通過它來對文件進行操作,類似的,在
    OutputStream 中我們有 FileOutputStream 這個對象。

    用FileInputStream 來讀取數據的常用方法是:
    FileInputStream fstream = new FileInputStream(args[0]);
    DataInputStream in = new DataInputStream(fstream);
    用 in.readLine() 來得到數據,然后用 in.close() 關閉輸入流。
    完整代碼見 Example 1。

    用FileOutputStream 來寫入數據的常用方法是:
    FileOutputStream out out = new FileOutputStream("myfile.txt");    
    PrintStream p = new PrintStream( out );
    用 p.println() 來寫入數據,然后用 p.close() 關閉輸入。
    完整代碼見 Example 2。


    二.在 JDK 1.1中,支持兩個新的對象 Reader & Writer, 它們只能用來對文本文件進行操作,而
    JDK1.1中的 InputStream & OutputStream 可以對文本文件或二進制文件進行操作。

    用FileReader 來讀取文件的常用方法是:
    FileReader fr = new FileReader("mydata.txt");
    BufferedReader br = new BufferedReader(fr);
    用 br.readLing() 來讀出數據,然后用br.close() 關閉緩存,用fr.close() 關閉文件。
    完整代碼見 Example 3。

    用 FileWriter 來寫入文件的常用方法是:
    FileWriter fw = new FileWriter("mydata.txt");
    PrintWriter out = new PrintWriter(fw);  
    在用out.print 或 out.println 來往文件中寫入數據,out.print 和 out.println的唯一區別是后者寫
    入數據或會自動開一新行。寫完后要記得 用out.close() 關閉輸出,用fw.close() 關閉文件。   
    完整代碼見 Example 4。

    -------------------------------------------------------------- following is the source code of examples------------------------------------------------------

    Example 1:
    // FileInputDemo
    // Demonstrates FileInputStream and DataInputStream
    import java.io.*;

    class FileInputDemo {
      
    public static void main(String args[]) {
        
    // args.length is equivalent to argc in C
        if (args.length == 1{
          
    try {
            
    // Open the file that is the first command line parameter
            FileInputStream fstream = new FileInputStream(args[0]);
            
    // Convert our input stream to a DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            
    // Continue to read lines while there are still some left to read
            while (in.available() !=0{
              
    // Print file line to screen
              System.out.println (in.readLine());
            }

            
    in.close();
          }
     catch (Exception e) {
            System.err.println(
    "File input error");
          }

        }

        
    else
          System.
    out.println("Invalid parameters");
      }

    }


    Example 2:
    // FileOutputDemo
    // Demonstration of FileOutputStream and PrintStream classes
    import java.io.*;

    class FileOutputDemo 
    {    
      
    public static void main(String args[])  {              
      FileOutputStream 
    out// declare a file output object
        PrintStream p; // declare a print stream object

    try {
      
    // connected to "myfile.txt"
          out = new FileOutputStream("myfile.txt");
          
    // Connect print stream to the output stream
          p = new PrintStream( out );
          p.println (
    "This is written to a file");
          p.close();
        }
     catch (Exception e) {
          System.err.println (
    "Error writing to file");
        }

      }

    }


    Example 3:
    // FileReadTest.java
    // User FileReader in JDK1.1 to read a file 
    import java.io.*;

    class FileReadTest {      
      
    public static void main (String[] args) {
        FileReadTest t 
    = new FileReadTest();
        t.readMyFile();
    }
     
        
      
    void readMyFile() 
        String record 
    = null;
        
    int recCount = 0
        
    try 
    FileReader fr 
    = new FileReader("mydata.txt");
           BufferedReader br 
    = new BufferedReader(fr);
           record 
    = new String();
           
    while ((record = br.readLine()) != null{
             recCount
    ++;
             System.
    out.println(recCount + "" + record); 
    }

    br.close();
    fr.close(); 
         }
     catch (IOException e) 
             System.
    out.println("Uh oh, got an IOException error!");
             e.printStackTrace();
         }

    }
     
      
    }
        

    Example 4:
    // FileWriteTest.java
    // User FileWriter in JDK1.1 to writer a file 
    import java.io.*;

    class FileWriteTest {      
      
    public static void main (String[] args) {
        FileWriteTest t 
    = new FileWriteTest();
        t.WriteMyFile();
    }
     
        
      
    void WriteMyFile() 
        
    try 
    FileWriter fw 
    = new FileWriter("mydata.txt");
    PrintWriter 
    out = new PrintWriter(fw);    
    out.print(“hi,this will be wirte into the file!”);   
    out.close();
    fw.close();
         }
     catch (IOException e) 
             System.
    out.println("Uh oh, got an IOException error!");
             e.printStackTrace();
         }

    }
     
      
    }
        
    posted @ 2005-06-23 17:46 似水流年 閱讀(902) | 評論 (2)編輯 收藏

    <embed src="autostart="true" loop="true" width="200" height="150" >
    把這個網址
    http://wmt2.aboutmedia.com.tw/Aboutmedia/warner/mtv/naying-021011_01v_120k.wmv換成你要看的電影就行了


    有圖像的rm格式:
    <OBJECT classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' height=288 id=video1 width=305 VIEWASTEXT>
    <param name='_ExtentX' value='5503'>
    <param name='_ExtentY' value='1588'>
    <param name='AUTOSTART' value='-1'>
    <param name='SHUFFLE' value='0'>
    <param name='PREFETCH' value='0'>
    <param name='NOLABELS' value='0'>
    <param name='SRC' value='http://media.cdut.edu.cn/ram/new/xiaoxin1.ram'>
    <param name='CONTROLS' value='Imagewindow,StatusBar,ControlPanel'>
    <param name='CONSOLE' value='RAPLAYER'>
    <param name='LOOP' value='0'>
    <param name='NUMLOOP' value='0'>
    <param name='CENTER' value='0'>
    <param name='MAINTAINASPECT' value='0'>
    <param name='BACKGROUNDCOLOR' value='#000000'>
    </OBJECT>

    無圖像的rm格式:如相聲,歌曲。。。
    <object ID='video2' WIDTH='300' HEIGHT='62' CLASSID='CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA'>
    <param name='_ExtentX' value='9657'>
    <param name='_ExtentY' value='847'>
    <param name='AUTOSTART' value='-1'>
    <param name='SHUFFLE' value='0'>
    <param name='PREFETCH' value='0'>
    <param name='NOLABELS' value='0'>
    <param name='SRC' value='http://210.242.69.206/ramgen/broadcast/BCC/encoder/hipop.rm'>
    <param name='CONTROLS' value='StatusBar,controlpanel'>
    <param name='CONSOLE' value='Clip1'>
    <param name='LOOP' value='0'>
    <param name='NUMLOOP' value='0'>
    <param name='CENTER' value='0'>
    <param name='MAINTAINASPECT' value='0'>
    <param name='BACKGROUNDCOLOR' value='#000000'>
    </object>

    最簡單的media格式的播放器。。自動識別有無圖像,但是版本是你機器的!
    <embed src='mms://61.175.132.221/tv/mtv/f4/makeawish.wmv' width=200 height=200 autostart=true loop=true></embed>

    有圖像的media播放器,自動調用網上的插件。
    <object id=nstv classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width=280 height=265 codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701standby=Loading Microsoft? Windows Media? Player components... type=application/x-oleobject>
    <param name='URL' value='http://202.99.11.42/xiangsheng/ymjr.wma'>
    <PARAM NAME='UIMode' value='full'><PARAM NAME='AutoStart' value='true'>
    <PARAM NAME='Enabled' value='true'>
    <PARAM NAME='enableContextMenu' value='false'>
    <param name='WindowlessVideo' value='true'></object>

    無圖像的media播放器。。。同上。
    <object id=nstv classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6' width=280 height=60 codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701standby=Loading Microsoft? Windows Media? Player components... type=application/x-oleobject>
    <param name='URL' value='http://202.99.11.42/xiangsheng/ymjr.wma'>
    <PARAM NAME='UIMode' value='full'><PARAM NAME='AutoStart' value='true'>
    <PARAM NAME='Enabled' value='true'>
    <PARAM NAME='enableContextMenu' value='false'>
    </object>

    只是界面不同的media的調插件播放器。。建議不用這個,,你可以看!
    <embed src='http://av.wanwa.com/fileroot/AV/Ramfiles/23809.ram' type='audio/x-pn-realaudio-plugin' console='Clip1' controls='ControlPanel,StatusBar' height='60' width='275' autostart='true'></embed>

    rm文件在線播放
    <embed height=25 src=www.xiakedao.com/biyun/ren/a.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" controls="PlayButton">


    autostart="false" 打開頁面時處于候命狀態,autostart="true" 打開頁面時馬上聽聲音 height=25 width=50 有不同數值,播放器面板有些不同
    midi、au、avi文件在線播放

    <EMBED SRC="

    autostart="false" 打開頁面時處于候命狀態,autostart="true" 打開頁面時馬上聽聲音 height=25 width=50 有不同數值,播放器面板有些不同

    asf文件在線播放
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    </head>
    <body topmargin="0" leftmargin="0">
    <object classid=clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95 codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=7.0 height=53 id=NSPlay0 name=NSPlay type=application/x-oleobject width=87 VIEWASTEXT standby="Loading Microsoft Windows Media Player components..." border="0"><param name="AudioStream" value="-1">
    <param name="AutoSize" value="0">
    <param name="AutoStart" value="1">
    <param name="AnimationAtStart" value="-1">
    <param name="AllowScan" value="-1">
    <param name="AllowChangeDisplaySize" value="-1">
    <param name="AutoRewind" value="0">
    <param name="Balance" value="0">
    <param name="BaseURL" value>
    <param name="BufferingTime" value="10">
    <param name="CaptioningID" value>
    <param name="ClickToPlay" value="-1">
    <param name="CursorType" value="0">
    <param name="CurrentPosition" value="-1">
    <param name="CurrentMarker" value="0">
    <param name="DefaultFrame" value>
    <param name="DisplayBackColor" value="0">
    <param name="DisplayForeColor" value="65280">
    <param name="DisplayMode" value="0">
    <param name="DisplaySize" value="1">
    <param name="Enabled" value="-1">
    <param name="EnableContextMenu" value="-1">
    <param name="EnablePositionControls" value="-1">
    <param name="EnableFullScreenControls" value="-1">
    <param name="EnableTracker" value="-1">
    <param name="Filename" value="
    <param name="InvokeURLs" value="-1">
    <param name="Language" value="-1">
    <param name="Mute" value="0">
    <param name="PlayCount" value="1">
    <param name="PreviewMode" value="0">
    <param name="Rate" value="1">
    <param name="SAMILang" value>
    <param name="SAMIstyle" value>
    <param name="SAMIFileName" value>
    <param name="selectionStart" value="-1">
    <param name="selectionEnd" value="-1">
    <param name="SendOpenStateChangeEvents" value="-1">
    <param name="SendWarningEvents" value="-1">
    <param name="SendErrorEvents" value="-1">
    <param name="SendKeyboardEvents" value="0">
    <param name="SendMouseClickEvents" value="0">
    <param name="SendMouseMoveEvents" value="0">
    <param name="SendPlayStateChangeEvents" value="-1">
    <param name="ShowCaptioning" value="0">
    <param name="ShowControls" value="-1">
    <param name="ShowAudioControls" value="0">
    <param name="ShowDisplay" value="0">
    <param name="ShowGotoBar" value="0">
    <param name="ShowPositionControls" value="-1">
    <param name="ShowStatusBar" value="-1">
    <param name="ShowTracker" value="-1">
    <param name="TransparentAtStart" value="-1">
    <param name="VideoBorderWidth" value="0">
    <param name="VideoBorderColor" value="0">
    <param name="VideoBorder3D" value="-1">
    <param name="Volume" value="0">
    <param name="WindowlessVideo" value="0">
    </object>
    其中<param name="AutoStart" value="0"> 0為打開頁面處于待命狀態,為1時打開頁面直接播放 </body>
    </html>

    流式收聽mp3方法:
    http://*.mp3http://*.mp3,http://...琱ttp://*.mp3,
    把上面的的文件另存為*.m3u,就可實現在線播放*.mp3(支持連續播放)

    mpeg影象在線播放:
    等等,讓它下載
    <img border="0" dynsrc="http://music.cnvnet.com/video/0321.mpeg ;
    " start="fileopen">


    rm影像在線播放 代碼:
    <object id="vid" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width=114 height=100>
    <param name="_ExtentX" value="3016">
    <param name="_ExtentY" value="2646">
    <param name="AUTOSTART" value="-1">
    <param name="SHUFFLE" value="0">
    <param name="PREFETCH" value="0">
    <param name="NOLABELS" value="-1">
    <param name="SRC" value="<param name="CONTROLS" value="Imagewindow">
    <param name="CONSOLE" value="clip1">
    <param name="LOOP" value="0">
    <param name="NUMLOOP" value="0">
    <param name="CENTER" value="0">
    <param name="MAINTAINASPECT" value="0">
    <param name="BACKGROUNDCOLOR" value="#000000">
    </object>

    加幾個控制器
    <object id="vid" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width=427 height=300>
    <param name="_ExtentX" value="11298">
    <param name="_ExtentY" value="7938">
    <param name="AUTOSTART" value="-1">
    <param name="SHUFFLE" value="0">
    <param name="PREFETCH" value="0">
    <param name="NOLABELS" value="-1">
    <param name="SRC" value="
    <param name="CONTROLS" value="Imagewindow">
    <param name="CONSOLE" value="clip1">
    <param name="LOOP" value="0">
    <param name="NUMLOOP" value="0">
    <param name="CENTER" value="0">
    <param name="MAINTAINASPECT" value="0">
    <param name="BACKGROUNDCOLOR" value="#000000">
    </object>
    <object id="vid2" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width=427 height=30>
    <param name="_ExtentX" value="11298">
    <param name="_ExtentY" value="794">
    <param name="AUTOSTART" value="-1">
    <param name="SHUFFLE" value="0">
    <param name="PREFETCH" value="0">
    <param name="NOLABELS" value="-1">
    <param name="SRC" value="
    <param name="CONTROLS" value="ControlPanel">
    <param name="CONSOLE" value="clip1">
    <param name="LOOP" value="0">
    <param name="NUMLOOP" value="0">
    <param name="CENTER" value="0">
    <param name="MAINTAINASPECT" value="0">
    <param name="BACKGROUNDCOLOR" value="#000000">
    </object>

    posted @ 2005-06-17 14:20 似水流年 閱讀(1269) | 評論 (0)編輯 收藏

    在JSTL 1.1中使用以下標識符:

    URI

    前綴

    Core

    http://java.sun.com/jsp/jstl/core

    c

    XML processing

    http://java.sun.com/jsp/jstl/xml

    x

    I18N formatting

    http://java.sun.com/jsp/jstl/fmt

    fmt

    Database access

    http://java.sun.com/jsp/jstl/sql

    sql

    Functions

    http://java.sun.com/jsp/jstl/functions

    fn

    posted @ 2005-06-07 16:13 似水流年 閱讀(644) | 評論 (0)編輯 收藏

    使用實例:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ${fn:length(myCollection)}
    其他函數:

    函數

    描述

    fn:contains(string, substring)

    如果參數string中包含參數substring,返回true

    fn:containsIgnoreCase(string, substring)

    如果參數string中包含參數substring(忽略大小寫),返回true

    fn:endsWith(string, suffix)

    如果參數 string 以參數suffix結尾,返回true

    fn:escapeXml(string)

    將有特殊意義的XML (和HTML)轉換為對應的XML character entity code,并返回

    fn:indexOf(string, substring)

    返回參數substring在參數string中第一次出現的位置

    fn:join(array, separator)

    將一個給定的數組array用給定的間隔符separator串在一起,組成一個新的字符串并返回。

    fn:length(item)

    返回參數item中包含元素的數量。參數Item類型是數組、collection或者String。如果是String類型,返回值是String中的字符數。

    fn:replace(string, before, after)

    返回一個String對象。用參數after字符串替換參數string中所有出現參數before字符串的地方,并返回替換后的結果

    fn:split(string, separator)

    返回一個數組,以參數separator 為分割符分割參數string,分割后的每一部分就是數組的一個元素

    fn:startsWith(string, prefix)

    如果參數string以參數prefix開頭,返回true

    fn:substring(string, begin, end)

    返回參數string部分字符串, 從參數begin開始到參數end位置,包括end位置的字符

    fn:substringAfter(string, substring)

    返回參數substring在參數string中后面的那一部分字符串

    fn:substringBefore(string, substring)

    返回參數substring在參數string中前面的那一部分字符串

    fn:toLowerCase(string)

    將參數string所有的字符變為小寫,并將其返回

    fn:toUpperCase(string)

    將參數string所有的字符變為大寫,并將其返回

    fn:trim(string)

    去除參數string 首尾的空格,并將其返回

    posted @ 2005-06-07 16:12 似水流年 閱讀(1846) | 評論 (1)編輯 收藏
    返回到前一頁不刷新
    <input type="button" value="返回" onClick="history.go(-1)"> 

    返回到前一頁并刷新
    <%String ref = request.getHeader("REFERER");response.sendRedirect(ref);%>
    posted @ 2005-06-07 16:12 似水流年 閱讀(816) | 評論 (0)編輯 收藏
    <href="delete.jsp?Id=${row.Id}" onclick="if(confirm('確認刪除?')){this.click();}else{return false;}">刪除</a>
    posted @ 2005-06-07 16:10 似水流年 閱讀(398) | 評論 (0)編輯 收藏

    1.驗證用戶登錄
    <sql:query var="query" dataSource="${bookdev}">
      select * from user where userName='${param.userName}' and userPwd='${param.userPwd}'
    </sql:query>

    <c:if test="${empty query.rows}"> 
    <!--驗證沒有通過,返回登錄界面-->
      <font color="red">用戶名或密碼錯誤</font>
      <a href="index.jsp">重新登錄</a>
    </c:if>
    <c:if test="${!empty query.rows}"> 
    <!--驗證通過,保存用戶信息到session中-->
    <c:forEach var="row" items="${query.rows}">
        <c:set var="userName" value="${row.userName}" scope="session" />
        <c:set var="userLevel" value="${row.userLevel}" scope="session" /> 
     </c:forEach>
        <c:set var="isLog" value="1" scope="session" /> 
    <!--頁面發送到主頁面-->
        <c:redirect url="main.jsp" />
    </c:if>

    2.session控制

    <c:if test="${empty sessionScope.isLog}">
     你沒有登錄或登錄超時
     <a href="index.jsp">重新登錄</a>
    </c:if>

    posted @ 2005-06-07 16:07 似水流年 閱讀(3648) | 評論 (3)編輯 收藏
    以mysql為例

    <sql:setDataSource 
      var
    ="bookdev"  //數據庫名 
      driver="org.gjt.mm.mysql.Driver" //驅動程序 
      url="jdbc:mysql://localhost:3306/bookdev?useUnicode=true&characterEncoding=gb2312" //URL
      user="root" //用戶名
      password="" //密碼 
     scope="session" 
    /> 

    其他數據庫和URL列表如下(摘自jsp應用開發詳解(第二版))

    數據庫驅動程序和URL

    數據庫名

    驅動程序

    URL

    MS SQL Server2000

    com.microsoft.jdbc.sqlserver.SQLServerDriver

    jdbc:microsoft:sqlserver://[ip]:[port];user=[user];passwoerd=[password]

    JDBC-ODBC

    sun.jdbc.odbc.JdbcOdbcDriver

    jdbc:odbc:[odbcsource]

    Oracle oci8

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:oci8:@[sid]

    Oracle thin Driver

    oracle.jdbc.driver.OracleDriver

    jdbc:oracle:thin:@[ip]:[port]:[sid]

    Cloudscape

    COM.cloudscape.core.JDBCDriver

    Jdbc:cloudscape:database

    MySQL

    org.git.mm.mysql.Driver

    jdbc:mysql://ip/database?user=?&password=?


    相關鏈接:java連接數據庫方法http://blog.java-cn.com/more.asp?name=johnnyhg&id=341 

    posted @ 2005-06-07 16:06 似水流年 閱讀(396) | 評論 (0)編輯 收藏
    由于mysql把\當作轉義字符用,所以要把路徑中的\處理成\\才可以正確保存,無奈之下copy了一段java代碼實現字符替換,后來才發現原來JSTL的新增函數庫就有函數已經可以實現此功能,且使用起來代碼簡潔,這樣好的東西自然要用用。
    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
    ${fn:replace(param.sourceUrl,'\','\\')}
    結果出現錯誤:Unterminated ${ tag。
    修改代碼為:
    <c:set var="before" value="\\"/> 
    <c:set var="after" value="\\\\"/> 
    $
    {fn:replace(param.sourceUrl,before,after)} 
    問題解決
    posted @ 2005-06-07 16:01 似水流年 閱讀(1446) | 評論 (1)編輯 收藏
    加密
    <sql:update var="user" dataSource="${bookdev}"> 
      insert into user values(
    "","${param.userName}",password("${param.userPwd}"),"${param.userLevel}"
    </sql:update> 

    解密
    <sql:query var="query" dataSource="${bookdev}"> 
      select 
    * from user where userName='${param.userName}' and 
      userPwd
    =password('${param.userPwd}'
    </sql:query>
    posted @ 2005-06-07 16:00 似水流年 閱讀(603) | 評論 (0)編輯 收藏

    JSP文件操作

        文件的建立與刪除
        顯示目錄中的文件
        讀取文件中的字符
        將數據寫入文件


    文件的建立與刪除

    首先取得當前的磁盤路徑,指定要建立的文件的路徑,再進行檢查,如果文件不存在,如果文件不存在,則建立這個文件,如果文件存在,則刪除這個文件。

    CreateDelete.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page import="java.io.*" %>
    <%@ page language="java" %>
    <HTML>
    <HEAD>
    <TITLE>文件的建立與刪除</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>文件的建立與刪除</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    //建立代表目前目錄位置中File.txt檔的File變量, 并由fileName變量變數引用
    String path = request.getRealPath("/jsphosting/wenjian");
    File fileName = new File(path, "File.txt");
    //檢查File.txt是否存在
    if(fileName.exists())
    {
    //刪除File.txt檔
    fileName.delete();
    //輸出目前所在的目錄路徑
    out.println(path + "\\File.txt");
    %>
    <FONT SIZE = 4 COLOR = red>存在</FONT>, 已完成
    <FONT SIZE = 4 COLOR = red>刪除</FONT>
    <%
    }
    else
    {
    //在目前的目錄下建立一個名為File.txt的文字檔 
    fileName.createNewFile();
    //輸出目前所在的目錄路徑
    out.println(path + "\\File.txt");
    %>
    <FONT SIZE = 4 COLOR = red>不存在</FONT>, 已完成
    <FONT SIZE = 4 COLOR = red>建立</FONT>
    <%
    }
    %>
    </BODY>
    </HTML> 


    顯示目錄中的文件


    首先建立要顯示的目錄的FILE對象,然后調用LISTFILES方法,該方法返回一個FILE對象數組,顯示數組中的所有元素即可。

    ListFile.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>取得目錄中的文件</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>取得目錄中的文件</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    //取得目前目錄的磁盤目錄
    String path = request.getRealPath("/jsphosting/wenjian");
    //建立代表目前目錄位置的d變量
    File d = new File(path);
    //取得代表目錄中所有文件
    File list[] = d.listFiles();
    %>
    在<Font color = red><%= path%></Font>目錄下的文件有(每個文件有其相應的功能)<BR>
    <Font color = blue>
    <ul>
    <%
    for(int i=0; i < list.length; i++)
    {
    %>
    <li><%= list[i].getName() %><BR> 
    <%
    }
    %>
    </ul>
    </Font>
    </BODY>
    </HTML> 

    讀取文件中的字符

    直接調用FILEREADER對象的READ()方法讀取所要顯示的字符

    ReadAll.jsp
    <%@ page contentType="text/html; charset=GB2312" %>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>讀取文件內容</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>讀取文件內容</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目錄在伺服端的實際位置
    FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader變量,并設定由fr變量變數引用
    int c = fr.read(); //從文件中讀取一個字節
    while(c != -1) //判斷是否已讀到文件的結尾
    {
    out.print((char)c); //輸出讀取到的數據 
    c = fr.read(); //從文件中讀取數據
    if(c == 13) //判斷是否為斷行字節
    {
    out.print("<BR>"); //輸出分行標簽
    fr.skip(1); //略過一個字節
    c = fr.read(); //讀取一個字節
    }
    }
    //關閉文件
    fr.close();
    %>
    </BODY>
    </HTML> 

    將數據寫入文件

    通過調用FILEWRITER對象的WRITE()方法向文件中寫入數據

    Write.jsp
    <%@ page contentType="text/html; charset=GB2312"%>
    <%@ page language="java" %>
    <%@ page import="java.io.*" %>
    <HTML>
    <HEAD>
    <TITLE>將數據寫入文件</TITLE>
    </HEAD>
    <BODY>
    <CENTER>
    <FONT SIZE = 5 COLOR = blue>將數據寫入文件</FONT>
    </CENTER>
    <BR>
    <HR>
    <BR>
    <%
    String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目錄在伺服端的實際位置
    FileWriter fw = new FileWriter(path + "\\File.txt"); //建立FileWrite對象,并設定由fw對象變量引用
    //將字串寫入文件
    fw.write("大家好!");
    fw.write("祝大家學習jsp愉快!");
    fw.write("希望大家能夠深入了解jsp技術!");
    fw.close(); //關閉文件
    %>
    <P>寫入文件內容為</P>
    <FONT SIZE = 4 COLOR = red>
    <%
    FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader對象,并設定由fr對象變量引用
    BufferedReader br = new BufferedReader(fr); //建立BufferedReader對象,并設定由br對象變量引用
    String Line = br.readLine(); //讀取一行數據
    out.println(Line + "<BR>"); //輸出讀取得的數據
    br.close(); //關閉BufferedReader對象
    fr.close(); //關閉文件
    %>
    </FONT>
    </BODY>
    </HTML> 

    posted @ 2005-06-07 15:58 似水流年 閱讀(298) | 評論 (0)編輯 收藏

    打開tomcat/conf/servel.xml
    修改(黑體字為修改部分)
    <Connector port="8080"
                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   debug="0" connectionTimeout="20000"
                   disableUploadTimeout="true" URIEncoding="GBK"/>
    在web頁上把含有中文的url用java.net.URLEncoder.encode("中文")處理
    例子:

    <c:set var="test"> 
      
    /<%=java.net.URLEncoder.encode("用jsp實現文件上傳.pdf")%> 
    </c:set> 
    <c:redirect context="/ebooks" url="${test}"/> 


    鏈接傳遞中文參數例子

    <a href=hello.jsp?send=<%=java.net.URLEncoder.encode("中文")%>> 點擊</a> 

     jspsmartupload組件下載中文例子:
     

    <%@ page contentType="text/html;charset=gb2312" 
    import
    ="com.jspsmart.upload.*" %><% 

    SmartUpload mySmartUpload  
    = new SmartUpload(); 

    //String path=request.getParameter("中文");修改server.xml后 
    String path = new String(request.getParameter("中文").getBytes("ISO-8859-1")); //修改server.xml前 
    // Initialization 
    mySmartUpload.initialize(pageContext); 
    // Download file 
    //mySmartUpload.downloadFile("/upload/sample.zip"); 
    // With a physical path 

    mySmartUpload.downloadFile(path); 
    response.getOutputStream().close(); 
    // With options 
    // mySmartUpload.downloadFile("/upload/sample.zip","application/x-zip-compressed","downloaded.zip") 
    %> 
    posted @ 2005-06-07 15:57 似水流年 閱讀(4651) | 評論 (2)編輯 收藏

    數據庫需求分析:
    class(一級欄目信息):classId(自動編號),className(欄目名稱)
    Nclass(二級欄目信息):NclassId(自動編號),NclassName(欄目名稱),parentId(一級欄目id,與class表中的classId關聯)

    <%@ page contentType="text/html; charset=GB2312" language="java" errorPage="../error.jsp" %>
    <%@ include file="../conn.jsp"%>
    <%@ include file="../ds.jsp"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%request.setCharacterEncoding("gb2312"); %>
    <HTML><HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">

    <TITLE>級聯菜單</TITLE>
    <LINK rel="stylesheet" type="text/css" href="style.css">
    </HEAD>
    <!--從數據庫中得到二級欄目信息-->
    <%String sql="select * from Nclass order by NclassId asc";
    ResultSet rs=stmt.executeQuery(sql);
    %>
    <!--將二級欄目信息保存到數組subcat中-->
    <script type="text/javascript">
    var onecount;
    onecount=0;
    subcat = new Array();
            <%
            int count = 0;
            while(rs.next()){
            %>
    subcat[<%=count%>] = new Array("<%=rs.getString("NclassName")%>","<%=rs.getString("NclassId")%>","<%=rs.getString("parentId")%>");
            <%
            count++;
            }
            rs.close();
            %>
    onecount=<%=count%>;
    <!--決定select顯示的函數-->
    function changelocation(locationid)
        {
        document.myform.NclassId.length = 0;

        var locationid=locationid;
        var i;
        for (i=0;i < onecount; i++)
            {
                if (subcat[i][2] == locationid)
                {
                    document.myform.NclassId.options[document.myform.NclassId.length] = new Option(subcat[i][0], subcat[i][1]);
                }       
            }
           
        }   
    </script>

    <FORM method="POST" name="myform" action="adminsave.jsp?action=add">
      <TABLE>
      
        <TR>
          <TD>一級分類</TD>
          <TD> 
            <SELECT name="classId" onChange="changelocation(document.myform.classId.options[document.myform.classId.selectedIndex].value)" size="1">
              <OPTION selected value>==請選一級分類==</OPTION>
            <sql:query var="query" dataSource="${bookdev}">
              SELECT * FROM class
           </sql:query>
    <c:forEach var="row" items="${query.rows}">
     <option value="${row.classId}">${row.className}</option>
    </c:forEach>
    </select>
          </TD>
          <TD>選擇二級分類</TD>
          <TD>
            <SELECT name="NclassId">
              <OPTION selected value>==請選二級分類==</OPTION>
            </SELECT>
          </TD>
        </TR>
    </TABLE>
     
    </FORM>
    </BODY>
    </HTML>

     

    posted @ 2005-06-07 15:53 似水流年 閱讀(659) | 評論 (0)編輯 收藏
    <html> 
    <head> 
    <title>Untitled Document</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head><LINK href="../hellking.css" type=text/css rel=stylesheet> 
    <body> 
    <%request.setCharacterEncoding("gb2312"); %> 

    <script type="text/javascript"> 
       
    function setid() 
       

       str
    ='<br>'; 
       
    if(!window.form1.upcount.value) 
        window.form1.upcount.value
    =1
       
    if(window.form1.upcount.value>100)
       alert(
    "您最多只能同時上傳100個文件0"); 
       window.form1.upcount.value 
    = 100
       setid(); 
       }
     
       
    else
        
    for(i=1;i<=window.form1.upcount.value;i++
          str
    +='<div>文件'+i+':<input type="file" name="file'+i+'"></div><br><br>'; 
       window.upid.innerHTML
    =str+'<br>';}
     
       }
     
     
    </script> 



    <form name="form1" method="post" action="BookAction_do.jsp?action=${param.action}" >

     

      
    <div> 
      
    <table border="1" cellspacing="0" cellpadding="5" bordercolordark="#CCCCCC" bordercolorlight="#000000" bordercolor="#FFFFFF" style="border-collapse: collapse" height="169"> 
        
    <tr bgcolor="#CC0CCC"> 
          
    <td height="28" align="left" valign="middle" bgcolor="#C0CCCC">&nbsp; 
            
    <div><font size="3"><b>文件上傳</b></font></div> 
          
    </td> 
        
    </tr> 
        
    <tr align="left" valign="middle" bgcolor="#eeeeee"> 
          
    <td bgcolor="#eeeeee" height="92" valign="top"> <br> 
            
    <table border="0" cellspacing="1" cellpadding="2"> 

              
    <tr> 
                
    <td><font color="#FF0000"><b>*</b></font>上傳的文件大小不能超過<font color="#FF0000">999999999</font>個字節</td> 
              
    </tr> 
              
    <tr> 
                
    <td> 

                  
    <b><font color="#FF0000">*</font></b>每次可以設置同時上傳<font color="#FF0000">100</font>個文件。<br>

                  設置上傳的個數 
                  
    <input type="text" value="1" name="upcount" size="20"> 
                  
    <input type="button" name="Button"  onClick="setid();" value="設定"> 

                
    </td> 
              
    </tr> 

            
    </table> 
          
    </td> 
        
    </tr> 
        
    <tr> 
          
    <td id="upid"> 
            
    <div>文件1: 
              
    <input type="file" name="file1"> 
            
    </div> 
          
    </td> 
        
    </tr> 


      
    </table> 
    </div> 
    <br> 
      
    <tr align="center" valign="middle" bgcolor="#eeeeee"> 
          
    <td bgcolor="#ccc000" height="33"> 
            
    <input type="submit" name="Submit" value="確定"> 
            
    <input type="reset" name="Submit2" value="重執"> 
          
    </td> 
        
    </tr> 
    </table></form> 
    </body> 
    </html> 

    posted @ 2005-06-07 15:51 似水流年 閱讀(558) | 評論 (0)編輯 收藏

    5.1 停用目錄檢視 (Directory Listing)

    在新的 Tomcat 安裝,預設目錄檢視是啟用的,這可以是一個很有用的測試工具,如果像我一樣,您有時會忘記在某個網頁應用程式使用了甚麼 servlets,可以簡單地輸入網頁應用程式的 URL ,就能取得完整的列表。

    但在生產的用途上,您可能想將它關掉。如果沒有其他東西,它不鼓勵使用者在他們不應該逗留的地方閒逛。要關掉這個選項基本上兩個方法:

    • 建立一個 index.html 檔案,將它放在網頁應用程式的目錄內。
    • 修改整體的 web.xml 檔案將選項關掉。

    第一個選項頗為簡單,因此我們只研究第二個選項。

    開啟 web.xml 檔案,這檔案在 $CATALINA_HOME/conf/ 內,是整體的web.xml檔案,即是這裡有任何改變都會影響該 Tomcat 所有網頁應用程式。如果您想要更精細的控制,例如某些應用程式關掉,但某些則開啟,就需要以第一個選項來做,建立 index.html檔案。

    找出以下部分:

        <servlet>
            <servlet-name>default</servlet-name>
            <servlet-class>
              org.apache.catalina.servlets.DefaultServlet
            </servlet-class>
            <init-param>
                <param-name>debug</param-name>
                <param-value>0</param-value>
            </init-param>
            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        

    這是 web.xml 的第一部分,我們關注的選項是:

            <init-param>
                <param-name>listings</param-name>
                <param-value>true</param-value>
            </init-param>
        

    將  <param-value> 改為 false,便可關掉目錄檢視,就是那麼簡單。

     

    5.2 自訂預設頁面

    Tomcat使用的慣例與Apache網頁伺服器相同,index.html 是任何目錄的預設或首頁。有時您可能想改變為 page1.html 或是 JSP 頁面,如以下一樣  now_see_this.jsp:

    要做到這樣,只需開啟網頁程式的 web.xml ,加上以下這些:

        <welcome-file-list>
            <welcome-file>now_see_this.jsp</welcome-file>
            <welcome-file>page1.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
        </welcome-file-list>
        

    要令整個系統改變,可在 $CATALINA_HOME/conf 下修改整體的 web.xml,並將 <welcome-file> 改變指向您所選的檔案。

    posted @ 2005-06-07 15:47 似水流年 閱讀(329) | 評論 (0)編輯 收藏
         摘要: 1.表格的顯示格式,在css中定義; css Property Default Valid Values Description Can be set using file/setProperty  css.tr.even even any valid css class name css class automatically added ...  閱讀全文
    posted @ 2005-06-07 15:46 似水流年 閱讀(2255) | 評論 (0)編輯 收藏
    有時要求利用一個超鏈來同時打開兩個幀頁。我們先假設要通過超鏈1來同時載入幀頁first.htm和next.htm到不同的幀頁窗口,其中將next.htm在窗口banner處打開(窗口名稱可以在框架頁中類似
    <frame name="banner" target="main" src="left.htm">的語句中找到)。需要在first.htm中加入onload指令:
    <body onload="parent.banner.location.href= 'next.htm'"></body> 
    具體加入形式:
    <html> 
    <body onload="parent.banner.location.href= 'next.htm'"> 
    此處是該文件原有的其他內容 
    </body> 
    </html> 
    原理很簡單,超鏈1打開first.htm,而first.htm中加入的onload語句自動打開next.htm到指定的窗口,從而實現利用一個鏈接控制兩個幀頁的功能(你完全可以進一步發揮)。
    posted @ 2005-06-07 15:08 似水流年 閱讀(284) | 評論 (0)編輯 收藏
         摘要: 在開發復雜的企業應用程序時,很多人更喜歡使用企業 JavaBean (EJB) 技術,讓應用服務器來管理對象可持續性。其他人可能更喜歡使用 Java 數據庫連接 (JDBC) 標準 API,以便手動地優化數據庫訪問。這些解決方案可能不適合于簡單的由數據庫支持的網站,這種網站只需使用 JSP 盡可能快地進行原型開發。如果您只需要查詢和更新一個簡單的數據庫,則提供數據庫訪問特性的標記庫可能是最佳的解決...  閱讀全文
    posted @ 2005-06-07 15:04 似水流年 閱讀(779) | 評論 (1)編輯 收藏
    我們可以用CSS語法來控制超鏈接的形式、顏色變化。

      下面我們做一個這樣的鏈接:未被點擊時超鏈接文字無下劃線,顯示為藍色;當鼠標在鏈接上時有下劃線,鏈接文字顯示為紅色;當點擊鏈接后,鏈接無下劃線,顯示為綠色。

      實現方法很簡單,在源代碼的<head>和<head>之間加上如下的CSS語法控制:

      

    <style type="text/css"> 
       <!-- 
       a:link 
    { text-decoration: none;color: blue} 
       a:active 
    { text-decoration:blink} 
       a:hover 
    { text-decoration:underline;color: red} 
       a:visited 
    { text-decoration: none;color: green} 
       --> 
       
    </style> 

      其中:
      a:link 指正常的未被訪問過的鏈接;
      a:active 指正在點的鏈接;
      a:hover 指鼠標在鏈接上;
      a:visited 指已經訪問過的鏈接;
      text-decoration是文字修飾效果的意思;
      none參數表示超鏈接文字不顯示下劃線;
      underline參數表示超鏈接的文字有下劃線

      下面這行文字就是我們剛才做的效果。

    效果演示

      同樣,如果講none替換成overline則給超鏈接文字加上劃線,換成line-through給超鏈接文字加上刪除線,blink則使文字在閃爍。

    posted @ 2005-06-07 14:47 似水流年 閱讀(530) | 評論 (0)編輯 收藏

    導出:

    SELECT * from ebook INTO OUTFILE "bookdev.txt" FIELDS ENCLOSED by '"' TERMINATED by "," LINES TERMINATED BY "\n"

     

    導入:

    LOAD DATA INFILE "bookdev.txt" into TABLE ebook  FIELDS ENCLOSED by '"' TERMINATED by ","  LINES TERMINATED BY "\n"
    posted @ 2005-06-07 14:44 似水流年 閱讀(445) | 評論 (0)編輯 收藏
    有些中文在jbuilder的IDE下無法正常顯示,可采取以下辦法解決:
    設${jbuider}為jbuilder的安裝目錄,到${jbuider}/jdk1.4jre/lib下.把font.properties文件備份,根據需要將font.properties.*其中之一重命名為font.properties,重啟jbuilder即可.
    posted @ 2005-06-07 14:40 似水流年 閱讀(468) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 免费一级毛片在播放视频| 99精品视频免费| 中国亚洲呦女专区| 在线观看亚洲一区二区| 亚洲AV成人片色在线观看| 国产成人亚洲综合无码精品| 亚洲中文字幕丝袜制服一区| 亚洲男人av香蕉爽爽爽爽| 亚洲A∨精品一区二区三区| 亚洲不卡AV影片在线播放| 亚洲国模精品一区| 亚洲一级特黄无码片| 国产亚洲精品无码拍拍拍色欲| 亚洲欧洲无码AV电影在线观看| 亚洲中文字幕无码一久久区| 亚洲精品V欧洲精品V日韩精品| 亚洲av午夜福利精品一区| 亚洲色av性色在线观无码| 亚洲国产午夜电影在线入口| 亚洲乱码一二三四区乱码| 久久亚洲欧美国产精品| 特级aaaaaaaaa毛片免费视频| 一级**爱片免费视频| 大地资源网高清在线观看免费| 久久午夜无码免费| 4hu四虎最新免费地址| 女人张开腿给人桶免费视频| 成人免费视频国产| 亚洲精品高清在线| 亚洲成av人影院| 国产成人精品日本亚洲11| 亚洲精品无码专区久久| 黄色三级三级三级免费看| 中国一级特黄高清免费的大片中国一级黄色片| 日本免费人成网ww555在线| 黄色永久免费网站| 国产成人啪精品视频免费网| 亚洲午夜精品一级在线播放放 | 99精品免费观看| 在线a级毛片免费视频| 日韩精品成人亚洲专区|