
		 
		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 似水流年 阅读(3323) | 
评论 (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 似水流年 阅读(1144) | 
评论 (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 似水流年 阅读(652) | 
评论 (0) | 
编辑 收藏AppFuse的Ant任务
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, 配置tomcat和deploys expanded war | 
| clean | Removes build artifacts | 
| compile | 编译所有的文件 | 
| deploy | 编译、然后部署到Tomcat | 
| deploy-web | 部署JSP和静态Web内容到Tomcat | 
| install | 使用Tomcat的Manager程序安装Web程序. 对于向远程服务器上部署程序很适合
 | 
| list | 列出Tomcat已经安装、部署好的应用 | 
| refresh | Undeploys, cleans, 然后重新部署.  | 
| reload | 使Tomcat重新装载所有程序 | 
| remove | 删除Tomcat部署好的程序 | 
| setup-db | 创建数据库,并插入范例需要的数据 | 
| setup-tomcat | 复制JDBC驱动和context.xml到Tomcat相应目录下 | 
| test-all | 运行所有用于测试dao, service和web的测试用例 | 
| 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 似水流年 阅读(440) | 
评论 (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&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 似水流年 阅读(672) | 
评论 (0) | 
编辑 收藏
一.在 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:
Example 1:
 // FileInputDemo
// FileInputDemo
 // Demonstrates FileInputStream and DataInputStream
// Demonstrates FileInputStream and DataInputStream
 import java.io.*;
import java.io.*;


 class FileInputDemo
class FileInputDemo  {
{

 public static void main(String args[])
  public static void main(String args[])  {
{
 // args.length is equivalent to argc in C
    // args.length is equivalent to argc in C

 if (args.length == 1)
    if (args.length == 1)  {
{

 try
      try  {
{
 // Open the file that is the first command line parameter
        // Open the file that is the first command line parameter
 FileInputStream fstream = new FileInputStream(args[0]);
        FileInputStream fstream = new FileInputStream(args[0]);
 // Convert our input stream to a DataInputStream
        // Convert our input stream to a DataInputStream
 DataInputStream in = new DataInputStream(fstream);
        DataInputStream in = new DataInputStream(fstream);
 // Continue to read lines while there are still some left to read
        // Continue to read lines while there are still some left to read

 while (in.available() !=0)
        while (in.available() !=0)  {
{
 // Print file line to screen
          // Print file line to screen
 System.out.println (in.readLine());
          System.out.println (in.readLine());
 }
        }
 in.close();
        in.close();

 } catch (Exception e)
      } catch (Exception e)  {
{
 System.err.println("File input error");
        System.err.println("File input error");
 }
      }
 }
    }
 else
    else
 System.out.println("Invalid parameters");
      System.out.println("Invalid parameters");
 }
  }
 }
}

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

 class FileOutputDemo
class FileOutputDemo 


 {
{    

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


 try
try  {
{
 // connected to "myfile.txt"
  // connected to "myfile.txt"
 out = new FileOutputStream("myfile.txt");
      out = new FileOutputStream("myfile.txt");
 // Connect print stream to the output stream
      // Connect print stream to the output stream
 p = new PrintStream( out );
      p = new PrintStream( out );
 p.println ("This is written to a file");
      p.println ("This is written to a file");
 p.close();
      p.close();

 } catch (Exception e)
    } catch (Exception e)  {
{
 System.err.println ("Error writing to file");
      System.err.println ("Error writing to file");
 }
    }
 }
  }
 }
}

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


 class FileReadTest
class FileReadTest  {
{      

 public static void main (String[] args)
  public static void main (String[] args)  {
{
 FileReadTest t = new FileReadTest();
    FileReadTest t = new FileReadTest();
 t.readMyFile();
    t.readMyFile();
 }
} 
 
    

 void readMyFile()
  void readMyFile()  {
{ 
 String record = null;
    String record = null;
 int recCount = 0;
    int recCount = 0; 

 try
    try  {
{ 
 FileReader fr = new FileReader("mydata.txt");
FileReader fr = new FileReader("mydata.txt");
 BufferedReader br = new BufferedReader(fr);
       BufferedReader br = new BufferedReader(fr);
 record = new String();
       record = new String();

 while ((record = br.readLine()) != null)
       while ((record = br.readLine()) != null)  {
{
 recCount++;
         recCount++;
 System.out.println(recCount + ": " + record);
         System.out.println(recCount + ": " + record); 
 }
}
 br.close();
br.close();
 fr.close();
fr.close(); 

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

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


 class FileWriteTest
class FileWriteTest  {
{      

 public static void main (String[] args)
  public static void main (String[] args)  {
{
 FileWriteTest t = new FileWriteTest();
    FileWriteTest t = new FileWriteTest();
 t.WriteMyFile();
    t.WriteMyFile();
 }
} 
 
    

 void WriteMyFile()
  void WriteMyFile()  {
{ 

 try
    try  {
{ 
 FileWriter fw = new FileWriter("mydata.txt");
FileWriter fw = new FileWriter("mydata.txt");
 PrintWriter out = new PrintWriter(fw);
PrintWriter out = new PrintWriter(fw);    
 out.print(“hi,this will be wirte into the file!”);
out.print(“hi,this will be wirte into the file!”);   
 out.close();
out.close();
 fw.close();
fw.close();

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

 
			posted @ 
2005-06-23 17:46 似水流年 阅读(933) | 
评论 (2) | 
编辑 收藏
<embed src="http://wmt2.aboutmedia.com.tw/Aboutmedia/warner/mtv/naying-021011_01v_120k.wmv";; 
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="http://www.shunde.net.cn/~biyun/wlsd/wy/yinyue/H/1.mid"; width="47" height="24" AUTOSTART=TRUE> 
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="http://music.sdcatv.net/biyun/wlsd/down/yin/gequ/asf/5.asf";>
<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://*.mp3,http://*.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="http://music.cnvnet.com/mtv/20010618/002.ram";>
<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="http://music.cnvnet.com/mtv/20010618/001.ram";>
<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="http://music.cnvnet.com/mtv/20010618/001.ram";>
<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 似水流年 阅读(1289) | 
评论 (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 似水流年 阅读(663) | 
评论 (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 似水流年 阅读(1867) | 
评论 (1) | 
编辑 收藏
			返回到前一页不刷新
 <input type="button" value="返回" onClick="history.go(-1)">
<input type="button" value="返回" onClick="history.go(-1)">  返回到前一页并刷新
 <%String ref = request.getHeader("REFERER");response.sendRedirect(ref);%>
<%String ref = request.getHeader("REFERER");response.sendRedirect(ref);%> 
			posted @ 
2005-06-07 16:12 似水流年 阅读(833) | 
评论 (0) | 
编辑 收藏
 <a href="delete.jsp?Id=${row.Id}" onclick="if(confirm('确认删除?')){this.click();}else{return false;}">删除</a>
<a href="delete.jsp?Id=${row.Id}" onclick="if(confirm('确认删除?')){this.click();}else{return false;}">删除</a> 
			posted @ 
2005-06-07 16:10 似水流年 阅读(416) | 
评论 (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 似水流年 阅读(3668) | 
评论 (3) | 
编辑 收藏
			以mysql为例 
 <sql:setDataSource
<sql:setDataSource 
 var="bookdev"  //数据库名
  var="bookdev"  //数据库名 
 driver="org.gjt.mm.mysql.Driver" //驱动程序
  driver="org.gjt.mm.mysql.Driver" //驱动程序 
 url="jdbc:mysql://localhost:3306/bookdev?useUnicode=true&characterEncoding=gb2312" //URL
  url="jdbc:mysql://localhost:3306/bookdev?useUnicode=true&characterEncoding=gb2312" //URL
 user="root" //用户名
  user="root" //用户名
 password="" //密码
  password="" //密码 
 scope="session"
 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 似水流年 阅读(410) | 
评论 (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="before" value="\\"/> 
 <c:set var="after" value="\\\\"/>
<c:set var="after" value="\\\\"/> 

 $
$ {fn:replace(param.sourceUrl,before,after)}
{fn:replace(param.sourceUrl,before,after)} 

 问题解决
			
posted @ 
2005-06-07 16:01 似水流年 阅读(1461) | 
评论 (1) | 
编辑 收藏
			加密
 <sql:update var="user" dataSource="${bookdev}">
<sql:update var="user" dataSource="${bookdev}"> 
 insert into user values("","${param.userName}",password("${param.userPwd}"),"${param.userLevel}")
  insert into user values("","${param.userName}",password("${param.userPwd}"),"${param.userLevel}") 
 </sql:update>
</sql:update> 

 解密
 <sql:query var="query" dataSource="${bookdev}">
<sql:query var="query" dataSource="${bookdev}"> 
 select * from user where userName='${param.userName}' and
  select * from user where userName='${param.userName}' and 
 userPwd=password('${param.userPwd}')
  userPwd=password('${param.userPwd}') 
 </sql:query>
</sql:query> 
			posted @ 
2005-06-07 16:00 似水流年 阅读(619) | 
评论 (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 似水流年 阅读(318) | 
评论 (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">
<c:set var="test"> 
 /<%=java.net.URLEncoder.encode("用jsp实现文件上传.pdf")%>
  /<%=java.net.URLEncoder.encode("用jsp实现文件上传.pdf")%> 
 </c:set>
</c:set> 
 <c:redirect context="/ebooks" url="${test}"/>
<c:redirect context="/ebooks" url="${test}"/> 

 
链接传递中文参数例子
 <a href=hello.jsp?send=<%=java.net.URLEncoder.encode("中文")%>> 点击</a>
<a href=hello.jsp?send=<%=java.net.URLEncoder.encode("中文")%>> 点击</a> 

 
 jspsmartupload组件下载中文例子:
 
 <%@ page contentType="text/html;charset=gb2312"
<%@ page contentType="text/html;charset=gb2312" 
 import="com.jspsmart.upload.*" %><%
import="com.jspsmart.upload.*" %><% 

 SmartUpload mySmartUpload  = new SmartUpload();
SmartUpload mySmartUpload  = new SmartUpload(); 

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

 mySmartUpload.downloadFile(path);
mySmartUpload.downloadFile(path); 
 response.getOutputStream().close();
response.getOutputStream().close(); 
 // With options
// With options 
 // mySmartUpload.downloadFile("/upload/sample.zip","application/x-zip-compressed","downloaded.zip")
// mySmartUpload.downloadFile("/upload/sample.zip","application/x-zip-compressed","downloaded.zip") 
 %>
%> 

 
			posted @ 
2005-06-07 15:57 似水流年 阅读(4688) | 
评论 (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 似水流年 阅读(672) | 
评论 (0) | 
编辑 收藏
 <html>
<html> 
 <head>
<head> 
 <title>Untitled Document</title>
<title>Untitled Document</title> 
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
 </head><LINK href="../hellking.css" type=text/css rel=stylesheet>
</head><LINK href="../hellking.css" type=text/css rel=stylesheet> 
 <body>
<body> 

 <%
<% request.setCharacterEncoding("gb2312"); %>
request.setCharacterEncoding("gb2312"); %> 


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

 
    {
{ 
 str='<br>';
   str='<br>'; 
 if(!window.form1.upcount.value)
   if(!window.form1.upcount.value) 
 window.form1.upcount.value=1;
    window.form1.upcount.value=1; 

 if(window.form1.upcount.value>100)
   if(window.form1.upcount.value>100) {
{ 
 alert("您最多只能同时上传100个文件0");
   alert("您最多只能同时上传100个文件0"); 
 window.form1.upcount.value = 100;
   window.form1.upcount.value = 100; 
 setid();
   setid(); 
 }
   } 

 else
   else {
{ 
 for(i=1;i<=window.form1.upcount.value;i++)
    for(i=1;i<=window.form1.upcount.value;i++) 
 str+='<div>文件'+i+':<input type="file" name="file'+i+'"></div><br><br>';
      str+='<div>文件'+i+':<input type="file" name="file'+i+'"></div><br><br>'; 
 window.upid.innerHTML=str+'<br>';}
   window.upid.innerHTML=str+'<br>';} 
 }
   } 
 </script>
 </script> 



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

 
 

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

 <tr>
          <tr> 
 <td><font color="#FF0000"><b>*</b></font>上传的文件大小不能超过<font color="#FF0000">999999999</font>个字节</td>
            <td><font color="#FF0000"><b>*</b></font>上传的文件大小不能超过<font color="#FF0000">999999999</font>个字节</td> 
 </tr>
          </tr> 
 <tr>
          <tr> 
 <td>
            <td> 

 <b><font color="#FF0000">*</font></b>每次可以设置同时上传<font color="#FF0000">100</font>个文件。<br>
              <b><font color="#FF0000">*</font></b>每次可以设置同时上传<font color="#FF0000">100</font>个文件。<br>

 设置上传的个数
              设置上传的个数 
 <input type="text" value="1" name="upcount" size="20">
              <input type="text" value="1" name="upcount" size="20"> 
 <input type="button" name="Button"  onClick="setid();" value="设定">
              <input type="button" name="Button"  onClick="setid();" value="设定"> 

 </td>
            </td> 
 </tr>
          </tr> 

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


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


 
			posted @ 
2005-06-07 15:51 似水流年 阅读(572) | 
评论 (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 似水流年 阅读(350) | 
评论 (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 似水流年 阅读(2271) | 
评论 (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>
<body onload="parent.banner.location.href= 'next.htm'"></body> 

 具体加入形式: 
 <html>
<html> 
 <body onload="parent.banner.location.href= 'next.htm'">
<body onload="parent.banner.location.href= 'next.htm'"> 
 此处是该文件原有的其他内容
此处是该文件原有的其他内容 
 </body>
</body> 
 </html>
</html> 

 原理很简单,超链1打开first.htm,而first.htm中加入的onload语句自动打开next.htm到指定的窗口,从而实现利用一个链接控制两个帧页的功能(你完全可以进一步发挥)。
			
posted @ 
2005-06-07 15:08 似水流年 阅读(301) | 
评论 (0) | 
编辑 收藏
			     摘要: 在开发复杂的企业应用程序时,很多人更喜欢使用企业 JavaBean (EJB) 技术,让应用服务器来管理对象可持续性。其他人可能更喜欢使用 Java 数据库连接 (JDBC) 标准 API,以便手动地优化数据库访问。这些解决方案可能不适合于简单的由数据库支持的网站,这种网站只需使用 JSP 尽可能快地进行原型开发。如果您只需要查询和更新一个简单的数据库,则提供数据库访问特性的标记库可能是最佳的解决...  
阅读全文
			posted @ 
2005-06-07 15:04 似水流年 阅读(795) | 
评论 (1) | 
编辑 收藏
			我们可以用CSS语法来控制超链接的形式、颜色变化。 
  下面我们做一个这样的链接:未被点击时超链接文字无下划线,显示为蓝色;当鼠标在链接上时有下划线,链接文字显示为红色;当点击链接后,链接无下划线,显示为绿色。 
  实现方法很简单,在源代码的<head>和<head>之间加上如下的CSS语法控制: 
   

 <style type="text/css">
<style type="text/css"> 
 
 <!--
   <!-- 

 a:link {
   a:link { }{ text-decoration: none;color: blue}
}{ text-decoration: none;color: blue} 

 a:active {
   a:active { }{ text-decoration:blink}
}{ text-decoration:blink} 

 a:hover {
   a:hover { }{ text-decoration:underline;color: red}
}{ text-decoration:underline;color: red} 

 a:visited {
   a:visited { }{ text-decoration: none;color: green}
}{ text-decoration: none;color: green} 
 -->
   --> 
 </style>
   </style> 

 
  其中: 
  a:link 指正常的未被访问过的链接; 
  a:active 指正在点的链接; 
  a:hover 指鼠标在链接上; 
  a:visited 指已经访问过的链接; 
  text-decoration是文字修饰效果的意思; 
  none参数表示超链接文字不显示下划线; 
  underline参数表示超链接的文字有下划线 
  下面这行文字就是我们刚才做的效果。
效果演示 
  同样,如果讲none替换成overline则给超链接文字加上划线,换成line-through给超链接文字加上删除线,blink则使文字在闪烁。 
			posted @ 
2005-06-07 14:47 似水流年 阅读(549) | 
评论 (0) | 
编辑 收藏导出:
 SELECT * from ebook INTO OUTFILE "bookdev.txt" FIELDS ENCLOSED by '"' TERMINATED by "," LINES TERMINATED BY "\n"
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"
LOAD DATA INFILE "bookdev.txt" into TABLE ebook  FIELDS ENCLOSED by '"' TERMINATED by ","  LINES TERMINATED BY "\n" 
			posted @ 
2005-06-07 14:44 似水流年 阅读(462) | 
评论 (0) | 
编辑 收藏
			有些中文在jbuilder的IDE下无法正常显示,可采取以下办法解决: 
设${jbuider}为jbuilder的安装目录,到${jbuider}/jdk1.4jre/lib下.把font.properties文件备份,根据需要将font.properties.*其中之一重命名为font.properties,重启jbuilder即可.
			
posted @ 
2005-06-07 14:40 似水流年 阅读(482) | 
评论 (0) | 
编辑 收藏