<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[21 工作室 - j2ee]]></title>
  <subtitle type="html"><![CDATA[本站承接网页制作、软件项目开发、代写代码等业务，我们将和您真诚合作，以最低的价格提供最优越的服务。13488846575   联系人:潘劲]]></subtitle>
  <id>http://www.is21.cn/</id> 
  <link rel="alternate" type="text/html" href="http://www.is21.cn/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.is21.cn/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2010-07-16T17:36:55+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[tomcat 6.0虚拟目录配置，彻底解决tomcat404错误]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2010-07-16T17:36:55+08:00</updated>
	  <published>2010-07-16T17:36:55+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;以前用tomcat都是在IDE里面用的，像MyEclipse，NetBeans等，虚拟目录的配置也仅仅是在网上看过，感觉还是很简单的，但是今天自己配置的时候，搞了半天才彻底搞明白~~~<br/>&nbsp;&nbsp;&nbsp;&nbsp;配置方法：<br/>如我想实现：<a href="http://localhost:8080/myjsp" target="_blank">http://localhost:8080/myjsp</a><br/>一、修改%TOMCAT_HOME%\conf\server.xml中xml&nbsp;代码，增加红色部分<br/><br/>&nbsp;&nbsp;&nbsp;&lt;Host&nbsp;name=&#34;localhost&#34;&nbsp;&nbsp;appBase=&#34;webapps&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unpackWARs=&#34;true&#34;&nbsp;autoDeploy=&#34;true&#34;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlValidation=&#34;false&#34;&nbsp;xmlNamespaceAware=&#34;false&#34;&gt;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<strong>&lt;Context&nbsp;path=&#34;/myjsp&#34;&nbsp;docBase=&#34;F:\MyJsp&#34;&gt;&lt;/Context&gt;&nbsp;&nbsp;</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&lt;/Host&gt;&nbsp;&nbsp;&nbsp;<br/>注意红色部分，里面的path为myjsp，docBase为f:/MyJsp，这两个名字不能一样，也就是说不能为<br/><strong>&lt;Context&nbsp;path=&#34;/myjsp&#34;&nbsp;docBase=&#34;F:\myjsp&#34;&gt;&lt;/Context&gt;&nbsp;&nbsp;</strong><br/>如果是这样的话，就会出错，我的就是这个问题，搞了半天才搞明白~~~<br/>二、修改%TOMCAT_HOME%\conf\web.xml中xml&nbsp;代码为：<br/>&lt;init-param&gt;&nbsp;<br/>&lt;param-name&gt;listings&lt;/param-name&gt;&nbsp;<br/>&lt;param-value&gt;<strong>true</strong>&lt;/param-value&gt;&nbsp;<br/>&lt;/init-param&gt;&nbsp;<br/>三、&nbsp;复制Tomcat6.0\webapps\ROOT&nbsp;目录下WEB-INF&nbsp;文件到F:\MyJsp中]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=731" /> 
	  <id>http://www.is21.cn/default.asp?id=731</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[java 最近新出的重要框架]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2009-01-31T10:11:42+08:00</updated>
	  <published>2009-01-31T10:11:42+08:00</published>
		  <summary type="html"><![CDATA[aptana<br/>jquery<br/>pwr<br/>ext<br/><br/><br/><br/>基本都是与javascript&nbsp;有关]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=568" /> 
	  <id>http://www.is21.cn/default.asp?id=568</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Myeclipse 7 插件安装 ]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-12-15T16:37:06+08:00</updated>
	  <published>2008-12-15T16:37:06+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;Myeclipse&nbsp;7&nbsp;的插件安装方式与原先的方式完全不一样了，下面以JBossTools-2.1.2.GA插件安装为例进行说明。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;假设<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Myeclipse&nbsp;7的安装路径为：C:\Genuitec<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JBossTools-2.1.2.GA插件的路径为：&nbsp;&nbsp;C:\eclipse-plugins\plugins\JBossTools-2.1.2.GA-ALL-win32<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;将下面这段代码编译后执行：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1package&nbsp;test;<br/>&nbsp;2<br/>&nbsp;3import&nbsp;java.io.File;<br/>&nbsp;4import&nbsp;java.util.ArrayList;<br/>&nbsp;5import&nbsp;java.util.List;<br/>&nbsp;6<br/>&nbsp;7<br/>&nbsp;8/**&nbsp;*//**<br/>&nbsp;9&nbsp;*&nbsp;Descript:&nbsp;<br/>10&nbsp;*<br/>11&nbsp;*<br/>12&nbsp;*/<br/>13<br/>14public&nbsp;class&nbsp;Cr&#101;atePluginsConfig&nbsp;{<br/>15&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;path;<br/>16&nbsp;&nbsp;&nbsp;&nbsp;<br/>17&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Cr&#101;atePluginsConfig(String&nbsp;path){<br/>18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.path=path;<br/>19&nbsp;&nbsp;&nbsp;&nbsp;}<br/>20&nbsp;&nbsp;&nbsp;&nbsp;<br/>21&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;print(){<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list=getFileList(path);<br/>23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(list==null){<br/>24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;length=list.size();<br/>28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;length;i++){<br/>29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result=&#34;&#34;;<br/>30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;thePath=getFormatPath(getString(list.get(i)));<br/>31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file=new&nbsp;File(thePath);<br/>32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(file.isDirectory()){<br/>33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fileName=file.getName();<br/>34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fileName.indexOf(&#34;_&#34;)&lt;0){<br/>35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;filenames=fileName.split(&#34;_&#34;);<br/>38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename1=filenames[0];<br/>39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename2=filenames[1];<br/>40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result=filename1+&#34;,&#34;+filename2+&#34;,file:/&#34;+path+&#34;\\&#34;+fileName+&#34;\\,4,false&#34;;<br/>41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(result);<br/>42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;if(file.isFile()){<br/>43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;fileName=file.getName();<br/>44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(fileName.indexOf(&#34;_&#34;)&lt;0){<br/>45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;<br/>46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;filenames=fileName.split(&#34;_&#34;);<br/>48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename1=filenames[0];<br/>49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename2=filenames[1].substring(0,&nbsp;filenames[1].lastIndexOf(&#34;.&#34;));<br/>50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result=filename1+&#34;,&#34;+filename2+&#34;,file:/&#34;+path+&#34;\\&#34;+fileName+&#34;,4,false&#34;;<br/>51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(result);<br/>52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>55&nbsp;&nbsp;&nbsp;&nbsp;}<br/>56&nbsp;&nbsp;&nbsp;&nbsp;<br/>57&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;List&nbsp;getFileList(String&nbsp;path){<br/>58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path=getFormatPath(path);<br/>59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path=path+&#34;/&#34;;<br/>60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;filePath=new&nbsp;File(path);<br/>61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!filePath.isDirectory()){<br/>62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;<br/>63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;filelist=filePath.list();<br/>65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;filelistFilter=new&nbsp;ArrayList();<br/>66<br/>67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;i&lt;filelist.length;i++){<br/>68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;tempfilename=getFormatPath(path+filelist[i]);<br/>69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filelistFilter.add(tempfilename);<br/>70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;filelistFilter;<br/>72&nbsp;&nbsp;&nbsp;&nbsp;}<br/>73&nbsp;&nbsp;&nbsp;&nbsp;<br/>74&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getString(Object&nbsp;object){<br/>75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(object==null){<br/>76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&#34;&#34;;<br/>77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;String.valueOf(object);<br/>79&nbsp;&nbsp;&nbsp;&nbsp;}<br/>80&nbsp;&nbsp;&nbsp;&nbsp;<br/>81&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;getFormatPath(String&nbsp;path)&nbsp;{<br/>82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path&nbsp;=&nbsp;path.replaceAll(&#34;\\\\&#34;,&nbsp;&#34;/&#34;);<br/>83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path&nbsp;=&nbsp;path.replaceAll(&#34;//&#34;,&nbsp;&#34;/&#34;);<br/>84&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;path;<br/>85&nbsp;&nbsp;&nbsp;&nbsp;}<br/>86&nbsp;&nbsp;&nbsp;&nbsp;<br/>87&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args){<br/>88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;Cr&#101;atePluginsConfig(&#34;C:\\eclipse-plugins\\plugins\JBossTools-2.1.2.GA-ALL-win32&#34;).print();<br/>89&nbsp;&nbsp;&nbsp;&nbsp;}<br/>90}&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;执行完之后，将控制台中打印出的执行结果，直接复制到下面这个文件中：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;C:\Genuitec\MyEclipse&nbsp;7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;然后用&nbsp;-clean&nbsp;命令重新启动Myeclipse即了完成插件的安装。<br/><br/>--------------------------------------------------------------------------------------<br/>安装tomcatPluginV321时，直接在D:\Program&nbsp;Files\Genuitec\MyEclipse&nbsp;7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info<br/>最后写上<br/>com.sysdeo.eclipse.tomcat,3.2.1,file:/D:\Program&nbsp;Files\Genuitec\Common\plugins\com.sysdeo.eclipse.tomcat_3.2.1\,4,false<br/>即可<br/><br/><br/>&#39;引用自<a href="http://www.blogjava.net/snoics/archive/2008/12/15/246399.html" target="_blank">http://www.blogjava.net/snoics/archive/2008/12/15/246399.html</a><br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=552" /> 
	  <id>http://www.is21.cn/default.asp?id=552</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[tomcat应用程序打不开]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-12-12T23:37:48+08:00</updated>
	  <published>2008-12-12T23:37:48+08:00</published>
		  <summary type="html"><![CDATA[打开conf\server.xml&nbsp;&nbsp;&nbsp;文件&nbsp;&nbsp;最后几行，添加<br/><br/>&lt;Context&nbsp;path=&#34;/pan&#34;&nbsp;reloadable=&#34;true&#34;&nbsp;docBase=&#34;E:\workspace\pan\WebRoot&#34;&nbsp;workDir=&#34;E:\workspace\pan\work&#34;&nbsp;/&gt;<br/>&lt;Context&nbsp;path=&#34;/upload&#34;&nbsp;reloadable=&#34;true&#34;&nbsp;docBase=&#34;E:\workspace\upload\WebRoot&#34;&nbsp;workDir=&#34;E:\workspace\upload\work&#34;&nbsp;/&gt;<br/>&lt;Context&nbsp;path=&#34;/panjin&#34;&nbsp;reloadable=&#34;true&#34;&nbsp;docBase=&#34;E:\workspace\panjin\WebRoot&#34;&nbsp;workDir=&#34;E:\workspace\panjin\work&#34;&nbsp;/&gt;]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=551" /> 
	  <id>http://www.is21.cn/default.asp?id=551</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JAVA操作Excel的方法]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-12-05T20:21:52+08:00</updated>
	  <published>2008-12-05T20:21:52+08:00</published>
		  <summary type="html"><![CDATA[JAVA操作Excel的方法&nbsp;<br/>此操作使用POI类库，请到以下URL下载：<br/><br/><a href="http://apache.justdn.org/jakarta/poi/release/bin/poi-bin-2.5.1-final-20040804.zip" target="_blank">http://apache.justdn.org/jakarta/poi/release/bin/poi-bin-2.5.1-final-20040804.zip</a><br/><br/>以下是源码：<br/><br/>package&nbsp;com.test;<br/><br/><br/>&nbsp;<br/><br/>import&nbsp;java.io.FileOutputStream;<br/><br/>import&nbsp;o&#114;g.apache.poi.hssf.usermodel.HSSFCell;<br/><br/>import&nbsp;o&#114;g.apache.poi.hssf.usermodel.HSSFRow;<br/><br/>import&nbsp;o&#114;g.apache.poi.hssf.usermodel.HSSFSheet;<br/><br/>import&nbsp;o&#114;g.apache.poi.hssf.usermodel.HSSFWorkbook;<br/><br/>import&nbsp;java.io.FileInputStream;<br/><br/>import&nbsp;javax.swing.JOptionPane;<br/><br/>/**<br/><br/>&nbsp;*&nbsp;一个Excel文件的层次：Excel文件-&gt;工作表-&gt;行-&gt;单元格<br/><br/>&nbsp;*&nbsp;对应到POI中，为：workbook-&gt;sheet-&gt;row-&gt;cell<br/><br/>&nbsp;*/<br/><br/>public&nbsp;class&nbsp;POITest<br/><br/>{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;String&nbsp;outputFile&nbsp;=&nbsp;&#34;e:\\test.xls&#34;;<br/><br/>public&nbsp;static&nbsp;String&nbsp;fileToBeRead&nbsp;=&nbsp;&#34;e:\\test.xls&#34;;<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;cr&#101;ateExcel()<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;创建新的Excel&nbsp;工作簿<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFWorkbook&nbsp;workbook&nbsp;=&nbsp;new&nbsp;HSSFWorkbook();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;在Excel工作簿中建一工作表，其名为缺省值<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;如要新建一名为&#34;效益指标&#34;的工作表，其语句为：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;HSSFSheet&nbsp;sheet&nbsp;=&nbsp;workbook.cr&#101;ateSheet(&#34;效益指标&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFSheet&nbsp;sheet&nbsp;=&nbsp;workbook.cr&#101;ateSheet(&#34;效益指标&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;在索引0的位置创建行（最顶端的行）<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFRow&nbsp;row&nbsp;=&nbsp;sheet.cr&#101;ateRow((short)0);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//在索引0的位置创建单元格（左上端）<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFCell&nbsp;cell&nbsp;=&nbsp;row.cr&#101;ateCell((short)0);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;定义单元格为字符串类型<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setCellType(HSSFCell.CELL_TYPE_STRING);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;在单元格中输入一些内容<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setCellValue(&#34;POI&nbsp;Excel&nbsp;Model&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//下一行<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row=sheet.cr&#101;ateRow(&nbsp;(short)1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell=row.cr&#101;ateCell(&nbsp;(short)0);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置单元格内容<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cell.setCellValue(&nbsp;&#34;Powered&nbsp;by&nbsp;夏天&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;新建一输出文件流<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fOut&nbsp;=&nbsp;new&nbsp;FileOutputStream(outputFile);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;把相应的Excel&nbsp;工作簿存盘<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workbook.write(fOut);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fOut.flush();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;操作结束，关闭文件<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fOut.close();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;文件生成...&#34;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;已运行&nbsp;xlCr&#101;ate()&nbsp;:&nbsp;&#34;&nbsp;+&nbsp;e);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;readExcel()<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;创建对Excel工作簿文件的引用<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFWorkbook&nbsp;workbook&nbsp;=&nbsp;new&nbsp;HSSFWorkbook(new&nbsp;FileInputStream(fileToBeRead));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//System.out<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;.println(&#34;===SheetsNum===&#34;&nbsp;+&nbsp;workbook.getNumberOfSheets());//获取sheet数<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;numSheets&nbsp;=&nbsp;0;&nbsp;numSheets&nbsp;&lt;&nbsp;workbook.getNumberOfSheets();&nbsp;numSheets++)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(null&nbsp;!=&nbsp;workbook.getSheetAt(numSheets))<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFSheet&nbsp;aSheet&nbsp;=&nbsp;workbook.getSheetAt(numSheets);&nbsp;//获得一个sheet<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;rowNumOfSheet&nbsp;=&nbsp;0;&nbsp;rowNumOfSheet&nbsp;&lt;=&nbsp;aSheet.getLastRowNum();&nbsp;rowNumOfSheet++)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(null&nbsp;!=&nbsp;aSheet.getRow(rowNumOfSheet))<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFRow&nbsp;aRow&nbsp;=&nbsp;aSheet.getRow(rowNumOfSheet);<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(short&nbsp;cellNumOfRow&nbsp;=&nbsp;0;&nbsp;cellNumOfRow&nbsp;&lt;=&nbsp;aRow.getLastCellNum();&nbsp;cellNumOfRow++)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(null&nbsp;!=&nbsp;aRow.getCell(cellNumOfRow))<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HSSFCell&nbsp;aCell&nbsp;=&nbsp;aRow.getCell(cellNumOfRow);<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(aCell.getStringCellValue());<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(&#34;ReadExcelError&#34;&nbsp;+&nbsp;e);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/>&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POITest&nbsp;poi&nbsp;=&nbsp;new&nbsp;POITest();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poi.cr&#101;ateExcel();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JOptionPane.showMessageDialog(null,&#34;文件写入成功&#34;,&#34;POI&#34;,1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;poi.readExcel();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JOptionPane.showMessageDialog(null,&#34;文件读取成功&#34;,&#34;POI&#34;,1);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>}<br/><br/><br/>&nbsp;<br/><br/>可使用Eclipse或是Jbuilder打开测试<br/><br/><br/><br/>&#39;引用自<a href="http://blog.sina.com.cn/s/blog_53a99cf3010009yl.html" target="_blank">http://blog.sina.com.cn/s/blog_53a99cf3010009yl.html</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=547" /> 
	  <id>http://www.is21.cn/default.asp?id=547</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[61条面向对象设计的经验原则]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-11-02T21:14:56+08:00</updated>
	  <published>2008-11-02T21:14:56+08:00</published>
		  <summary type="html"><![CDATA[61条面向对象设计的经验原则<br/>　你不必严格遵守这些原则，违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃，若违背了其中的一条，那么警铃就会响起。<br/>-----Arthur&nbsp;J.Riel&nbsp;<br/>　　(1)所有数据都应该隐藏在所在的类的内部。p13&nbsp;<br/>　　(2)类的使用者必须依赖类的共有接口，但类不能依赖它的使用者。p15&nbsp;<br/>　　(3)尽量减少类的协议中的消息。p16&nbsp;<br/>　　(4)实现所有类都理解的最基本公有接口[例如，拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。&nbsp;p16&nbsp;<br/>　　(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。p17&nbsp;<br/>　　如果类的两个方法有一段公共代码，那么就可以创建一个防止这些公共代码的私有函数。&nbsp;<br/>　　(6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。p17&nbsp;<br/>　　(7)类之间应该零耦合，或者只有导出耦合关系。也即，一个类要么同另一个类毫无关系，要么只使用另一个类的公有接口中的操作。&nbsp;p18&nbsp;<br/>　　(8)类应该只表示一个关键抽象。p19&nbsp;<br/>　　包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响，则将对包中的所有类产生影响，而对其他的包不造成任何影响&nbsp;.&nbsp;<br/>　　(9)把相关的数据和行为集中放置。p19&nbsp;<br/>　　设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。&nbsp;<br/>　　(10)把不相关的信息放在另一个类中(也即：互不沟通的行为)。p19&nbsp;<br/>　　朝着稳定的方向进行依赖.&nbsp;<br/>　　(11)确保你为之建模的抽象概念是类，而不只是对象扮演的角色。p23&nbsp;<br/>　　(12)在水平方向上尽可能统一地分布系统功能，也即：按照设计，顶层类应当统一地共享工作。p30&nbsp;<br/>　　(13)在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。p30&nbsp;<br/>　　规划一个接口而不是实现一个接口。&nbsp;<br/>　　(14)对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。p30&nbsp;<br/>　　(15)对包含太多互不沟通的行为的类多加小心。p31&nbsp;<br/>　　这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。&nbsp;<br/>　　(16)在由同用户界面交互的面向对象模型构成的应用程序中，模型不应该依赖于界面，界面则应当依赖于模型。p33&nbsp;<br/>　　(17)尽可能地按照现实世界建模(我们常常为了遵守系统功能分布原则、避免全能类原则以及集中放置相关数据和行为的原则而违背这条原则)&nbsp;。p36&nbsp;<br/>　　(18)从你的设计中去除不需要的类。p38&nbsp;<br/>　　一般来说，我们会把这个类降级成一个属性。&nbsp;<br/>　　(19)去除系统外的类。p39&nbsp;<br/>　　系统外的类的特点是，抽象地看它们只往系统领域发送消息但并不接受系统领域内其他类发出的消息。&nbsp;<br/>　　(20)不要把操作变成类。质疑任何名字是动词或者派生自动词的类，特别是只有一个有意义行为的类。考虑一下那个有意义的行为是否应当迁移到已经存在或者尚未发现的某个类中。p40&nbsp;<br/>　　(21)我们在创建应用程序的分析模型时常常引入代理类。在设计阶段，我们常会发现很多代理没有用的，应当去除。p43&nbsp;<br/>　　(22)尽量减少类的协作者的数量。p52&nbsp;<br/>　　一个类用到的其他类的数目应当尽量少。&nbsp;<br/>　　(23)尽量减少类和协作者之间传递的消息的数量。p55&nbsp;<br/>　　(24)尽量减少类和协作者之间的协作量，也即：减少类和协作者之间传递的不同消息的数量。p55&nbsp;<br/>　　(25)尽量减少类的扇出，也即：减少类定义的消息数和发送的消息数的乘积。p55&nbsp;<br/>　　(26)如果类包含另一个类的对象，那么包含类应当给被包含的对象发送消息。也即：包含关系总是意味着使用关系。p55&nbsp;<br/>　　(27)类中定义的大多数方法都应当在大多数时间里使用大多数数据成员。p57&nbsp;<br/>　　(28)类包含的对象数目不应当超过开发者短期记忆的容量。这个数目常常是6。p57&nbsp;<br/>　　当类包含多于6个数据成员时，可以把逻辑相关的数据成员划分为一组，然后用一个新的包含类去包含这一组成员。&nbsp;<br/>　　(29)让系统功能在窄而深的继承体系中垂直分布。p58&nbsp;<br/>　　(30)在实现语义约束时，最好根据类定义来实现。这常常会导致类泛滥成灾，在这种情况下，约束应当在类的行为中实现，通常是在构造函数中实现，但不是必须如此。p60&nbsp;<br/>　　(31)在类的构造函数中实现语义约束时，把约束测试放在构造函数领域所允许的尽量深的包含层次中。p60&nbsp;<br/>　　(32)约束所依赖的语义信息如果经常改变，那么最好放在一个集中式的第3方对象中。p60&nbsp;<br/>　　(33)约束所依赖的语义信息如果很少改变，那么最好分布在约束所涉及的各个类中。p60&nbsp;<br/>　　(34)类必须知道它包含什么，但是不能知道谁包含它。p61&nbsp;<br/>　　(35)共享字面范围(也就是被同一个类所包含)的对象相互之间不应当有使用关系。p61&nbsp;<br/>　　(36)继承只应被用来为特化层次结构建模。p74&nbsp;<br/>　　(37)派生类必须知道基类，基类不应该知道关于它们的派生类的任何信息。p74&nbsp;<br/>　　(38)基类中的所有数据都应当是私有的，不要使用保护数据。p75&nbsp;<br/>　　类的设计者永远都不应该把类的使用者不需要的东西放在公有接口中。&nbsp;<br/>　　(39)在理论上，继承层次体系应当深一点，越深越好。p77&nbsp;<br/>　　(40)在实践中，继承层次体系的深度不应当超出一个普通人的短期记忆能力。一个广为接受的深度值是6。p77&nbsp;<br/>　　(41)所有的抽象类都应当是基类。p81&nbsp;<br/>　　(42)所有的基类都应当是抽象类。p82&nbsp;<br/>　　(43)把数据、行为和/或接口的共性尽可能地放到继承层次体系的高端。p85&nbsp;<br/>　　(44)如果两个或更多个类共享公共数据(但没有公共行为)，那么应当把公共数据放在一个类中，每个共享这个数据的类都包含这个类。&nbsp;p88&nbsp;<br/>　　(45)如果两个或更多个类有共同的数据和行为(就是方法)，那么这些类的每一个都应当从一个表示了这些数据和方法的公共基类继承。&nbsp;p89&nbsp;<br/>　　(46)如果两个或更多个类共享公共接口(指的是消息，而不是方法)，那么只有他们需要被多态地使用时，他们才应当从一个公共基类继承。&nbsp;p89&nbsp;<br/>　　(47)对对象类型的显示的分情况分析一般是错误的。在大多数这样的情况下，设计者应当使用多态。p89&nbsp;<br/>　　(48)对属性值的显示的分情况分析常常是错误的。类应当解耦合成一个继承层次结构，每个属性值都被变换成一个派生类。&nbsp;p96&nbsp;<br/>　　(49)不要通过继承关系来为类的动态语义建模。试图用静态语义关系来为动态语义建模会导致在运行时切换类型。p97&nbsp;<br/>　　(50)不要把类的对象变成派生类。对任何只有一个实例的派生类都要多加小心。p99&nbsp;<br/>　　(51)如果你觉得需要在运行时刻创建新的类，那么退后一步以认清你要创建的是对象。现在，把这些对象概括成一个类。&nbsp;p103&nbsp;<br/>　　(52)在派生类中用空方法(也就是什么也不做的方法)来覆写基类中的方法应当是非法的。p103&nbsp;<br/>　　(53)不要把可选包含同对继承的需要相混淆。把可选包含建模成继承会带来泛滥成灾的类。p108&nbsp;<br/>　　(54)在创建继承层次时，试着创建可复用的框架，而不是可复用的组件。p112&nbsp;<br/>　　(55)如果你在设计中使用了多重继承，先假设你犯了错误。如果没犯错误，你需要设法证明。p120&nbsp;<br/>　　(56)只要在面向对象设计中用到了继承，问自己两个问题：(1)派生类是否是它继承的那个东西的一个特殊类型？(2)基类是不是派生类的一部分？p121&nbsp;<br/>　　(57)如果你在一个面向对象设计中发现了多重继承关系，确保没有哪个基类实际上是另一个基类的派生类。p122&nbsp;<br/>　　(58)在面向对象设计中如果你需要在包含关系和关联关系间作出选择，请选择包含关系。p135&nbsp;<br/>　　(59)不要把全局数据或全局函数用于类的对象的薄记工作。应当使用类变量或类方法。p140&nbsp;<br/>　　(60)面向对象设计者不应当让物理设计准则来破坏他们的逻辑设计。但是，在对逻辑设计作出决策的过程中我们经常用到物理设计准则。&nbsp;p149&nbsp;<br/>　　(61)不要绕开公共接口去修改对象的状态。p164&nbsp;<br/><br/><br/>&#39;引用自<a href="http://www.52515.net:8088/file.asp?fileid=3938372672713D323030372D322D3926626F61726469643D3132" target="_blank">http://www.52515.net:8088/file.asp?fileid=3938372672713D323030372D322D3926626F61726469643D3132</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=449" /> 
	  <id>http://www.is21.cn/default.asp?id=449</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[乱码问题之终极解决]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-11-02T21:12:55+08:00</updated>
	  <published>2008-11-02T21:12:55+08:00</published>
		  <summary type="html"><![CDATA[很多人&nbsp;特别是新手&nbsp;做j2ee&nbsp;项目中<br/>总能受困于&nbsp;这样或那样的编码问题<br/><br/>这里讨论下&nbsp;新手学习，高手指教&nbsp;一起研究下<br/>(以&nbsp;tomcat&nbsp;mysql&nbsp;做例子&nbsp;我推荐所有的编码采用utf-8)<br/><br/>1&nbsp;工程<br/>工程内所有的&nbsp;.java&nbsp;.jsp&nbsp;.xml&nbsp;.txt&nbsp;都有默认的编码&nbsp;默认的是系统环境的编码<br/>我们中文系统通常是GBK&nbsp;推荐都采用utf-8&nbsp;<br/>utf-8&nbsp;的时候&nbsp;你编译&nbsp;生成doc&nbsp;可能会遇到乱码（特别是采用ant&nbsp;的时候,生成doc你几乎100%会遇到）<br/><br/>解决方法&nbsp;以ant&nbsp;为例子<br/>编译&nbsp;注意&nbsp;encoding&nbsp;参数<br/>&lt;target&nbsp;name=&#34;build&#34;&nbsp;&gt;<br/>&lt;mkdir&nbsp;dir=&#34;${build.dir}&#34;&nbsp;/&gt;<br/>&lt;javac&nbsp;encoding=&#34;utf-8&#34;&nbsp;destdir=&#34;${build.dir}&#34;&nbsp;target=&#34;1.3&#34;&nbsp;debug=&#34;true&#34;&nbsp;deprecation=&#34;false&#34;&nbsp;optimize=&#34;false&#34;&nbsp;failonerror=&#34;true&#34;&gt;<br/>&lt;src&nbsp;path=&#34;${src.dir}&#34;&nbsp;/&gt;<br/>&lt;classpath&nbsp;refid=&#34;master-classpath&#34;&nbsp;/&gt;<br/>&lt;/javac&gt;<br/>&lt;/target&gt;<br/><br/>生成doc&nbsp;注意&nbsp;encoding&nbsp;和&nbsp;charset<br/>&lt;target&nbsp;name=&#34;doc&#34;&gt;<br/>&lt;mkdir&nbsp;dir=&#34;doc&#34;&nbsp;/&gt;<br/>&lt;javadoc&nbsp;charset=&#34;utf-8&#34;&nbsp;encoding=&#34;utf-8&#34;&nbsp;packagenames=&#34;${packages}&#34;&nbsp;sourcepath=&#34;src&#34;&nbsp;destdir=&#34;doc&#34;&nbsp;author=&#34;true&#34;&nbsp;version=&#34;true&#34;&nbsp;use=&#34;true&#34;&nbsp;splitindex=&#34;true&#34;&nbsp;&gt;<br/>&lt;classpath&nbsp;refid=&#34;master-classpath&#34;&nbsp;/&gt;<br/>&lt;/javadoc&gt;<br/>&lt;/target&gt;<br/><br/>这里&nbsp;的encoding&nbsp;就是指的你&nbsp;java&nbsp;文件的编码格式&nbsp;javac&nbsp;和javadoc&nbsp;都有这个参数<br/>charset&nbsp;指的是&nbsp;生成&nbsp;doc&nbsp;后的编码方式&nbsp;javadoc&nbsp;的参数<br/><br/>2&nbsp;数据库<br/>mysql&nbsp;的编码最复杂&nbsp;从4以后&nbsp;mysql&nbsp;号称支持多编码&nbsp;它更灵活了&nbsp;我们也更麻烦了<br/>mysql&nbsp;有4个级别的编码&nbsp;<br/>系统级<br/>库级<br/>表级<br/>sql语句级<br/>请保持采用统一的编码&nbsp;推荐utf-8<br/>其它数据库要简单的多&nbsp;一般都是一种编码<br/><br/>3&nbsp;web&nbsp;server&nbsp;<br/>tomcat&nbsp;为例<br/>tomcat&nbsp;server.xml&nbsp;中一个参数<br/>&lt;Connectorport=&#34;8080&#34;&nbsp;maxHttpHeaderSize=&#34;8192&#34;<br/>maxThreads=&#34;150&#34;&nbsp;minSpareThreads=&#34;25&#34;&nbsp;maxSpareThreads=&#34;75&#34;<br/>enableLookups=&#34;false&#34;&nbsp;redirectPort=&#34;8443&#34;&nbsp;acceptCount=&#34;100&#34;<br/>connectionTimeout=&#34;20000&#34;&nbsp;disableUploadTimeout=&#34;true&#34;&nbsp;URIncoding=&#34;utf-8&#34;/&gt;<br/>经测试&nbsp;这个URIncoding&nbsp;参数主要是&nbsp;get&nbsp;方法中采用编码<br/><br/>4&nbsp;jsp&nbsp;显示层<br/>第1条中说明了&nbsp;jsp&nbsp;文件本身的格式<br/>很多朋友采用eclipse&nbsp;+myeclipse&nbsp;生成jsp<br/>它自动生成一个头&lt;%@&nbsp;page&nbsp;language=&#34;java&#34;&nbsp;import=&#34;java.util.*&#34;&nbsp;pageEncoding=&#34;UTF-8&#34;%&gt;<br/>不要误解&nbsp;这句话不能保证你在ie里看到的不是乱码<br/>pageEncoding它的意思是&nbsp;这个页面本身采用的是&nbsp;utf-8&nbsp;(似乎只在eclipse&nbsp;里有效果&nbsp;，我不确定)<br/>为了在ie&nbsp;里不乱码&nbsp;你还得加一句&nbsp;&lt;%@&nbsp;page&nbsp;contentType=&#34;text/html;&nbsp;charset=UTF-8&#34;%&gt;<br/>它不能在(myeclispe)自动生成&nbsp;推荐修改&nbsp;myeclipse的模板&nbsp;在下边的目录里<br/>MyEclipse\eclipse\plugins\com.genuitec.eclipse.wizards_4.0.1\Templates<br/>里边的jsp模版&nbsp;你加上&lt;%@&nbsp;page&nbsp;contentType=&#34;text/html;&nbsp;charset=${encoding}&#34;%&gt;<br/><br/>5&nbsp;filter<br/>自从tomcat&nbsp;4&nbsp;以后&nbsp;网上就流传了一个SetCharacterEncodingFilter&nbsp;过滤器&nbsp;搜一下有很多<br/>很好用&nbsp;web.xml&nbsp;中加入<br/>&lt;filter&gt;<br/>　　&nbsp;&lt;filter-name&gt;Set&nbsp;Character&nbsp;Encoding&lt;/filter-name&gt;<br/>　　&nbsp;&lt;filter-class&gt;filters.SetCharacterEncodingFilter&lt;/filter-class&gt;<br/>　　&nbsp;&lt;init-param&gt;<br/>　　&nbsp;&lt;param-name&gt;encoding&lt;/param-name&gt;<br/>　　&nbsp;&lt;param-value&gt;utf-8&lt;/param-value&gt;<br/>　　&nbsp;&lt;/init-param&gt;<br/>&lt;/filter&gt;<br/>　　&nbsp;&lt;filter-mapping&gt;<br/>　　&nbsp;&lt;filter-name&gt;Set&nbsp;Character&nbsp;Encoding&lt;/filter-name&gt;<br/>　　&nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br/>　　&nbsp;&lt;/filter-mapping&gt;<br/><br/>6&nbsp;资源文件<br/>首先保证&nbsp;文件本身是utf-8<br/>然后部署的时候用&nbsp;native2ascii&nbsp;转换&nbsp;<br/>这里给出&nbsp;ant&nbsp;里的例子<br/>&lt;native2ascii&nbsp;encoding=&#34;utf-8&#34;&nbsp;dest=&#34;${web.dir}/WEB-INF/classes&#34;&nbsp;src=&#34;${src.dir}&#34;&nbsp;includes=&#34;**/*.properties&#34;&nbsp;/&gt;<br/><br/><br/>&#39;引用自<a href="http://www.52515.net:8088/file.asp?fileid=313439302672713D323030372D342D313426626F61726469643D3132" target="_blank">http://www.52515.net:8088/file.asp?fileid=313439302672713D323030372D342D313426626F61726469643D3132</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=448" /> 
	  <id>http://www.is21.cn/default.asp?id=448</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[java的时间操作]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-11-02T20:56:34+08:00</updated>
	  <published>2008-11-02T20:56:34+08:00</published>
		  <summary type="html"><![CDATA[**<br/>日期类<br/>*&nbsp;@date&nbsp;2003-12-04<br/>*&nbsp;@version&nbsp;1.0<br/>*/<br/><br/>import&nbsp;java.util.*;<br/>import&nbsp;java.text.*;<br/>import&nbsp;java.util.Calendar;<br/><br/>public&nbsp;class&nbsp;VeDate&nbsp;{<br/>/**<br/>*&nbsp;获取现在时间<br/>*<br/>*&nbsp;@return&nbsp;返回时间类型&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;getNowDate()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(8);<br/>Date&nbsp;currentTime_2&nbsp;=&nbsp;formatter.parse(dateString,&nbsp;pos);<br/>return&nbsp;currentTime_2;<br/>}<br/><br/>/**<br/>*&nbsp;获取现在时间<br/>*<br/>*&nbsp;@return返回短时间格式&nbsp;yyyy-MM-dd<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;getNowDateShort()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(8);<br/>Date&nbsp;currentTime_2&nbsp;=&nbsp;formatter.parse(dateString,&nbsp;pos);<br/>return&nbsp;currentTime_2;<br/>}<br/><br/>/**<br/>*&nbsp;获取现在时间<br/>*<br/>*&nbsp;@return返回字符串格式&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getStringDate()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;获取现在时间<br/>*<br/>*&nbsp;@return&nbsp;返回短时间字符串格式yyyy-MM-dd<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getStringDateShort()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;获取时间&nbsp;小时:分;秒&nbsp;HH:mm:ss<br/>*<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getTimeShort()&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;HH:mm:ss&#34;);<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;将长时间格式字符串转换为时间&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br/>*<br/>*&nbsp;@param&nbsp;strDate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;strToDateLong(String&nbsp;strDate)&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(0);<br/>Date&nbsp;strtodate&nbsp;=&nbsp;formatter.parse(strDate,&nbsp;pos);<br/>return&nbsp;strtodate;<br/>}<br/><br/>/**<br/>*&nbsp;将长时间格式时间转换为字符串&nbsp;yyyy-MM-dd&nbsp;HH:mm:ss<br/>*<br/>*&nbsp;@param&nbsp;dateDate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;dateToStrLong(java.util.Date&nbsp;dateDate)&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(dateDate);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;将短时间格式时间转换为字符串&nbsp;yyyy-MM-dd<br/>*<br/>*&nbsp;@param&nbsp;dateDate<br/>*&nbsp;@param&nbsp;k<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;dateToStr(java.util.Date&nbsp;dateDate)&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(dateDate);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;将短时间格式字符串转换为时间&nbsp;yyyy-MM-dd<br/>*<br/>*&nbsp;@param&nbsp;strDate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;strToDate(String&nbsp;strDate)&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(0);<br/>Date&nbsp;strtodate&nbsp;=&nbsp;formatter.parse(strDate,&nbsp;pos);<br/>return&nbsp;strtodate;<br/>}<br/><br/>/**<br/>*&nbsp;得到现在时间<br/>*<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;getNow()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>return&nbsp;currentTime;<br/>}<br/><br/>/**<br/>*&nbsp;提取一个月中的最后一天<br/>*<br/>*&nbsp;@param&nbsp;day<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;Date&nbsp;getLastDate(long&nbsp;day)&nbsp;{<br/>Date&nbsp;date&nbsp;=&nbsp;new&nbsp;Date();<br/>long&nbsp;date_3_hm&nbsp;=&nbsp;date.getTime()&nbsp;-&nbsp;3600000&nbsp;*&nbsp;34&nbsp;*&nbsp;day;<br/>Date&nbsp;date_3_hm_date&nbsp;=&nbsp;new&nbsp;Date(date_3_hm);<br/>return&nbsp;date_3_hm_date;<br/>}<br/><br/>/**<br/>*&nbsp;得到现在时间<br/>*<br/>*&nbsp;@return&nbsp;字符串&nbsp;yyyyMMdd&nbsp;HHmmss<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getStringToday()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyyMMdd&nbsp;HHmmss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;得到现在小时<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getHour()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>String&nbsp;hour;<br/>hour&nbsp;=&nbsp;dateString.substring(11,&nbsp;13);<br/>return&nbsp;hour;<br/>}<br/><br/>/**<br/>*&nbsp;得到现在分钟<br/>*<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getTime()&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>String&nbsp;min;<br/>min&nbsp;=&nbsp;dateString.substring(14,&nbsp;16);<br/>return&nbsp;min;<br/>}<br/><br/>/**<br/>*&nbsp;根据用户传入的时间表示格式，返回当前时间的格式&nbsp;如果是yyyyMMdd，注意字母y不能大写。<br/>*<br/>*&nbsp;@param&nbsp;sformat<br/>*&nbsp;yyyyMMddhhmmss<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getUserDate(String&nbsp;sformat)&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(sformat);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>return&nbsp;dateString;<br/>}<br/><br/>/**<br/>*&nbsp;二个小时时间间的差值,必须保证二个时间都是&#34;HH:MM&#34;的格式，返回字符型的分钟<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getTwoHour(String&nbsp;st1,&nbsp;String&nbsp;st2)&nbsp;{<br/>String[]&nbsp;kk&nbsp;=&nbsp;null;<br/>String[]&nbsp;jj&nbsp;=&nbsp;null;<br/>kk&nbsp;=&nbsp;st1.split(&#34;:&#34;);<br/>jj&nbsp;=&nbsp;st2.split(&#34;:&#34;);<br/>if&nbsp;(Integer.parseInt(kk[0])&nbsp;&lt;&nbsp;Integer.parseInt(jj[0]))<br/>return&nbsp;&#34;0&#34;;<br/>else&nbsp;{<br/>double&nbsp;y&nbsp;=&nbsp;Double.parseDouble(kk[0])&nbsp;+&nbsp;Double.parseDouble(kk[1])&nbsp;/&nbsp;60;<br/>double&nbsp;u&nbsp;=&nbsp;Double.parseDouble(jj[0])&nbsp;+&nbsp;Double.parseDouble(jj[1])&nbsp;/&nbsp;60;<br/>if&nbsp;((y&nbsp;-&nbsp;u)&nbsp;&gt;&nbsp;0)<br/>return&nbsp;y&nbsp;-&nbsp;u&nbsp;+&nbsp;&#34;&#34;;<br/>else<br/>return&nbsp;&#34;0&#34;;<br/>}<br/>}<br/><br/>/**<br/>*&nbsp;得到二个日期间的间隔天数<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getTwoDay(String&nbsp;sj1,&nbsp;String&nbsp;sj2)&nbsp;{<br/>SimpleDateFormat&nbsp;myFormatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>long&nbsp;day&nbsp;=&nbsp;0;<br/>try&nbsp;{<br/>java.util.Date&nbsp;date&nbsp;=&nbsp;myFormatter.parse(sj1);<br/>java.util.Date&nbsp;mydate&nbsp;=&nbsp;myFormatter.parse(sj2);<br/>day&nbsp;=&nbsp;(date.getTime()&nbsp;-&nbsp;mydate.getTime())&nbsp;/&nbsp;(24&nbsp;*&nbsp;60&nbsp;*&nbsp;60&nbsp;*&nbsp;1000);<br/>}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br/>return&nbsp;&#34;&#34;;<br/>}<br/>return&nbsp;day&nbsp;+&nbsp;&#34;&#34;;<br/>}<br/><br/>/**<br/>*&nbsp;时间前推或后推分钟,其中JJ表示分钟.<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getPreTime(String&nbsp;sj1,&nbsp;String&nbsp;jj)&nbsp;{<br/>SimpleDateFormat&nbsp;format&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;HH:mm:ss&#34;);<br/>String&nbsp;mydate1&nbsp;=&nbsp;&#34;&#34;;<br/>try&nbsp;{<br/>Date&nbsp;date1&nbsp;=&nbsp;format.parse(sj1);<br/>long&nbsp;Time&nbsp;=&nbsp;(date1.getTime()&nbsp;/&nbsp;1000)&nbsp;+&nbsp;Integer.parseInt(jj)&nbsp;*&nbsp;60;<br/>date1.setTime(Time&nbsp;*&nbsp;1000);<br/>mydate1&nbsp;=&nbsp;format.format(date1);<br/>}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br/>}<br/>return&nbsp;mydate1;<br/>}<br/><br/>/**<br/>*&nbsp;得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getNextDay(String&nbsp;nowdate,&nbsp;String&nbsp;delay)&nbsp;{<br/>try{<br/>SimpleDateFormat&nbsp;format&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>String&nbsp;mdate&nbsp;=&nbsp;&#34;&#34;;<br/>Date&nbsp;d&nbsp;=&nbsp;strToDate(nowdate);<br/>long&nbsp;myTime&nbsp;=&nbsp;(d.getTime()&nbsp;/&nbsp;1000)&nbsp;+&nbsp;Integer.parseInt(delay)&nbsp;*&nbsp;24&nbsp;*&nbsp;60&nbsp;*&nbsp;60;<br/>d.setTime(myTime&nbsp;*&nbsp;1000);<br/>mdate&nbsp;=&nbsp;format.format(d);<br/>return&nbsp;mdate;<br/>}catch(Exception&nbsp;e){<br/>return&nbsp;&#34;&#34;;<br/>}<br/>}<br/><br/>/**<br/>*&nbsp;判断是否润年<br/>*<br/>*&nbsp;@param&nbsp;ddate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;boolean&nbsp;isLeapYear(String&nbsp;ddate)&nbsp;{<br/><br/>/**<br/>*&nbsp;详细设计：&nbsp;1.被400整除是闰年，否则：&nbsp;2.不能被4整除则不是闰年&nbsp;3.能被4整除同时不能被100整除则是闰年<br/>*&nbsp;3.能被4整除同时能被100整除则不是闰年<br/>*/<br/>Date&nbsp;d&nbsp;=&nbsp;strToDate(ddate);<br/>GregorianCalendar&nbsp;gc&nbsp;=&nbsp;(GregorianCalendar)&nbsp;Calendar.getInstance();<br/>gc.setTime(d);<br/>int&nbsp;year&nbsp;=&nbsp;gc.get(Calendar.YEAR);<br/>if&nbsp;((year&nbsp;%&nbsp;400)&nbsp;==&nbsp;0)<br/>return&nbsp;true;<br/>else&nbsp;if&nbsp;((year&nbsp;%&nbsp;4)&nbsp;==&nbsp;0)&nbsp;{<br/>if&nbsp;((year&nbsp;%&nbsp;100)&nbsp;==&nbsp;0)<br/>return&nbsp;false;<br/>else<br/>return&nbsp;true;<br/>}&nbsp;else<br/>return&nbsp;false;<br/>}<br/><br/>/**<br/>*&nbsp;返回美国时间格式&nbsp;26&nbsp;Apr&nbsp;2006<br/>*<br/>*&nbsp;@param&nbsp;str<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getEDate(String&nbsp;str)&nbsp;{<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(0);<br/>Date&nbsp;strtodate&nbsp;=&nbsp;formatter.parse(str,&nbsp;pos);<br/>String&nbsp;j&nbsp;=&nbsp;strtodate.toString();<br/>String[]&nbsp;k&nbsp;=&nbsp;j.split(&#34;&nbsp;&#34;);<br/>return&nbsp;k[2]&nbsp;+&nbsp;k[1].toUpperCase()&nbsp;+&nbsp;k[5].substring(2,&nbsp;4);<br/>}<br/><br/>/**<br/>*&nbsp;获取一个月的最后一天<br/>*<br/>*&nbsp;@param&nbsp;dat<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getEndDateOfMonth(String&nbsp;dat)&nbsp;{//&nbsp;yyyy-MM-dd<br/>String&nbsp;str&nbsp;=&nbsp;dat.substring(0,&nbsp;8);<br/>String&nbsp;month&nbsp;=&nbsp;dat.substring(5,&nbsp;7);<br/>int&nbsp;mon&nbsp;=&nbsp;Integer.parseInt(month);<br/>if&nbsp;(mon&nbsp;==&nbsp;1&nbsp;||&nbsp;mon&nbsp;==&nbsp;3&nbsp;||&nbsp;mon&nbsp;==&nbsp;5&nbsp;||&nbsp;mon&nbsp;==&nbsp;7&nbsp;||&nbsp;mon&nbsp;==&nbsp;8&nbsp;||&nbsp;mon&nbsp;==&nbsp;10&nbsp;||&nbsp;mon&nbsp;==&nbsp;12)&nbsp;{<br/>str&nbsp;+=&nbsp;&#34;31&#34;;<br/>}&nbsp;else&nbsp;if&nbsp;(mon&nbsp;==&nbsp;4&nbsp;||&nbsp;mon&nbsp;==&nbsp;6&nbsp;||&nbsp;mon&nbsp;==&nbsp;9&nbsp;||&nbsp;mon&nbsp;==&nbsp;11)&nbsp;{<br/>str&nbsp;+=&nbsp;&#34;30&#34;;<br/>}&nbsp;else&nbsp;{<br/>if&nbsp;(isLeapYear(dat))&nbsp;{<br/>str&nbsp;+=&nbsp;&#34;29&#34;;<br/>}&nbsp;else&nbsp;{<br/>str&nbsp;+=&nbsp;&#34;28&#34;;<br/>}<br/>}<br/>return&nbsp;str;<br/>}<br/><br/>/**<br/>*&nbsp;判断二个时间是否在同一个周<br/>*<br/>*&nbsp;@param&nbsp;date1<br/>*&nbsp;@param&nbsp;date2<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;boolean&nbsp;isSameWeekDates(Date&nbsp;date1,&nbsp;Date&nbsp;date2)&nbsp;{<br/>Calendar&nbsp;cal1&nbsp;=&nbsp;Calendar.getInstance();<br/>Calendar&nbsp;cal2&nbsp;=&nbsp;Calendar.getInstance();<br/>cal1.setTime(date1);<br/>cal2.setTime(date2);<br/>int&nbsp;subYear&nbsp;=&nbsp;cal1.get(Calendar.YEAR)&nbsp;-&nbsp;cal2.get(Calendar.YEAR);<br/>if&nbsp;(0&nbsp;==&nbsp;subYear)&nbsp;{<br/>if&nbsp;(cal1.get(Calendar.WEEK_OF_YEAR)&nbsp;==&nbsp;cal2.get(Calendar.WEEK_OF_YEAR))<br/>return&nbsp;true;<br/>}&nbsp;else&nbsp;if&nbsp;(1&nbsp;==&nbsp;subYear&nbsp;&amp;&amp;&nbsp;11&nbsp;==&nbsp;cal2.get(Calendar.MONTH))&nbsp;{<br/>//&nbsp;如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周<br/>if&nbsp;(cal1.get(Calendar.WEEK_OF_YEAR)&nbsp;==&nbsp;cal2.get(Calendar.WEEK_OF_YEAR))<br/>return&nbsp;true;<br/>}&nbsp;else&nbsp;if&nbsp;(-1&nbsp;==&nbsp;subYear&nbsp;&amp;&amp;&nbsp;11&nbsp;==&nbsp;cal1.get(Calendar.MONTH))&nbsp;{<br/>if&nbsp;(cal1.get(Calendar.WEEK_OF_YEAR)&nbsp;==&nbsp;cal2.get(Calendar.WEEK_OF_YEAR))<br/>return&nbsp;true;<br/>}<br/>return&nbsp;false;<br/>}<br/><br/>/**<br/>*&nbsp;产生周序列,即得到当前时间所在的年度是第几周<br/>*<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getSeqWeek()&nbsp;{<br/>Calendar&nbsp;c&nbsp;=&nbsp;Calendar.getInstance(Locale.CHINA);<br/>String&nbsp;week&nbsp;=&nbsp;Integer.toString(c.get(Calendar.WEEK_OF_YEAR));<br/>if&nbsp;(week.length()&nbsp;==&nbsp;1)<br/>week&nbsp;=&nbsp;&#34;0&#34;&nbsp;+&nbsp;week;<br/>String&nbsp;year&nbsp;=&nbsp;Integer.toString(c.get(Calendar.YEAR));<br/>return&nbsp;year&nbsp;+&nbsp;week;<br/>}<br/><br/>/**<br/>*&nbsp;获得一个日期所在的周的星期几的日期，如要找出2002年2月3日所在周的星期一是几号<br/>*<br/>*&nbsp;@param&nbsp;sdate<br/>*&nbsp;@param&nbsp;num<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getWeek(String&nbsp;sdate,&nbsp;String&nbsp;num)&nbsp;{<br/>//&nbsp;再转换为时间<br/>Date&nbsp;dd&nbsp;=&nbsp;VeDate.strToDate(sdate);<br/>Calendar&nbsp;c&nbsp;=&nbsp;Calendar.getInstance();<br/>c.setTime(dd);<br/>if&nbsp;(num.equals(&#34;1&#34;))&nbsp;//&nbsp;返回星期一所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.MONDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;2&#34;))&nbsp;//&nbsp;返回星期二所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.TUESDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;3&#34;))&nbsp;//&nbsp;返回星期三所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.WEDNESDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;4&#34;))&nbsp;//&nbsp;返回星期四所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.THURSDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;5&#34;))&nbsp;//&nbsp;返回星期五所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.FRIDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;6&#34;))&nbsp;//&nbsp;返回星期六所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.SATURDAY);<br/>else&nbsp;if&nbsp;(num.equals(&#34;0&#34;))&nbsp;//&nbsp;返回星期日所在的日期<br/>c.set(Calendar.DAY_OF_WEEK,&nbsp;Calendar.SUNDAY);<br/>return&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;).format(c.getTime());<br/>}<br/><br/>/**<br/>*&nbsp;根据一个日期，返回是星期几的字符串<br/>*<br/>*&nbsp;@param&nbsp;sdate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getWeek(String&nbsp;sdate)&nbsp;{<br/>//&nbsp;再转换为时间<br/>Date&nbsp;date&nbsp;=&nbsp;VeDate.strToDate(sdate);<br/>Calendar&nbsp;c&nbsp;=&nbsp;Calendar.getInstance();<br/>c.setTime(date);<br/>//&nbsp;int&nbsp;hour=c.get(Calendar.DAY_OF_WEEK);<br/>//&nbsp;hour中存的就是星期几了，其范围&nbsp;1~7<br/>//&nbsp;1=星期日&nbsp;7=星期六，其他类推<br/>return&nbsp;new&nbsp;SimpleDateFormat(&#34;EEEE&#34;).format(c.getTime());<br/>}<br/>public&nbsp;static&nbsp;String&nbsp;getWeekStr(String&nbsp;sdate){<br/>String&nbsp;str&nbsp;=&nbsp;&#34;&#34;;<br/>str&nbsp;=&nbsp;VeDate.getWeek(sdate);<br/>if(&#34;1&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期日&#34;;<br/>}else&nbsp;if(&#34;2&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期一&#34;;<br/>}else&nbsp;if(&#34;3&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期二&#34;;<br/>}else&nbsp;if(&#34;4&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期三&#34;;<br/>}else&nbsp;if(&#34;5&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期四&#34;;<br/>}else&nbsp;if(&#34;6&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期五&#34;;<br/>}else&nbsp;if(&#34;7&#34;.equals(str)){<br/>str&nbsp;=&nbsp;&#34;星期六&#34;;<br/>}<br/>return&nbsp;str;<br/>}<br/><br/>/**<br/>*&nbsp;两个时间之间的天数<br/>*<br/>*&nbsp;@param&nbsp;date1<br/>*&nbsp;@param&nbsp;date2<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;long&nbsp;getDays(String&nbsp;date1,&nbsp;String&nbsp;date2)&nbsp;{<br/>if&nbsp;(date1&nbsp;==&nbsp;null&nbsp;||&nbsp;date1.equals(&#34;&#34;))<br/>return&nbsp;0;<br/>if&nbsp;(date2&nbsp;==&nbsp;null&nbsp;||&nbsp;date2.equals(&#34;&#34;))<br/>return&nbsp;0;<br/>//&nbsp;转换为标准时间<br/>SimpleDateFormat&nbsp;myFormatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>java.util.Date&nbsp;date&nbsp;=&nbsp;null;<br/>java.util.Date&nbsp;mydate&nbsp;=&nbsp;null;<br/>try&nbsp;{<br/>date&nbsp;=&nbsp;myFormatter.parse(date1);<br/>mydate&nbsp;=&nbsp;myFormatter.parse(date2);<br/>}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br/>}<br/>long&nbsp;day&nbsp;=&nbsp;(date.getTime()&nbsp;-&nbsp;mydate.getTime())&nbsp;/&nbsp;(24&nbsp;*&nbsp;60&nbsp;*&nbsp;60&nbsp;*&nbsp;1000);<br/>return&nbsp;day;<br/>}<br/><br/>/**<br/>*&nbsp;形成如下的日历&nbsp;，&nbsp;根据传入的一个时间返回一个结构&nbsp;星期日&nbsp;星期一&nbsp;星期二&nbsp;星期三&nbsp;星期四&nbsp;星期五&nbsp;星期六&nbsp;下面是当月的各个时间<br/>*&nbsp;此函数返回该日历第一行星期日所在的日期<br/>*<br/>*&nbsp;@param&nbsp;sdate<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getNowMonth(String&nbsp;sdate)&nbsp;{<br/>//&nbsp;取该时间所在月的一号<br/>sdate&nbsp;=&nbsp;sdate.substring(0,&nbsp;8)&nbsp;+&nbsp;&#34;01&#34;;<br/><br/>//&nbsp;得到这个月的1号是星期几<br/>Date&nbsp;date&nbsp;=&nbsp;VeDate.strToDate(sdate);<br/>Calendar&nbsp;c&nbsp;=&nbsp;Calendar.getInstance();<br/>c.setTime(date);<br/>int&nbsp;u&nbsp;=&nbsp;c.get(Calendar.DAY_OF_WEEK);<br/>String&nbsp;newday&nbsp;=&nbsp;VeDate.getNextDay(sdate,&nbsp;(1&nbsp;-&nbsp;u)&nbsp;+&nbsp;&#34;&#34;);<br/>return&nbsp;newday;<br/>}<br/><br/>/**<br/>*&nbsp;取得数据库主键&nbsp;生成格式为yyyymmddhhmmss+k位随机数<br/>*<br/>*&nbsp;@param&nbsp;k<br/>*&nbsp;表示是取几位随机数，可以自己定<br/>*/<br/><br/>public&nbsp;static&nbsp;String&nbsp;getNo(int&nbsp;k)&nbsp;{<br/><br/>return&nbsp;getUserDate(&#34;yyyyMMddhhmmss&#34;)&nbsp;+&nbsp;getRandom(k);<br/>}<br/><br/>/**<br/>*&nbsp;返回一个随机数<br/>*<br/>*&nbsp;@param&nbsp;i<br/>*&nbsp;@return<br/>*/<br/>public&nbsp;static&nbsp;String&nbsp;getRandom(int&nbsp;i)&nbsp;{<br/>Random&nbsp;jjj&nbsp;=&nbsp;new&nbsp;Random();<br/>//&nbsp;int&nbsp;suiJiShu&nbsp;=&nbsp;jjj.nextInt(9);<br/>if&nbsp;(i&nbsp;==&nbsp;0)<br/>return&nbsp;&#34;&#34;;<br/>String&nbsp;jj&nbsp;=&nbsp;&#34;&#34;;<br/>for&nbsp;(int&nbsp;k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;i;&nbsp;k++)&nbsp;{<br/>jj&nbsp;=&nbsp;jj&nbsp;+&nbsp;jjj.nextInt(9);<br/>}<br/>return&nbsp;jj;<br/>}<br/><br/>/**<br/>*<br/>*&nbsp;@param&nbsp;args<br/>*/<br/>public&nbsp;static&nbsp;boolean&nbsp;RightDate(String&nbsp;date)&nbsp;{<br/><br/>SimpleDateFormat&nbsp;sdf&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;hh:mm:ss&#34;);<br/>;<br/>if&nbsp;(date&nbsp;==&nbsp;null)<br/>return&nbsp;false;<br/>if&nbsp;(date.length()&nbsp;&gt;&nbsp;10)&nbsp;{<br/>sdf&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&nbsp;hh:mm:ss&#34;);<br/>}&nbsp;else&nbsp;{<br/>sdf&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>}<br/>try&nbsp;{<br/>sdf.parse(date);<br/>}&nbsp;catch&nbsp;(ParseException&nbsp;pe)&nbsp;{<br/>return&nbsp;false;<br/>}<br/>return&nbsp;true;<br/>}<br/><br/>/***************************************************************************<br/>*&nbsp;//nd=1表示返回的值中包含年度&nbsp;//yf=1表示返回的值中包含月份&nbsp;//rq=1表示返回的值中包含日期&nbsp;//format表示返回的格式&nbsp;1<br/>*&nbsp;以年月日中文返回&nbsp;2&nbsp;以横线-返回&nbsp;//&nbsp;3&nbsp;以斜线/返回&nbsp;4&nbsp;以缩写不带其它符号形式返回&nbsp;//&nbsp;5&nbsp;以点号.返回<br/>**************************************************************************/<br/>public&nbsp;static&nbsp;String&nbsp;getStringDateMonth(String&nbsp;sdate,&nbsp;String&nbsp;nd,&nbsp;String&nbsp;yf,&nbsp;String&nbsp;rq,&nbsp;String&nbsp;format)&nbsp;{<br/>Date&nbsp;currentTime&nbsp;=&nbsp;new&nbsp;Date();<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(currentTime);<br/>String&nbsp;s_nd&nbsp;=&nbsp;dateString.substring(0,&nbsp;4);&nbsp;//&nbsp;年份<br/>String&nbsp;s_yf&nbsp;=&nbsp;dateString.substring(5,&nbsp;7);&nbsp;//&nbsp;月份<br/>String&nbsp;s_rq&nbsp;=&nbsp;dateString.substring(8,&nbsp;10);&nbsp;//&nbsp;日期<br/>String&nbsp;sreturn&nbsp;=&nbsp;&#34;&#34;;<br/>roc.util.MyChar&nbsp;mc&nbsp;=&nbsp;new&nbsp;roc.util.MyChar();<br/>if&nbsp;(sdate&nbsp;==&nbsp;null&nbsp;||&nbsp;sdate.equals(&#34;&#34;)&nbsp;||&nbsp;!mc.Isdate(sdate))&nbsp;{&nbsp;//&nbsp;处理空值情况<br/>if&nbsp;(nd.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;s_nd;<br/>//&nbsp;处理间隔符<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;年&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;2&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;-&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;3&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;/&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;5&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;.&#34;;<br/>}<br/>//&nbsp;处理月份<br/>if&nbsp;(yf.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;s_yf;<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;月&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;2&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;-&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;3&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;/&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;5&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;.&#34;;<br/>}<br/>//&nbsp;处理日期<br/>if&nbsp;(rq.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;s_rq;<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;日&#34;;<br/>}<br/>}&nbsp;else&nbsp;{<br/>//&nbsp;不是空值，也是一个合法的日期值，则先将其转换为标准的时间格式<br/>sdate&nbsp;=&nbsp;roc.util.RocDate.getOKDate(sdate);<br/>s_nd&nbsp;=&nbsp;sdate.substring(0,&nbsp;4);&nbsp;//&nbsp;年份<br/>s_yf&nbsp;=&nbsp;sdate.substring(5,&nbsp;7);&nbsp;//&nbsp;月份<br/>s_rq&nbsp;=&nbsp;sdate.substring(8,&nbsp;10);&nbsp;//&nbsp;日期<br/>if&nbsp;(nd.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;s_nd;<br/>//&nbsp;处理间隔符<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;年&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;2&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;-&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;3&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;/&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;5&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;.&#34;;<br/>}<br/>//&nbsp;处理月份<br/>if&nbsp;(yf.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;s_yf;<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;月&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;2&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;-&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;3&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;/&#34;;<br/>else&nbsp;if&nbsp;(format.equals(&#34;5&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;.&#34;;<br/>}<br/>//&nbsp;处理日期<br/>if&nbsp;(rq.equals(&#34;1&#34;))&nbsp;{<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;s_rq;<br/>if&nbsp;(format.equals(&#34;1&#34;))<br/>sreturn&nbsp;=&nbsp;sreturn&nbsp;+&nbsp;&#34;日&#34;;<br/>}<br/>}<br/>return&nbsp;sreturn;<br/>}<br/><br/>public&nbsp;static&nbsp;String&nbsp;getNextMonthDay(String&nbsp;sdate,&nbsp;int&nbsp;m)&nbsp;{<br/>sdate&nbsp;=&nbsp;getOKDate(sdate);<br/>int&nbsp;year&nbsp;=&nbsp;Integer.parseInt(sdate.substring(0,&nbsp;4));<br/>int&nbsp;month&nbsp;=&nbsp;Integer.parseInt(sdate.substring(5,&nbsp;7));<br/>month&nbsp;=&nbsp;month&nbsp;+&nbsp;m;<br/>if&nbsp;(month&nbsp;&lt;&nbsp;0)&nbsp;{<br/>month&nbsp;=&nbsp;month&nbsp;+&nbsp;12;<br/>year&nbsp;=&nbsp;year&nbsp;-&nbsp;1;<br/>}&nbsp;else&nbsp;if&nbsp;(month&nbsp;&gt;&nbsp;12)&nbsp;{<br/>month&nbsp;=&nbsp;month&nbsp;-&nbsp;12;<br/>year&nbsp;=&nbsp;year&nbsp;+&nbsp;1;<br/>}<br/>String&nbsp;smonth&nbsp;=&nbsp;&#34;&#34;;<br/>if&nbsp;(month&nbsp;&lt;&nbsp;10)<br/>smonth&nbsp;=&nbsp;&#34;0&#34;&nbsp;+&nbsp;month;<br/>else<br/>smonth&nbsp;=&nbsp;&#34;&#34;&nbsp;+&nbsp;month;<br/>return&nbsp;year&nbsp;+&nbsp;&#34;-&#34;&nbsp;+&nbsp;smonth&nbsp;+&nbsp;&#34;-10&#34;;<br/>}<br/><br/>public&nbsp;static&nbsp;String&nbsp;getOKDate(String&nbsp;sdate)&nbsp;{<br/>if&nbsp;(sdate&nbsp;==&nbsp;null&nbsp;||&nbsp;sdate.equals(&#34;&#34;))<br/>return&nbsp;getStringDateShort();<br/><br/>if&nbsp;(!VeStr.Isdate(sdate))&nbsp;{<br/>sdate&nbsp;=&nbsp;getStringDateShort();<br/>}<br/>//&nbsp;将“/”转换为“-”<br/>sdate&nbsp;=&nbsp;VeStr.Replace(sdate,&nbsp;&#34;/&#34;,&nbsp;&#34;-&#34;);<br/>//&nbsp;如果只有8位长度，则要进行转换<br/>if&nbsp;(sdate.length()&nbsp;==&nbsp;8)<br/>sdate&nbsp;=&nbsp;sdate.substring(0,&nbsp;4)&nbsp;+&nbsp;&#34;-&#34;&nbsp;+&nbsp;sdate.substring(4,&nbsp;6)&nbsp;+&nbsp;&#34;-&#34;&nbsp;+&nbsp;sdate.substring(6,&nbsp;8);<br/>SimpleDateFormat&nbsp;formatter&nbsp;=&nbsp;new&nbsp;SimpleDateFormat(&#34;yyyy-MM-dd&#34;);<br/>ParsePosition&nbsp;pos&nbsp;=&nbsp;new&nbsp;ParsePosition(0);<br/>Date&nbsp;strtodate&nbsp;=&nbsp;formatter.parse(sdate,&nbsp;pos);<br/>String&nbsp;dateString&nbsp;=&nbsp;formatter.format(strtodate);<br/>return&nbsp;dateString;<br/>}<br/><br/>public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;Exception&nbsp;{<br/>try&nbsp;{<br/>//System.out.print(Integer.valueOf(getTwoDay(&#34;2006-11-03&nbsp;12:22:10&#34;,&nbsp;&#34;2006-11-02&nbsp;11:22:09&#34;)));<br/>}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{<br/>throw&nbsp;new&nbsp;Exception();<br/>}<br/>//System.out.println(&#34;sss&#34;);<br/>}<br/>}<br/><br/><br/>&#39;引用自<a href="http://www.52515.net:8088/file.asp?fileid=323136362672713D323030382D332D3426626F61726469643D3132" target="_blank">http://www.52515.net:8088/file.asp?fileid=323136362672713D323030382D332D3426626F61726469643D3132</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=447" /> 
	  <id>http://www.is21.cn/default.asp?id=447</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[java大文件读取.]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-11-02T20:55:33+08:00</updated>
	  <published>2008-11-02T20:55:33+08:00</published>
		  <summary type="html"><![CDATA[我要从一个文本文件中提有用的数据&nbsp;<br/>文本文件200多MB&nbsp;<br/>是不是可以建一个缓存来把有用的数据一段一段的提出来，请问该怎么做？&nbsp;<br/>---------------------------------------------------------------&nbsp;<br/><br/>呵呵,200MB而已...&nbsp;<br/>JAVA中可以使用内存映射文件来操作大文件.&nbsp;<br/>最大可达2GB.&nbsp;<br/>下面是个简单的示例,更具体的自己看Java&nbsp;API&nbsp;DOCS或相关资料&nbsp;<br/>import&nbsp;java.io.*;&nbsp;<br/>import&nbsp;java.nio.*;&nbsp;<br/>import&nbsp;java.nio.channels.*;&nbsp;<br/>public&nbsp;class&nbsp;LargeMappedFiles&nbsp;{&nbsp;<br/>static&nbsp;int&nbsp;length&nbsp;=&nbsp;0x8FFFFFF;&nbsp;//&nbsp;128&nbsp;Mb&nbsp;<br/>public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;Exception&nbsp;{&nbsp;<br/>MappedByteBuffer&nbsp;out&nbsp;=&nbsp;<br/>new&nbsp;RandomAccessFile(&#34;test.dat&#34;,&nbsp;&#34;rw&#34;).getChannel()&nbsp;<br/>.map(FileChannel.MapMode.READ_WRITE,&nbsp;0,&nbsp;length);&nbsp;<br/>for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;length;&nbsp;i++)&nbsp;<br/>out.put((byte)&#39;x&#39;);&nbsp;<br/>System.out.println(&#34;Finished&nbsp;writing&#34;);&nbsp;<br/>for(int&nbsp;i&nbsp;=&nbsp;length/2;&nbsp;i&nbsp;&lt;&nbsp;length/2&nbsp;+&nbsp;6;&nbsp;i++)&nbsp;<br/>System.out.print((char)out.get(i));&nbsp;//read&nbsp;file&nbsp;<br/>}&nbsp;<br/>}&nbsp;///&nbsp;<br/><br/><br/>&#39;引用自<a href="http://www.52515.net:8088/file.asp?fileid=323137382672713D323030382D332D3426626F61726469643D3132" target="_blank">http://www.52515.net:8088/file.asp?fileid=323137382672713D323030382D332D3426626F61726469643D3132</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=446" /> 
	  <id>http://www.is21.cn/default.asp?id=446</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JAVA数据库操作类]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.is21.cn/</uri>
		 <email>lianxiangpanjin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.is21.cn/default.asp?cateID=3" label="j2ee" /> 
	  <updated>2008-11-02T20:54:35+08:00</updated>
	  <published>2008-11-02T20:54:35+08:00</published>
		  <summary type="html"><![CDATA[import&nbsp;java.sql.*;<br/>public&nbsp;class&nbsp;conn{<br/>String&nbsp;sDBDriver=&#34;sun.jdbc.odbc.JdbcOdbcDriver&#34;;<br/>String&nbsp;sConnStr=&#34;jdbc:odbc:student&#34;;<br/>Connection&nbsp;connect=null;<br/>ResultSet&nbsp;rs=null;<br/>//构造方法加载数据库驱动<br/>public&nbsp;conn(){<br/>try{<br/>Class.forName(sDBDriver);&nbsp;<br/>}catch(java.lang.ClassNotFoundException&nbsp;e){<br/>System.err.println(e.getMessage());<br/>}<br/>}<br/><br/>//执行查询语句<br/>public&nbsp;ResultSet&nbsp;executeQuery(String&nbsp;sql){&nbsp;<br/>try{<br/>connect=DriverManager.getConnection(sConnStr);&nbsp;<br/>Statement&nbsp;stmt=connect.cr&#101;ateStatement();&nbsp;<br/>rs=stmt.executeQuery(sql);&nbsp;<br/>}catch(SQLException&nbsp;ex){<br/>System.err.println(ex.getMessage());<br/><br/>}<br/>return&nbsp;rs;<br/>}<br/><br/>//执行插入,更新.修改语句<br/>public&nbsp;int&nbsp;executeUp&#100;ate(String&nbsp;sql){&nbsp;<br/>int&nbsp;rs=0;<br/>try{<br/>connect=DriverManager.getConnection(sConnStr);&nbsp;<br/>Statement&nbsp;stmt=connect.cr&#101;ateStatement();&nbsp;<br/>rs=stmt.executeUp&#100;ate(sql);&nbsp;<br/>}catch(SQLException&nbsp;ex){<br/>System.err.println(ex.getMessage());<br/><br/>}<br/>return&nbsp;rs;<br/>}<br/><br/>//执行汉化语句<br/>public&nbsp;String&nbsp;tostr(String&nbsp;str){<br/>if(str==null){<br/>str=&#34;&#34;;<br/>}else{<br/>try{<br/>str=(new&nbsp;String(str.getBytes(&#34;iso-8859-1&#34;),&#34;gb2312&#34;));<br/>}catch(Exception&nbsp;e){<br/>System.out.println(e.getMessage());<br/>}<br/>}<br/>return&nbsp;str;<br/>}<br/>}<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.is21.cn/default.asp?id=445" /> 
	  <id>http://www.is21.cn/default.asp?id=445</id> 
  </entry>	
		
</feed>