隨筆-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 似水流年 閱讀(3303) | 評論 (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 似水流年 閱讀(1128) | 評論 (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 似水流年 閱讀(637) | 評論 (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 似水流年 閱讀(657) | 評論 (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 似水流年 閱讀(906) | 評論 (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 似水流年 閱讀(1270) | 評論 (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 似水流年 閱讀(646) | 評論 (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 似水流年 閱讀(1849) | 評論 (1)編輯 收藏
          返回到前一頁不刷新
          <input type="button" value="返回" onClick="history.go(-1)"> 

          返回到前一頁并刷新
          <%String ref = request.getHeader("REFERER");response.sendRedirect(ref);%>
          posted @ 2005-06-07 16:12 似水流年 閱讀(818) | 評論 (0)編輯 收藏
          <href="delete.jsp?Id=${row.Id}" onclick="if(confirm('確認刪除?')){this.click();}else{return false;}">刪除</a>
          posted @ 2005-06-07 16:10 似水流年 閱讀(400) | 評論 (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 似水流年 閱讀(3651) | 評論 (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 似水流年 閱讀(399) | 評論 (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 似水流年 閱讀(1448) | 評論 (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 似水流年 閱讀(606) | 評論 (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 似水流年 閱讀(301) | 評論 (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 似水流年 閱讀(4653) | 評論 (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 似水流年 閱讀(660) | 評論 (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 似水流年 閱讀(561) | 評論 (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 似水流年 閱讀(331) | 評論 (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 似水流年 閱讀(2258) | 評論 (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 似水流年 閱讀(286) | 評論 (0)編輯 收藏
               摘要: 在開發復雜的企業應用程序時,很多人更喜歡使用企業 JavaBean (EJB) 技術,讓應用服務器來管理對象可持續性。其他人可能更喜歡使用 Java 數據庫連接 (JDBC) 標準 API,以便手動地優化數據庫訪問。這些解決方案可能不適合于簡單的由數據庫支持的網站,這種網站只需使用 JSP 盡可能快地進行原型開發。如果您只需要查詢和更新一個簡單的數據庫,則提供數據庫訪問特性的標記庫可能是最佳的解決...  閱讀全文
          posted @ 2005-06-07 15:04 似水流年 閱讀(781) | 評論 (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 似水流年 閱讀(531) | 評論 (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 似水流年 閱讀(448) | 評論 (0)編輯 收藏
          有些中文在jbuilder的IDE下無法正常顯示,可采取以下辦法解決:
          設${jbuider}為jbuilder的安裝目錄,到${jbuider}/jdk1.4jre/lib下.把font.properties文件備份,根據需要將font.properties.*其中之一重命名為font.properties,重啟jbuilder即可.
          posted @ 2005-06-07 14:40 似水流年 閱讀(471) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 永兴县| 呼和浩特市| 汽车| 衡水市| 长沙县| 三原县| 四子王旗| 曲松县| 福泉市| 武城县| 巴东县| 黑河市| 密云县| 武山县| 府谷县| 滨州市| 庆安县| 江达县| 吉安县| 裕民县| 石首市| 武安市| 清苑县| 渑池县| 兴海县| 马山县| 彰化市| 远安县| 平塘县| 融水| 乌拉特后旗| 新和县| 屏东市| 沙雅县| 石河子市| 宾川县| 云阳县| 电白县| 河南省| 长治县| 泾川县|