??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一级特黄大片在线观看,亚洲精品女同中文字幕,亚洲成色999久久网站http://www.tkk7.com/warrenwu/我是java界的一只臭?!!zh-cnSun, 11 May 2025 09:08:35 GMTSun, 11 May 2025 09:08:35 GMT60中國作家是為了什麽而出書?Q?http://www.tkk7.com/warrenwu/archive/2007/01/24/95760.htmlWarren.WuWarren.WuWed, 24 Jan 2007 08:36:00 GMThttp://www.tkk7.com/warrenwu/archive/2007/01/24/95760.htmlhttp://www.tkk7.com/warrenwu/comments/95760.htmlhttp://www.tkk7.com/warrenwu/archive/2007/01/24/95760.html#Feedback1http://www.tkk7.com/warrenwu/comments/commentRss/95760.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/95760.html我真是悲哀啊~~~但不是為我們的作家悲哀,而是為我的錢悲哀~~~


Warren.Wu 2007-01-24 16:36 发表评论
]]>
恶心的Datehttp://www.tkk7.com/warrenwu/archive/2006/12/18/88605.htmlWarren.WuWarren.WuMon, 18 Dec 2006 10:49:00 GMThttp://www.tkk7.com/warrenwu/archive/2006/12/18/88605.htmlhttp://www.tkk7.com/warrenwu/comments/88605.htmlhttp://www.tkk7.com/warrenwu/archive/2006/12/18/88605.html#Feedback0http://www.tkk7.com/warrenwu/comments/commentRss/88605.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/88605.html把我费了半个时解决的垃N题写下来.

用JDBC?PreparedStatement׃用到set()Ҏ,但setq去的则是java.sql.Datecd,而不是java.util.Datecd,问题出来了,比如当你setq去一个时?假设旉2006-12-18 15:43:23),如下:

 java.sql.Date today = new java.sql.Date();

我要查在q个旉以前的数?可结果却q回?font color="#ff0000">17号以前的l果,

在数据库里查也是没有问题?但问题出在什么地方呢?后来扑ֈ的答案就?通过q种方式java.sql.Date会省略小??U?转成的SQL会默认ؓ2006-12-18 00:00:00,认ؓ是查2006-12-18 00:00:00之前的结?ph造成了这ơ头痛的事g,而这一代码q不是本人所?看别人的代码真是?

最后只好在旉上加1?否则需要用字符串比?不知道还有其他方法没?


Warren.Wu 2006-12-18 18:49 发表评论
]]>
[转]java数据库连?/title><link>http://www.tkk7.com/warrenwu/archive/2006/10/08/73730.html</link><dc:creator>Warren.Wu</dc:creator><author>Warren.Wu</author><pubDate>Sun, 08 Oct 2006 03:11:00 GMT</pubDate><guid>http://www.tkk7.com/warrenwu/archive/2006/10/08/73730.html</guid><wfw:comment>http://www.tkk7.com/warrenwu/comments/73730.html</wfw:comment><comments>http://www.tkk7.com/warrenwu/archive/2006/10/08/73730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/warrenwu/comments/commentRss/73730.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/warrenwu/services/trackbacks/73730.html</trackback:ping><description><![CDATA[ <p>q是一基性文章,主要介绍了jdbc在流行数据库(sql server,oracle)斚w的应用。但是都是个点,所以不能保证完全正,仅供参考,如果有不同意见可以在评论中指出,我会做相应的修改?) <br />一般情况下,直接用jdbc{东西连数据库时,比较常用q数据库的代码可能是: <br />private Connection conn <br />private String poolURL = ""; <br />private String driverName =""; <br />private String user="" <br />private String pass=""; <br />private DBConnProxy Proxy; //自己写的class,h制数据库讉K作用 <br />public Object getConn() <br />{ <br />try <br />{ <br />Properties prop=new Properties(); <br />prop.setProperty("user",user); <br />prop.setProperty("password",pass); <br />Driver mydriver=(Driver)Class.forName(driverName).newInstance(); <br />conn = mydriver.connect(poolURL,prop);//或者conn = mydriver.connect(poolURL,null);具体什么时候用我还的请教高手?<br />/* <br />或? <br />Class.forName(driverName); <br />conn=DriverManager.getConnection(poolURL, user, pass); <br />*/ <br />} <br />catch ( Exception e ) <br />{ <br />System.out.println("打开数据库出错\n" + e.getMessage()); <br />} <br /><br />if(!Proxy.getDB() ){ <br />this.Close() <br />return null; <br />} <br /><br />return conn; <br />} <br />其中?driverName,poolURL,user,pass都可以通过d xml文g或普通属性文件获取。而是qsqlserverq是oracle只是改攚w|就可以了?<br />它们都可以用 sun.jdbc.odbc.JdbcOdbcDriver 来连。对应poolURL="jdbc:odbc:test",user,pass?<br />也可以用自己Ҏ? <br />sqlserver:weblogic.jdbc.mssqlserver4.Driver (|上? 对应poolURL="jdbc:weblogic:mssqlserver4:ceic@127.0.0.1" //ceic是数据库名,127.0.0.1是数据源位置,可以是远E的数据?user,pass?<br />oracle:oracle.jdbc.driver.OracleDriver (class12.zip,装了oracle应该有? 对应jdbc:oracle:thin:scott/tiger@10.1.103.234:1521:sp" scott/tigerq接w䆾的用户名/密码,10.1.103.234,数据源ip,1521:端口(默认?521). sp指向数据库名user,pass?<br />如果用的weblogic配的数据库连接,可以通过 <br />Context ctx = new InitialContext(); <br />DataSource ds = (DataSource)ctx.lookup("forceicdatasource"); //forceicdatasource是配的datasource.也可以通过和上面统一的方法来调用?<br />weblogic:weblogic.jdbc.pool.Driver //driverName <br />对应的poolURL="jdbc:weblogic:pool:poolname" //poolname是在weblogic中配的jdbccd的connections pool的名字。user,pass是weblogic用户Qadministrators用户l中的用P的用户名和密码?如果不是用DriverManagerq不上Q?conn = mydriver.connect(poolURL,null);"是在这U情况下可以用。我在weblogic 6.1下测试通过) <br />lg说的Q可以看出,大多数数据库q接都可以通过配置 属性文?来灵zȝ获取。(ULh很是方便Qƈ且对应用基本没有什么媄响,当然也可以夸q_)所以我可以通过动态读取属性文件来解决?<br />private String javaHome = System.getProperty("java.home"); <br />private final String FS = System.getProperty("file.separator"); <br />private String path = javaHome+FS+"db.properties"; //把db.properties攑֜pȝ属性java.home下,一般是jdk目录下的 jre目录里?<br />public boolean getInfo(){ <br />File file=new java.io.File(path); <br />Properties pro=new Properties(); <br />boolean readsucced; <br />try{ <br />InputStream in=new BufferedInputStream(new FileInputStream(file)); <br />pro.load(in); <br />driverName=pro.getProperty("driverName"); <br />poolURL=pro.getProperty("poolURL") <br />user=pro.getProperty("user") <br />pass=pro.getProperty("pass") <br />//自己把它们trim()掉。我偷懒不写了?<br />readsucced=true; <br />}catch(Exception e){System.out.println("d属性文件出?);readsucced=false;} <br />return readsucced; <br />} <br />不过一般只用读一ơ就可以了。所以可以把它放?static{}块里Q也可以攑֜构造器里面(然后和放在静态连接池Q如果是单独的应用,应该把getInfo()作ؓ静态类和数据库q接cd开)?<br />public DBConn() { <br />setDBConnProxy(ProxyFactory.DefaultType );//讑֮q接proxy,控制数据库连接频率,可能会牺牲效力,不过在防止恶意破坏上有点作用Q自己写的毕竟赶不上weblogic的连接池了。所以只好做点小的防范措?如果是用weblogic配的q接池,可以直接在proxyFactory里面加个什么都不做的proxy. <br />getInfo(); <br />} <br />属性文件db.properties内容如下: <br />driverName=sun.jdbc.odbc.JdbcOdbcDriver <br />poolURL=jdbc:odbc:test <br />user=sa <br />pass=1234Q_Q5678 <br />自己可以耕具实际情况L改属性文件?<br />? getConn()Ҏq回的是 Object,是不同的数据库连接有不同的扩展应用,比如oracle的就有针对clob,blob的应用(用class12.zip的情况下Q,普通的connection不能满,所以可以通过在应用中把getConn()q回的Object转化成OracleConnection来用。(个h观点Q不知道有没有更好的解决ҎQ?<br />上面写的q么多,可能只对新手有点用处Q在j2ee风行的今天已l很落伍了,q希望高手指出问题一赯?q没有有关于mysql的连接办法,没有做过Q希望有补充上来)?<br /><br />转蝲h明出处与作?<br /><br />各家JDBC driver的现行版本及使用用法 airskys [收藏] <br />关键?JDBC <br />出处 <br /><br />有鉴于许多版友对于寻找JDBC driver或者如何用driver常常发问, <br />在这Ҏ单整理一下比较代表性的driver跟用方? <br /><br />Microsoft SQL Server series (6.5, 7.x and 2000) and Sybase 10 <br /><br />JDBC Name: jTDS <br />URL: <a ><font color="#002c99">http://jtds.sourceforge.net/</font></a><br />Version: 0.5.1 <br />Download URL: <a ><font color="#002c99">http://sourceforge.net/project/showfiles.php?group_id=33291</font></a><br /><br />语法: <br /><br />Class.forName("net.sourceforge.jtds.jdbc.Driver "); <br />Connection con = DriverManager.getConnection("jdbc:jtds:sqlserver://host:port/database","user","password"); <br />or <br />Connection con = DriverManager.getConnection("jdbc:jtds:sybase://host:port/database","user","password"); <br /><br />MySQL <br /><br />JDBC Name: Connector/J 3.0 <br />URL: <a ><font color="#002c99">http://www.mysql.com/</font></a><br />Version: 3.0.8-stable <br />Download URL: <a ><font color="#002c99">http://www.mysql.com/downloads/api-jdbc-stable.html</font></a><br /><br />语法: <br /><br />Class.forName("com.mysql.jdbc.Driver"); <br />Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database","user","password"); <br /><br />Oracle <br /><br />JDBC Name: Connector/J 3.0 <br />URL: <a ><font color="#002c99">http://otn.oracle.com/</font></a><br />Version: 3.0.8-stable <br />Download URL: <a ><font color="#002c99">http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html</font></a><br /><br />语法: <br /><br />Class.forName("oracle.jdbc.driver.OracleDriver"); <br />Connection con = DriverManager.getConnection("jdbc:oracle:thin:@host:port:databse","user","password"); <br /><br />Sybase <br /><br />Driver: jConnect 4.5/5.5 (JDBC 2.0 请?.5) <br /><br />语法: <br /><br />Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance(); <br />DriverManager.getConnection("jdbc:sybase:Tds:IP地址:2638?ServiceName="+数据库名U?"账号","密码"); <br /><br />Postgresql <br /><br />JDBC Name: PostgreSQL JDBC <br />URL: <a ><font color="#002c99">http://jdbc.postgresql.org/</font></a><br />Version: 7.3.3 build 110 <br />Download URL: <a ><font color="#002c99">http://jdbc.postgresql.org/download.html</font></a><br /><br />语法: <br /><br />Class.forName("org.postgresql.Driver"); <br />Connection con=DriverManager.getConnection("jdbc:postgresql://host:port/database","user","password"); <br /><br />IBM AS400L在用的JDBC语法 <br /><br />有装V4R4以上版本的Client Access Express <br />可以在C:\Program Files\IBM\Client Access\jt400\lib <br />扑ֈ driver 档案 jt400.zipQƈ更改扩展名成?jt400.jar <br /><br />语法 <br /><br />java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver ()); <br />Class.forName("com.ibm.as400.access.AS400JDBCConnection"); <br />con = DriverManager.getConnection("jdbc:as400://IP","user","password"); <br /><br />各家JDBC driver的现行版本及使用语法各家JDBC driver的现行版本及使用语法各家JDBC driver的现行版本及使用语法各家JDBC driver的现行版本及使用语法各家JDBC driver的现行版本及使用语法各家JDBC driver的现行版?/p> <img src ="http://www.tkk7.com/warrenwu/aggbug/73730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/warrenwu/" target="_blank">Warren.Wu</a> 2006-10-08 11:11 <a href="http://www.tkk7.com/warrenwu/archive/2006/10/08/73730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Spring AOP Frameworkhttp://www.tkk7.com/warrenwu/archive/2006/09/27/72390.htmlWarren.WuWarren.WuWed, 27 Sep 2006 13:07:00 GMThttp://www.tkk7.com/warrenwu/archive/2006/09/27/72390.htmlhttp://www.tkk7.com/warrenwu/comments/72390.htmlhttp://www.tkk7.com/warrenwu/archive/2006/09/27/72390.html#Feedback0http://www.tkk7.com/warrenwu/comments/commentRss/72390.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/72390.html

Spring AOP Framework

 

Here's my little exploration to Spring's AOP framework - a little interceptor which just logs which class is called and which method is called, plus logging the method invocation time; however I hope this can help others to understand Spring's AOP and help them to write interceptors of their own.

-cptechno


An interceptor used in Spring need to implement the org.aopalliance.intercept.MethodInterceptor interface, which requires implementing this method:



public  Object invoke(MethodInvocation methodInvocation)  throws  Throwable;



And next, comes that little interceptor...



import  org.aopalliance.intercept.MethodInterceptor;
import  org.aopalliance.intercept.MethodInvocation;
import  org.apache.commons.logging.Log;
import  org.apache.commons.logging.LogFactory;

public class  MyInterceptor  implements  MethodInterceptor
{
   private final  Log logger = LogFactory.getLog(getClass());

   public  Object invoke(MethodInvocation methodInvocation)  throws  Throwable
   {
     logger.info( "Beginning method: "  + methodInvocation.getMethod().getDeclaringClass() +  "::"  + methodInvocation.getMethod().getName());
     long  startTime = System.currentTimeMillis();
     try
     {
       Object retVal = methodInvocation.proceed();
       return  retVal;
     }
     finally
     {
       logger.info( "Ending method: "   + methodInvocation.getMethod().getDeclaringClass() +  "::"  + methodInvocation.getMethod().getName());
       logger.info( "Method invocation time: "  + (System.currentTimeMillis() - startTime) +  " msecs." );
     }
   }

}



You can do anything as you like; but pay attention to these two lines:



Object retVal = methodInvocation.proceed();
return  retVal;



The execution sequence is as follows:

  1. Any statements placed before Object retVal = methodInvocation.proceed();
  2. Object retVal = methodInvocation.proceed(); , which gives control to the next interceptor in the interceptor stack, or the underlying method.
  3. Any statements placed before return retVal;
  4. return retVal; , which returns control to the interceptor above it, or exit the whole interceptor stack.

Next, to use the interceptor we wrote, we need to turn our business object as an AOP target, like this:



<bean id= "SearchBookBeanTarget"  class = "library.SearchBookBeanImpl"  init-method= "init"  />



As shown, we just need to change the bean's id.

Next we need to hang the interceptor on to Spring's ApplicationContext.



<bean id= "myInterceptor"  class = "library.MyInterceptor"  />



And the last step, we declare our business object actually in the ApplicationContext, via its interface we defined, via Spring's ProxyFactoryBean.



<bean id= "SearchBookBean"  class = "org.springframework.aop.framework.ProxyFactoryBean" >
   <property name= "proxyInterfaces" ><value>library.SearchBookBean</value></property>
     <property name= "interceptorNames" >
       <list>
         <value>myInterceptor</value>
         <value>SearchBookBeanTarget</value>
       </list>
     </property>
   </bean>

  • proxyInterfaces: the actual business interface of our business object.
  • interceptorNames: the execution sequence of the interceptors, with the business object's target as the end of the list. Remember to put the business object's target on the list, otherwise your business object will not work; on the other hand you'll receive an exception telling you that all interceptors had been invoked.

On the application code that will access the business object, no changes are necessary.



Then at your logging target (console, file, etc...) you can see the following output similar to this (time and level info trimmed here):



Beginning method:  interface  library.SearchBookBean::searchBook
....
(log messages about library.SearchBookBean.searchBook()....)
....
Ending method:  interface  library.SearchBookBean::searchBook
Method invocation time:  10  msecs.



Warren.Wu 2006-09-27 21:07 发表评论
]]>
开发前的约?/title><link>http://www.tkk7.com/warrenwu/archive/2006/09/27/72303.html</link><dc:creator>Warren.Wu</dc:creator><author>Warren.Wu</author><pubDate>Wed, 27 Sep 2006 06:48:00 GMT</pubDate><guid>http://www.tkk7.com/warrenwu/archive/2006/09/27/72303.html</guid><wfw:comment>http://www.tkk7.com/warrenwu/comments/72303.html</wfw:comment><comments>http://www.tkk7.com/warrenwu/archive/2006/09/27/72303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/warrenwu/comments/commentRss/72303.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/warrenwu/services/trackbacks/72303.html</trackback:ping><description><![CDATA[ <p style="TEXT-INDENT: 2em">今天q入可开发前的准备阶Dc在开发项目前Q要求每位开发小l成员都必须先阅M下约定,严格按以下约定来q行开发? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>pȝ框架</strong> </font> </center> <p style="TEXT-INDENT: 2em">·pȝL枉用SUN J2EE框架Q用JAVA/XML技术和lg技术, ZApplication server开发? </p> <p style="TEXT-INDENT: 2em">·目中的E序必须严格按J2EE1.3规范来编码,EJB采用2.0规范~码Q尽可能多用EJB 模式设计Q参考技术文档如下: </p> <p style="TEXT-INDENT: 2em">1.<a target="_blank">《J2EE Tutorial?/a></p> <p style="TEXT-INDENT: 2em"> <a target="_blank">j2ee-1_3-doc-tutorial-draft5.pdf</a> </p> <p style="TEXT-INDENT: 2em">2.<a target="_blank">《JBoss 3.0Quick Start Guide?/a></p> <p style="TEXT-INDENT: 2em">3.<a target="_blank">《EJB Design Patterns?/a></p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>开发环?/strong> </font> </center> <p style="TEXT-INDENT: 2em">·试用Application server采用JASQJAS 配置于Linux OS下,IP地址Q?92.168.0.6。登录用户名QJ2EEOAQ密码:J2EEOA。登录ftp工具使用SSH Secure Shell或LeapFTPQftp地址?92.168.0.6:22? </p> <p style="TEXT-INDENT: 2em">·目开发源码目录ؓ/home/local/jboss/applications/J2EEOA/srcQ项目开发文档目录ؓ/home/product/J2EEOA/? </p> <p style="TEXT-INDENT: 2em">· 数据库服务器IP?92.168.0.222Q数据库采用MysqlQ管理工具ؓphpadminQ登录数据库的用户名为testQ密码ؓtest? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>源代码目录规?/strong> </font> </center> <p style="TEXT-INDENT: 2em">每位开发小l成员一定要l对遵守以下创徏源代码目录的规范? </p> <p style="TEXT-INDENT: 2em"> <b>目开发目录结构简图:</b> </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code>\ |--apps |--J2EEOA |--admin |--components |--a component |--modules |--a module |--lib |--ant |--build.properties</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> </p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://developer.ccidnet.com/col/attachment/2002/10/36919.jpg" /> </center> <p style="TEXT-INDENT: 2em"> </p> <center>囄6 目开发目录结构图</center> <p style="TEXT-INDENT: 2em"> <b>目开发目录结构说明:</b> </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code>\ (说明Q根目录) |--apps (说明Q此目录下放应用E序的代? |--J2EEOA (说明Q此目录为放J2EEOA应用E序的代? |--admin (说明Q此目录为放目的admin应用E序的代? |--components (说明Q此目录下放应用E序lg的代? |--a component (说明Q此目录为放一个组件的代码) |--modules (说明Q此目录下放应用E序模块的代? |--a module (说明Q此目录为放一个模块的代码) |--lib (说明Q此目录下放目开发工? |--ant (说明QAnt工具Q包括bin和lin目录) |--build.properties (说明Q此文g定义目开发共用的环境变量Q? 如jboss.home、jboss.configuration、servlet-lib.path{?</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> <b>模块、组件开发目录结构简图:</b> </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code>\ |--build |--etc |--multi-langs |--lib |--docs |--ejb |-- META-INF |--j2ee |--META-INF |--web |--WEB-INF |--src |--ejb |--javabean |--servlet |--web |--build.bat |--build.sh |--build.xml</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> </p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://developer.ccidnet.com/col/attachment/2002/10/36917.jpg" /> </center> <p style="TEXT-INDENT: 2em"> </p> <center>囄7 模块、组件目录结构图</center> <p style="TEXT-INDENT: 2em">说明Qsrc、etc目录和build.bat、build.sh、build.xml为开发h员徏立的目录Qbuild和lib目录为由ant工具生成的目录? </p> <p style="TEXT-INDENT: 2em"> <b>模块、组件开发目录结构说?/b> </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code>\ (说明Q一个模块或一个组件的根目? |--build (说明Q保存由ant工具生成的扩展名为jar、war、ear{文? |--etc (说明Q存N|文Ӟ如web.xml、ejb-jar.xml、application.xml? jaws.xml、jbosscmp-jdbc.xml{? |--multi-langs (说明Q存攑֤语言资源文gQ扩展名为propertiesQ? |--lib (说明Q保存由ant工具生成的API文g、class文g{? |--docs |--api |--ejb |-- META-INF |--j2ee |--META-INF |--web |--WEB-INF |--src (说明Q存放源代码Q包括java和jsp代码Q下面有四个目录? |--ejb (说明Q采用EJBq行开发,存放EJB和Helper Classes源代码? |--javabean (说明Q采用Javabeanq行开发,存放Javabean和Helper Classes源代码? |--servlet (说明Q存放Servlet源代码? |--web (说明Q存放JSP源代码? |--build.bat (说明Q在Window OS下,q行build的文件? |--build.sh (说明Q在Unix OS下,q行build的文件? |--build.xml (说明QAnt工具要build的目标文件?</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> <b>应用E序开发目录结构简图:</b> </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code>\ |--build |--etc |--lib |--docs |--ejb |-- META-INF |--j2ee |--META-INF |--web |--WEB-INF |--team |--a member |--ejb |--javabean |--web |--build.bat |--build.sh |--build.xml |--build.properties</ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> </p> <center> <img style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid" src="http://developer.ccidnet.com/col/attachment/2002/10/36918.jpg" /> </center> <p style="TEXT-INDENT: 2em"> </p> <center>囄8 应用E序目录l构?/center> <p style="TEXT-INDENT: 2em"> <b>应用E序开发目录结?/b> </p> <p style="TEXT-INDENT: 2em">1. ׃目由多个程序员一hq行~码Q所以应用程序开发目录结构和模块、组件开发目录结构的不一栗? </p> <p style="TEXT-INDENT: 2em">2. 应用E序开发目录结构没有src目录Q但多了一个team目录Q此目录存放所有程序员的classes和Jsp代码? </p> <p style="TEXT-INDENT: 2em">3. 应用E序开发目录结构下build.xml和模块、组件开发目录结构下的build.xml有很大不同? </p> <p style="TEXT-INDENT: 2em">4. 由项目组长负责管理etc目录、build.xml、build.bat、build.sh、build.propertiesQ程序员分别理team目录下的属于自己的目录,如程序员tom理team/tom目录?<br /></p> <p style="TEXT-INDENT: 2em"> <b>build.xml~码规范</b> </p> <p style="TEXT-INDENT: 2em">· 应用E序目录下的build.xml </p> <p style="TEXT-INDENT: 2em">源代码:<a target="_blank">应用E序目录下的build.xml规范模板</a></p> <p style="TEXT-INDENT: 2em">说明Q在建立build.xmlӞl长只需修改创徏的时间和变量ProjectName{? </p> <p style="TEXT-INDENT: 2em"> <b>模块、组件目录下的build.xml</b> </p> <p style="TEXT-INDENT: 2em">源代码:<a target="_blank">模块、组件目录下的build.xml规范模板</a></p> <p style="TEXT-INDENT: 2em">说明Q在建立build.xmlӞ开发h员只需修改创徏的时间和和变量ProjectName、componentName{? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>~码规范</strong> </font> </center> <p style="TEXT-INDENT: 2em">· 目中的JAVA源代码必L《JAVA开发规范》? </p> <p style="TEXT-INDENT: 2em">·目中的JSP代码必须按《JSP开发规范》? </p> <p style="TEXT-INDENT: 2em">· 每位开发小l成员在开发项目时都严格按此规范来q行~写E序Q让目中所有的文档都看h像一个h写的Q增加可L,减少目l中因ؓ换h而带来的损失? </p> <p style="TEXT-INDENT: 2em">· 每位开发小l成员一定要l对遵守q个规范。当实际应用与下面的规范相抵触时Q记录下原因、潜在后果,以及W合规范需要的条gQ但必须是在让程序有良好的可L的前提下? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>功能模块</strong> </font> </center> <p style="TEXT-INDENT: 2em">在做业务逻辑模块前,先把一些准备工作做出来Q? </p> <p style="TEXT-INDENT: 2em"> <b>建立一些公用的bean</b>Q项目中UCؓpȝ控制器controllerQ,包名为com.cwap.oa.controller.*Q提供给pȝ各模块用。包括对旉、字W的操作Q调试器QY件国际化Q多语言版本Q系l的WEB外壳QMVC模式的Servlet和ActionQ对WEB面昄的控制如树结构、\径结构;{等? </p> <p style="TEXT-INDENT: 2em"> <b>建立一个序列发生器</b>Q包名ؓcom.cwap.oa.sequencegenerator.*Q提供给bean使用Q它用来产生一个唯一的IDQ而且也可用来计数Q也是把它当成计数器用。介l如何取id的方法的文字要写在bean的代码内Q以便生成API后供其它开发h员参阅? </p> <p style="TEXT-INDENT: 2em"> <b>建立一个ServerFacade</b>Q它为EJB Home提供l一的接口。ServerFacade为程序要用到的所有EJB的home handle提供~存Q提高访问效率。以后查找JNDI Name的方法都应写在接口里Q调用时直接从接口调用? </p> <p style="TEXT-INDENT: 2em"> <b>建立一个翻|制器</b>Q包名ؓcom.cwap.oa.controller.web.page*Q用来进行分|C的理Q以后页面中的分都q|制器理? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>异常处理和日?/strong> </font> </center> <p style="TEXT-INDENT: 2em">· E序中所有的异常处理使用l一的调试器Qbean的名UCؓcom.cwap.oa.controller.util.DebugQ用法见目API? </p> <p style="TEXT-INDENT: 2em">· E序中所有的日志使用Jakarta-log4j理Q包的名UCؓlog4j-1.2.5.jar </p> <p style="TEXT-INDENT: 2em">官方URLQhttp://jakarta.apache.org/log4j/docs/index.html </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>Session</strong> </font> </center> <p style="TEXT-INDENT: 2em">· 攑֜session中的变量l一攑֜一个bean里存储,不直接把session变量名称攑֜JSP、Servlet或Bean内,存储session变量名称的bean为com.cwap.oa.controller.web.util.WebKeysQ取session变量名的Ҏ为getXX()? </p> <p style="TEXT-INDENT: 2em">· 取session变量的值的Ҏl一攑֜一个bean里,bean的名UCؓcom.cwap.oa.controller.web.util.JSPUtilQ取session变量值的Ҏ为getXX()Q之后要取session变量值就调用JSPUtil中对应的Ҏ? </p> <p style="TEXT-INDENT: 2em">· 当前pȝ中已知的session变量名有"userid"?userName"?locale"?skin"{,userid为用h识,userName为用户名Uͼlocale为用户选择的地域,skin为用户选择的界面风根{? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>DAO</strong> </font> </center> <p style="TEXT-INDENT: 2em">使用DAO装SQL语言Ҏ据库的直接操作,DAO采用Factory模式~写? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>lg</strong> </font> </center> <p style="TEXT-INDENT: 2em">所有的业务逻辑使用lg技术。每个组件内同时提供EJB版本和DAO版本两种的方?不推荐直接用EJB版本和DAO版本的方法? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>多语a版本</strong> </font> </center> <p style="TEXT-INDENT: 2em">· Bean、Servlet、JSP中的多语a文字采用分离技术,多语言文字攑֜资源文g中,保存目录?WEB-INF/classes/multi-langs或其它目录? </p> <p style="TEXT-INDENT: 2em">· 当前支持的语a有三U:体中文(zh_CNQ、繁体中文(zh_HKQ、英文(en_USQ? </p> <p style="TEXT-INDENT: 2em">· 多语a理器的名称为com.cwap.oa.controller.util.MultiLangsStringQ用方法见本项目API? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>WEB外壳</strong> </font> </center> <p style="TEXT-INDENT: 2em">· JSP面中的囄、CSS、JS{文仉应放在统一目录Q目录ؓ/skin/skinName/skinLanguageQ其中skinName为外壛_UͼskinLanguage为外壌a版本Q例?skin/green/zh_CN </p> <p style="TEXT-INDENT: 2em">· 囄攑֜images目录里,CSS文g攑֜css目录里,JS脚本攑֜js目录里,其它资源(如声韟뀁视频、Flash文g{?存放Ҏ见项目API? </p> <p style="TEXT-INDENT: 2em">· 外壳理器ؓcom.cwap.oa.controller.web.skin.WebSkinQ调用方法统一接口为com.cwap.oa.controller.web.util.JSPUtil? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>在线帮助</strong> </font> </center> <p style="TEXT-INDENT: 2em">· 在线帮助理器ؓcom.cwap.oa.help.*Q调用方法统一接口为com.cwap.oa.help.client.HelpClientHelper? </p> <p style="TEXT-INDENT: 2em">· 每一个JSP面中提供一个在U帮助链接,用户点击它直接进入到在线帮助中心? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>用户理</strong> </font> </center> <p style="TEXT-INDENT: 2em">· 建立一个取用户名称的页面,功能包括只取一个用户和取多个用戗? </p> <p style="TEXT-INDENT: 2em">· 打开取用户名U页面的ҎQ用页面脚本,"javascript:return openWinToGetEmployee(frame,id,name,num)"Q当num?Q代表可以取多个用户Q否则,只能?个用戗? </p> <p style="TEXT-INDENT: 2em"> </p> <center> <font color="#000099"> <strong>权限理</strong> </font> </center> <p style="TEXT-INDENT: 2em">· 调用Ҏl一接口为com.cwap.oa.controller.web.util.JSPUtilQ检查用h否有权限的方法ؓJSPUtil.isPermission(userid, permissions) </p> <p style="TEXT-INDENT: 2em">· JSP中检验用戯n份采用include方式Qinclude的文件ؓcheckUser.jsp </p> <p style="TEXT-INDENT: 2em">验用戯n份是否是一般用P调用Ҏ? </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code><jsp:include page="../include/checkUser.jsp"> <jsp:param name="type" value="user" /> </jsp:include></ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em">验用戯n份是否是理员,调用Ҏ? </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code><jsp:include page="../include/checkUser.jsp"> <jsp:param name="type" value="manager" /> </jsp:include></ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em">验用戯n份是否是񔽎理员,调用Ҏ? </p> <p style="TEXT-INDENT: 2em"> <ccid_nobr> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre> <ccid_code><jsp:include page="../include/checkUser.jsp"> <jsp:param name="type" value="administrator" /> </jsp:include></ccid_code> </pre> </td> </tr> </tbody> </table> </ccid_nobr> </p> <p style="TEXT-INDENT: 2em"> <br /> <br /> <br />摘自赛_|?http://developer.ccidnet.com/art/322/20021014/27601_1.html, http://developer.ccidnet.com/art/322/20021014/27601_2.html</p> <img src ="http://www.tkk7.com/warrenwu/aggbug/72303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/warrenwu/" target="_blank">Warren.Wu</a> 2006-09-27 14:48 <a href="http://www.tkk7.com/warrenwu/archive/2006/09/27/72303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdomdxmlhttp://www.tkk7.com/warrenwu/archive/2006/09/25/71740.htmlWarren.WuWarren.WuMon, 25 Sep 2006 06:48:00 GMThttp://www.tkk7.com/warrenwu/archive/2006/09/25/71740.htmlhttp://www.tkk7.com/warrenwu/comments/71740.htmlhttp://www.tkk7.com/warrenwu/archive/2006/09/25/71740.html#Feedback0http://www.tkk7.com/warrenwu/comments/commentRss/71740.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/71740.html  1 package  cn.com;
 2
 3 import  java.io.FileInputStream;
 4 import  java.io.FileNotFoundException;
 5 import  java.io.IOException;
 6 import  java.util.List;
 7
 8 import  org.jdom.Document;
 9 import  org.jdom.Element;
10 import  org.jdom.JDOMException;
11 import  org.jdom.input.SAXBuilder;
12
13 public   class  MyJDom  {
14      public   static   void  main(String[] args)  throws  FileNotFoundException, JDOMException, IOException  {
15         SAXBuilder sab  =   new  SAXBuilder();
16         Document doc  =  sab.build( new  FileInputStream( " ./data/myjdom.xml " ));
17         
18         Element element  =  doc.getRootElement();
19         List list  =  element.getChildren();
20         
21          for ( int  i = 0 ; i < list.size(); i ++ {
22             System.out.println( " ------------ " );
23             
24             Element ele2  =  (Element) list.get(i);
25             String id  =  ele2.getAttribute( " id " ).getValue();
26             System.out.println( " ID===>>> "   +  id);
27             
28             Element ele3  =  ele2.getChild( " title " );
29             String title  =  ele3.getText();
30             System.out.println( " Title===>>> "   +  title);
31         }

32     }

33 }

34

Warren.Wu 2006-09-25 14:48 发表评论
]]>
再看JDBChttp://www.tkk7.com/warrenwu/archive/2006/09/25/71668.htmlWarren.WuWarren.WuMon, 25 Sep 2006 02:44:00 GMThttp://www.tkk7.com/warrenwu/archive/2006/09/25/71668.htmlhttp://www.tkk7.com/warrenwu/comments/71668.htmlhttp://www.tkk7.com/warrenwu/archive/2006/09/25/71668.html#Feedback0http://www.tkk7.com/warrenwu/comments/commentRss/71668.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/71668.html刚开始接触JDBC是二、三q前从一位朋友那里听来的词,当时q不是程序员QL觉是个很
隑֭的技术,׃直没太在意,在刚毕业的招聘会上有一个公司招聘时问我朋友关于JDBC?br />知识Q可朋友和我都没学过啊,l果׃用说了。其实也要感谢这位仁兄,因ؓ懒惰所以没
看,q好他提醒了我。呵呵~~~

今天打扫卫生Q整理自q垃圾书时又无意间d了JDBC的书Q就H然惌vq事Q而后是
一恶心,感觉那位仁兄实在是垃圾。超U垃圾!竟然能问q么垃圾的问题。骂他一,
发泄一下,感觉舒服多了?/p>

其实要学JDBCQ只要明白JDBC所L作用那么׃会很难?/p>

JDBC的作用:

1 与数据库建立q接
2 发送 SQL 语句
3 处理l果

看了它的作用,你还觉得学它隑֐?

Warren.Wu 2006-09-25 10:44 发表评论
]]>
Ant的参数输入问?/title><link>http://www.tkk7.com/warrenwu/archive/2006/09/22/71360.html</link><dc:creator>Warren.Wu</dc:creator><author>Warren.Wu</author><pubDate>Fri, 22 Sep 2006 09:37:00 GMT</pubDate><guid>http://www.tkk7.com/warrenwu/archive/2006/09/22/71360.html</guid><wfw:comment>http://www.tkk7.com/warrenwu/comments/71360.html</wfw:comment><comments>http://www.tkk7.com/warrenwu/archive/2006/09/22/71360.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/warrenwu/comments/commentRss/71360.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/warrenwu/services/trackbacks/71360.html</trackback:ping><description><![CDATA[我的x: <br />-------------------------------------- <br />在命令行执行 ant <br />执行对HelloWorld.java的编??javac <br />-------------------------------------- <br />然后重点来啦!!! <br />--------------------------------------<br />ant执行处于{待.直到我在命o行输入OK? <br />才开始执?即java <br />-------------------------------------- <br /><br />前几天有了这个想?头天上午在google上搜了一上午也没搜到,于是׃着?写了个时间gq的凑合着应付差事,实是太懒了,我自己都q么认ؓ,于是在论坛上发了个帖子{h帮忙解决,呵呵~~~一?高h"提醒俺看ant api, 哦~~~那就依照高h指点?反正看看也没什么坏?l果q真是可?用的是input标签.<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff"><?</span><span style="COLOR: #ff00ff">xml version="1.0"</span><span style="COLOR: #0000ff">?></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">project </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="firstbuild"</span><span style="COLOR: #ff0000"> default</span><span style="COLOR: #0000ff">="run"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">target </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="compile"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">javac </span><span style="COLOR: #ff0000">srcdir</span><span style="COLOR: #0000ff">="."</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">echo</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">===compilation complete!===</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">echo</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">target</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    <br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">target </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="checkok"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">input </span><span style="COLOR: #ff0000">message</span><span style="COLOR: #0000ff">="All data is going to be deleted from DB continue (y/n)?"</span><span style="COLOR: #ff0000"> validargs</span><span style="COLOR: #0000ff">="y,n"</span><span style="COLOR: #ff0000"> addproperty</span><span style="COLOR: #0000ff">="do.delete"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">condition </span><span style="COLOR: #ff0000">property</span><span style="COLOR: #0000ff">="do.abort"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">equals </span><span style="COLOR: #ff0000">arg1</span><span style="COLOR: #0000ff">="n"</span><span style="COLOR: #ff0000"> arg2</span><span style="COLOR: #0000ff">="${do.delete}"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">condition</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">fail </span><span style="COLOR: #ff0000">if</span><span style="COLOR: #0000ff">="do.abort"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">Build aborted by user.</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">fail</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">target</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    <br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">target </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="check_time"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">sleep </span><span style="COLOR: #ff0000">seconds</span><span style="COLOR: #0000ff">="30"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">target</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    <br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #008000"><!--</span><span style="COLOR: #008000">depends="compile"</span><span style="COLOR: #008000">--></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">target </span><span style="COLOR: #ff0000">name</span><span style="COLOR: #0000ff">="run"</span><span style="COLOR: #ff0000"> depends</span><span style="COLOR: #0000ff">="checkok"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">java </span><span style="COLOR: #ff0000">classname</span><span style="COLOR: #0000ff">="Test"</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">arg </span><span style="COLOR: #ff0000">value</span><span style="COLOR: #0000ff">="a"</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">classpath</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />                </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">pathelement </span><span style="COLOR: #ff0000">path</span><span style="COLOR: #0000ff">="."</span><span style="COLOR: #0000ff">/></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />            </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">classpath</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">java</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        <br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />        </span><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">echo</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000">===<img src="http://www.tkk7.com/images/dot.gif" /><img src="http://www.tkk7.com/images/dot.gif" />===</span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">echo</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" />    </span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">target</span><span style="COLOR: #0000ff">></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">project</span><span style="COLOR: #0000ff">></span></div><br />应用:<br /><br />虽然l我们多ơ的验证,毕竟是个目,q是心为妙,打完包后再验证一ơ又何妨?现在我们都是集体开发项?当然tomcat服务器也不可能是你的本机,那就牉|C传了.q个东西可以用来寚w目打包后q行人工验证, 当确认无误后,输入参数y可以将我们的项目上传了.以前我们的项目都是ant后用scp来传,如果打版本的Z?其他人就只能q着?q下我不在也无所谓了.哈哈~~~现在的项目只要一个ant命o一切的一切全部搞?<img src ="http://www.tkk7.com/warrenwu/aggbug/71360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/warrenwu/" target="_blank">Warren.Wu</a> 2006-09-22 17:37 <a href="http://www.tkk7.com/warrenwu/archive/2006/09/22/71360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOM~程详解http://www.tkk7.com/warrenwu/archive/2006/09/22/71328.htmlWarren.WuWarren.WuFri, 22 Sep 2006 07:14:00 GMThttp://www.tkk7.com/warrenwu/archive/2006/09/22/71328.htmlhttp://www.tkk7.com/warrenwu/comments/71328.htmlhttp://www.tkk7.com/warrenwu/archive/2006/09/22/71328.html#Feedback0http://www.tkk7.com/warrenwu/comments/commentRss/71328.htmlhttp://www.tkk7.com/warrenwu/services/trackbacks/71328.html
以Sun公司的JAXPZ来看看其中和DOM相关的包:

DOM包结?br />
   org.w3c.comQ定义了DOM的接口。这是w3c所指制定的DOM规范Q因为DOM规范是与语言无关的,因而其中只是定义了接口Q而没有实CQ何地cRQ何具体的DOM实现需要有其它的类库给出?br />
   javax.xml.parserQ定义了DocumentBuilderFactorycDocumentBuildercR编E时用DocumentBuilderFactory来生成一个具体的和具体的cd相联pȝDocumentBuildercȝ实例Q然后再p个DocumentBuilder对象来生成一个Document实例。Document对象中就包含了DOM的树模型l构Q是DOM模型的根。同SAXParserFactory一P具体的DocumentBuilder对象的徏立,取决于一个环境变量javax.xml.parsers.DocumentBuilderFactory的|同样的,也可以直接把cd传递给DocumentBuilderFactory来徏立一个DocumentBuilder?br />
   com.sun.xml.treeQSun的Java XML的DOM实现Q他Ҏ准的DOM提供了一些扩展,其中大部分的东西q不是DOM标准。包括了XMLDocumentQElementNode, XMLDocumentBuilder和TreeWalker{类。XMLDocumentcdCDOM的Document界面Q它同样也提供了静态的工厂Ҏ来徏立一个Document对象。ElementNodecM表了在一个DOM树中的每一个节点元素,q且它经常被l承Q来实现一些自定的功能?而XMLDocumentBuilder实际上是一个DocumentHandlercd的类Q也是_它接受一个SAX解析器传递过来的事gQ然后根据这些事件来在内存中建立一个DOM模型?br />
DOM处理q程

   DOM的处理过E相对SAX而言要简单些Q先用DocumentBuilderFactory的静态方法newInstance()建立一个DocumentBuilderFactory的实例,然后用它的newDocumentBuilder()Ҏ建立一个DocumentBuilder。然后可以用DocumentBuilder的parser()Ҏ来解析一个XML文档q徏立DOM模型。在JAXP中还提供了更为方便的功能扩展Q就是用XMLDocument。你可以Z个SAX解析器注册一个事件处理器XMLDocumentBuilderQ在解析q后Q可以调用XMLDocumentBuilder的getDocument()Ҏ可以把一个外在地XML文档转换成一个内存中的DOM树了Qƈ生成一个Document(XMLDocument)对象Q后面的工作Q就是调用XMLDocument对象和ElementNode对象的各个方法来对DOM树进行操作了。最后,q可以调用XMLDocument的wirte()Ҏ来把DOM树输ZؓXML文g。因为在标准的DOM模型中ƈ没有提供与write()相类似的ҎQ所以要处理输出的话Q用XMLDocument会更方便些?br />
实例DOM

   下面我们可以来看看例子了?br />
首先当然是import语句Q?br />

import javax.xml.parsers.DocumentBuilderFactory; 

import javax.xml.parsers.FactoryConfigurationError; 

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.DocumentBuilder;
   Z能给你更多的印象Q我详细内出了所有的c,实际上你只需要一句就可以了:

import javax.xml.parsers.*;

你还需要的是W3C对DOM和DOM例外的定义:

import org.w3c.dom.Document; import org.w3c.dom.DOMException;
q有一些其他的用来q行例外和I/O处理的类Q?br />

import org.xml.sax.SAXException; 

import org.xml.sax.SAXParseException;

import java.io.File;

import java.io.IOException;



因ؓ要输出XML文档Q所以还要引入XMLDocumentQ?br />


import com.sun.xml.tree.XmlDocument; 

public class DomEcho{



在程序逻辑中,因ؓ要处理DOM模型Q所以当焉先应该申明一个Document对象Q?br />


static Document document;

public static void main (String argv [])

{

if (argv.length != 1) {

            System.err.println ("Usage: java DomEcho filename";

            System.exit (1);

        }
   用DocumentBuilderFactorycȝ静态方法newInstance()来创Z个工厂实例,之所以称为工厂,是由于再q儿应用C设计模式QDesign PatternQ中的工厂模式,实际上在Javacd中设计模式的范例随处可见Q如果能够对设计模式有一些了解,׃很容易ؓJava庞杂的类库理Z条条脉络分明的经Uѝ?
        DocumentBuilderFactory factory =

           DocumentBuilderFactory.newInstance();

        try {

           DocumentBuilder builder = factory.newDocumentBuilder();

           document = builder.parse( new File(argv[0]) );
   前面说过QDOM标准模型中ƈ没有定义输出的接口,因而如果需要进行文档输出的话,需要用到JAXP的扩展,使用到XmlDocument。这儿有一个较为简便的ҎQ就是用强制cd转换Q把一个Documentc{换成XmlDocumentQ然后,可以用XmlDocument的write()Ҏ?
           XmlDocument xdoc = (XmlDocument) document;

           xdoc.write (System.out);
   在后面的都是例外的处理了Q在DOM中虽然有定义了DOMExceptionQ但是DOMException只是用在遍历和操作DOM树时引发的例外。在解析文档和初始化解析器时所引发的例外,q是借助于SAX中的例外处理ҎQ以使程序上h一致性:

        } catch (SAXParseException spe) {

             // 处理解析q程中生成的例外

           System.out.println ("\n** Parsing error"

              + ", line " + spe.getLineNumber ()

              + ", uri " + spe.getSystemId ());

           System.out.println("   " + spe.getMessage() );

           Exception  x = spe;

           if (spe.getException() != null)

               x = spe.getException();

           x.printStackTrace();

        } catch (SAXException sxe) {

           // 处理一般的E序例外或者解析器初始化时引发的例?br />
           Exception  x = sxe;

           if (sxe.getException() != null)

               x = sxe.getException();

           x.printStackTrace();

        } catch (IOException ioe) {

           // IO例外

           ioe.printStackTrace();

        }

    }

   q而对DOM讲的比较略,但是基本的程序结构我们已l可以从中看出来了?/span>


Warren.Wu 2006-09-22 15:14 发表评论
]]>
字符串分?/title><link>http://www.tkk7.com/warrenwu/archive/2006/09/22/71258.html</link><dc:creator>Warren.Wu</dc:creator><author>Warren.Wu</author><pubDate>Fri, 22 Sep 2006 02:26:00 GMT</pubDate><guid>http://www.tkk7.com/warrenwu/archive/2006/09/22/71258.html</guid><wfw:comment>http://www.tkk7.com/warrenwu/comments/71258.html</wfw:comment><comments>http://www.tkk7.com/warrenwu/archive/2006/09/22/71258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/warrenwu/comments/commentRss/71258.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/warrenwu/services/trackbacks/71258.html</trackback:ping><description><![CDATA[ <font size="1">1.String.split()<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img id="Codehighlighter1_31_181_Open_Image" onclick="this.style.display='none'; Codehighlighter1_31_181_Open_Text.style.display='none'; Codehighlighter1_31_181_Closed_Image.style.display='inline'; Codehighlighter1_31_181_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_31_181_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_31_181_Closed_Text.style.display='none'; Codehighlighter1_31_181_Open_Image.style.display='inline'; Codehighlighter1_31_181_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> testSplit() </span><span id="Codehighlighter1_31_181_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_31_181_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />  String str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.a.3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />  String[] strArray </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> str.split(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\\.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img id="Codehighlighter1_138_178_Open_Image" onclick="this.style.display='none'; Codehighlighter1_138_178_Open_Text.style.display='none'; Codehighlighter1_138_178_Closed_Image.style.display='inline'; Codehighlighter1_138_178_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_138_178_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_138_178_Closed_Text.style.display='none'; Codehighlighter1_138_178_Open_Image.style.display='inline'; Codehighlighter1_138_178_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />  </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">strArray.length; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_138_178_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_138_178_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />   System.out.println(strArray[i]);<br /></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />  }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> }</span></span></div></font> <br /> <font size="1">2.StringTokenizer<br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">1</span><img id="Codehighlighter1_35_233_Open_Image" onclick="this.style.display='none'; Codehighlighter1_35_233_Open_Text.style.display='none'; Codehighlighter1_35_233_Closed_Image.style.display='inline'; Codehighlighter1_35_233_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_35_233_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_35_233_Closed_Text.style.display='none'; Codehighlighter1_35_233_Open_Image.style.display='inline'; Codehighlighter1_35_233_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> testTokenizer() </span><span id="Codehighlighter1_35_233_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_35_233_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">2</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />                String str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.a.3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">3</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        StringTokenizer strTokenizer </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> StringTokenizer(str, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">4</span><span style="COLOR: #000000"><img id="Codehighlighter1_177_230_Open_Image" onclick="this.style.display='none'; Codehighlighter1_177_230_Open_Text.style.display='none'; Codehighlighter1_177_230_Closed_Image.style.display='inline'; Codehighlighter1_177_230_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_177_230_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_177_230_Closed_Text.style.display='none'; Codehighlighter1_177_230_Open_Image.style.display='inline'; Codehighlighter1_177_230_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(strTokenizer.hasMoreTokens()) </span><span id="Codehighlighter1_177_230_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_177_230_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">5</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(strTokenizer.nextToken());<br /></span><span style="COLOR: #008080">6</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">7</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />    }</span></span></div></font> <br />OK.<br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> test;<br /></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> java.util.StringTokenizer;<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /><br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img id="Codehighlighter1_79_600_Open_Image" onclick="this.style.display='none'; Codehighlighter1_79_600_Open_Text.style.display='none'; Codehighlighter1_79_600_Closed_Image.style.display='inline'; Codehighlighter1_79_600_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_79_600_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_79_600_Closed_Text.style.display='none'; Codehighlighter1_79_600_Open_Image.style.display='inline'; Codehighlighter1_79_600_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> TestStringSplit </span><span id="Codehighlighter1_79_600_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_79_600_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> String str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">1.a.3</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img id="Codehighlighter1_145_271_Open_Image" onclick="this.style.display='none'; Codehighlighter1_145_271_Open_Text.style.display='none'; Codehighlighter1_145_271_Closed_Image.style.display='inline'; Codehighlighter1_145_271_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_145_271_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_145_271_Closed_Text.style.display='none'; Codehighlighter1_145_271_Open_Image.style.display='inline'; Codehighlighter1_145_271_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> testSplit() </span><span id="Codehighlighter1_145_271_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_145_271_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        String[] strArray </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> str.split(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\\.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img id="Codehighlighter1_228_268_Open_Image" onclick="this.style.display='none'; Codehighlighter1_228_268_Open_Text.style.display='none'; Codehighlighter1_228_268_Closed_Image.style.display='inline'; Codehighlighter1_228_268_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_228_268_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_228_268_Closed_Text.style.display='none'; Codehighlighter1_228_268_Open_Image.style.display='inline'; Codehighlighter1_228_268_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">strArray.length; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_228_268_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_228_268_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(strArray[i]);<br /></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img id="Codehighlighter1_311_471_Open_Image" onclick="this.style.display='none'; Codehighlighter1_311_471_Open_Text.style.display='none'; Codehighlighter1_311_471_Closed_Image.style.display='inline'; Codehighlighter1_311_471_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_311_471_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_311_471_Closed_Text.style.display='none'; Codehighlighter1_311_471_Open_Image.style.display='inline'; Codehighlighter1_311_471_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> testTokenizer() </span><span id="Codehighlighter1_311_471_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_311_471_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        StringTokenizer strTokenizer </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> StringTokenizer(str, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img id="Codehighlighter1_415_468_Open_Image" onclick="this.style.display='none'; Codehighlighter1_415_468_Open_Text.style.display='none'; Codehighlighter1_415_468_Closed_Image.style.display='inline'; Codehighlighter1_415_468_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_415_468_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_415_468_Closed_Text.style.display='none'; Codehighlighter1_415_468_Open_Image.style.display='inline'; Codehighlighter1_415_468_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(strTokenizer.hasMoreTokens()) </span><span id="Codehighlighter1_415_468_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_415_468_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />            System.out.println(strTokenizer.nextToken());<br /></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />    <br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img id="Codehighlighter1_515_598_Open_Image" onclick="this.style.display='none'; Codehighlighter1_515_598_Open_Text.style.display='none'; Codehighlighter1_515_598_Closed_Image.style.display='inline'; Codehighlighter1_515_598_Closed_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_515_598_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_515_598_Closed_Text.style.display='none'; Codehighlighter1_515_598_Open_Image.style.display='inline'; Codehighlighter1_515_598_Open_Text.style.display='inline';" src="http://www.tkk7.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="Codehighlighter1_515_598_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.tkk7.com/images/dot.gif" /></span><span id="Codehighlighter1_515_598_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        testSplit();<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        System.out.println(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">====================</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/InBlock.gif" align="top" />        testTokenizer();<br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.tkk7.com/images/OutliningIndicators/None.gif" align="top" /></span></div><img src ="http://www.tkk7.com/warrenwu/aggbug/71258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/warrenwu/" target="_blank">Warren.Wu</a> 2006-09-22 10:26 <a href="http://www.tkk7.com/warrenwu/archive/2006/09/22/71258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://7a37.com" target="_blank">ŷ޾þþþƷ</a>| <a href="http://m0808dy.com" target="_blank">˳ɵӰ߲</a>| <a href="http://15831883389.com" target="_blank">Ʒվ</a>| <a href="http://whyandroid.com" target="_blank">AVպAVþþ</a>| <a href="http://bjjs365.com" target="_blank">Ƭ߹ۿѹۿӰ</a>| <a href="http://43sihu.com" target="_blank">ѳ̱߸߳Ƶ</a>| <a href="http://tpwelert.com" target="_blank">ŮͬavƬ߹ۿ</a>| <a href="http://bnb989.com" target="_blank">ҵС身߿Ѹ</a>| <a href="http://simupiao.com" target="_blank">պŷvƬ</a>| <a href="http://shandonghj.com" target="_blank">AVרӰ</a>| <a href="http://srvz83.com" target="_blank">ƷƵѲ</a>| <a href="http://52ku6.com" target="_blank">WWWѹۿƵ</a>| <a href="http://zjszbwzl.com" target="_blank">þþŷղAV</a>| <a href="http://shcxsoft.com" target="_blank">h˻ƽ</a>| <a href="http://wwby66636.com" target="_blank">þù׾Ʒǿ</a>| <a href="http://5tww.com" target="_blank">ŷ</a>| <a href="http://www-993789.com" target="_blank">avҹƷһ</a>| <a href="http://yy975.com" target="_blank">츾ҹƵ </a>| <a href="http://bxd888.com" target="_blank">Ů߲վ</a>| <a href="http://dqcjlb.com" target="_blank">Ůרhd</a>| <a href="http://yijiazhiwei.com" target="_blank">Ļۺ</a>| <a href="http://shmtweld.com" target="_blank">ĻƵ߿</a>| <a href="http://583s.com" target="_blank">պƷרվ</a>| <a href="http://zjtuhui.com" target="_blank">ޱ뾫ƷAAAƬ</a>| <a href="http://shelaoban.com" target="_blank">޾ɫ߲</a>| <a href="http://www96pg.com" target="_blank">ѹۿһëƬ</a>| <a href="http://fanqi5.com" target="_blank">0588ӰֻѿƬ</a>| <a href="http://zibochanglong.com" target="_blank">xxxxxܴƬƵ</a>| <a href="http://j8j8x.com" target="_blank">ŷͽȺ</a>| <a href="http://fenglufzjx.com" target="_blank">һձþþ</a>| <a href="http://19520888.com" target="_blank">޹ƷþþþþԻ</a>| <a href="http://k4h3.com" target="_blank">91Դվ</a>| <a href="http://jiajuco.com" target="_blank">¾þþþa</a>| <a href="http://goldwellib.com" target="_blank">Ůžžվֻ</a>| <a href="http://wwwee2.com" target="_blank">Ľղ2020</a>| <a href="http://cpsc-test.com" target="_blank">aƵƵ</a>| <a href="http://zhaofeiz.com" target="_blank">ۺϹһ</a>| <a href="http://bjsunic.com" target="_blank">Ƭ߹ۿ</a>| <a href="http://kencery.com" target="_blank">ŷ</a>| <a href="http://liulaogendawutai.com" target="_blank">99ƷƵ߹ۿר </a>| <a href="http://www44xixi.com" target="_blank">ƵƷ2</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>