{"id":1623,"date":"2019-07-08T09:16:54","date_gmt":"2019-07-08T01:16:54","guid":{"rendered":"http:\/\/www.hefeiyu.com\/?p=1623"},"modified":"2019-07-08T09:16:54","modified_gmt":"2019-07-08T01:16:54","slug":"ecology%e7%b3%bb%e7%bb%9f%e5%ba%95%e5%b1%82%e5%8c%85%e5%bc%80%e5%8f%91%e6%8c%87%e5%8d%97","status":"publish","type":"post","link":"https:\/\/www.hefeiyu.com\/?p=1623","title":{"rendered":"Ecology\u7cfb\u7edf\u5e95\u5c42\u5305\u5f00\u53d1\u6307\u5357"},"content":{"rendered":"<p><strong>\u76ee \u5f55<\/strong><\/p>\n<p><a href=\"#post-1623-_Toc214887608\">1. \u5f15\u8a00 4<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887609\">1.1 \u6982\u8ff0 4<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887610\">1.2 \u5b9a\u4e49 4<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887611\">2. \u5e95\u5c42\u5305\u5e94\u7528\u53ca\u8303\u4f8b 4<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887612\">2.1 \u6700\u57fa\u672c\u7684\u7ee7\u627f\u7c7b 4<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887613\">2.2 \u600e\u6837\u8bb0\u5f55\u65e5\u5fd7 5<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887614\">2.3 \u600e\u6837\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u7684\u503c 8<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887615\">2.4 \u600e\u6837\u83b7\u53d6\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55 10<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887616\">2.5 \u600e\u6837\u8bbf\u95ee\u548c\u8fd0\u884c\u6570\u636e\u5e93\u811a\u672c 11<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887617\">2.6 \u5982\u4f55\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6 15<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887618\">2.7 \u5982\u4f55\u8bbf\u95ee\u5df2\u7ecf\u4e0a\u4f20\u7684\u6587\u4ef6 19<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887619\">2.8 \u5982\u4f55\u4f7f\u7528\u7f13\u5b58\u63d0\u9ad8\u7cfb\u7edf\u6548\u7387 20<\/a><\/p>\n<p><a href=\"#post-1623-_Toc214887620\">2.9 \u5176\u5b83\u5e95\u5c42\u7c7b\u57fa\u672c\u65b9\u6cd5 29<\/a><\/p>\n<h1><a id=\"post-1623-_Toc51835381\"><\/a><a id=\"post-1623-_Toc214887608\"><\/a>\u5f15\u8a00<\/h1>\n<h2><a id=\"post-1623-_Toc51835382\"><\/a><a id=\"post-1623-_Toc214887609\"><\/a>\u6982\u8ff0<\/h2>\n<p>\u672c\u6587\u6863\u4e3a\u6cdb\u5fae\u534f\u540c\u5546\u52a1\u7cfb\u7edf\uff08Ecology\uff09\u7a0b\u5e8f\u5458\u5f00\u53d1\u6307\u5bfc\u6587\u6863\uff0c\u8bb2\u8ff0\u4e86\u5f00\u53d1\u5e95\u5c42\u5de5\u5177\u5305\u7684\u5e94\u7528\uff0c\u5e38\u7528\u529f\u80fd\u7684\u5f00\u53d1\u3002<\/p>\n<h1><a id=\"post-1623-_Toc214887611\"><\/a>\u5e95\u5c42\u5305\u5e94\u7528\u53ca\u8303\u4f8b<\/h1>\n<p>\u672c\u7ae0\u5bf9ecology\u7cfb\u7edf\u7684\u5e95\u5c42\u5de5\u5177\u5305\u8fdb\u884c\u8bb2\u89e3\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u4ece\u8fd9\u91cc\u5b66\u5230\u600e\u6837\u5229\u7528\u5e95\u5c42\u7684\u5de5\u5177\u5305\u8fdb\u884c\u5f00\u53d1<\/p>\n<h2><a id=\"post-1623-_Toc214887612\"><\/a>\u6700\u57fa\u672c\u7684\u7ee7\u627f\u7c7b<\/h2>\n<p>\u7cfb\u7edf\u4e2d\u6bcf\u4e00\u4e2ajava bean \u90fd\u9700\u8981\u7ee7\u627f weaver.general.BaseBean \u7c7b \u3002\u8fd9\u4e2a\u7c7b\u5b9e\u73b0\u4e86\u8bb0\u5f55\u65e5\u5fd7\u548c\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u503c\u7684\u65b9\u6cd5\u3002\u7ee7\u627f\u8fd9\u4e24\u4e2a\u7c7b\u7684\u5176\u5b83\u7c7b\u53ef\u76f4\u63a5\u5e94\u7528\u8fd9\u4e9b\u65b9\u6cd5\u6765\u8bb0\u5f55\u65e5\u5fd7\uff0c\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u67d0\u4e00\u4e2a\u5c5e\u6027\u7684\u503c\u3002\u65b9\u6cd5\u7684\u5b9e\u73b0\u89c1\u540e\u9762\u7684\u4f8b\u5b50\u3002<\/p>\n<p>\u7ee7\u627f\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a<\/p>\n<p>java bean \u7684\u7ee7\u627f<\/p>\n<p>public class ResourceComInfo extends BaseBean {<\/p>\n<p>public void doSomething() { \/\/\u67d0\u4e00\u4e2a\u65b9\u6cd5<\/p>\n<p>\u65b9\u6cd5\u7684\u5904\u7406\u2026\u2026\u2026<\/p>\n<p>writeLog(s) ; \/\/ \u5199\u65e5\u5fd7<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<h2><a id=\"post-1623-_Toc214887613\"><\/a>\u600e\u6837\u8bb0\u5f55\u65e5\u5fd7<\/h2>\n<p>\u7ee7\u627f\u4e86weaver.general.BaseBean \uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 writeLog\u65b9\u6cd5\u8bb0\u5f55\u65e5\u5fd7\u4fe1\u606f\u3002\u6ce8\u610f\u8fd9\u91cc\u662f\u4f7f\u7528\uff0c\u800c\u4e0d\u662f\u8c03\u7528\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u65b9\u6cd5\u662f\u8fd9\u4e24\u4e2a\u88ab\u7ee7\u627f\u7c7b\u4e2d\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u6ce8\u610fwriteLog \u65b9\u6cd5\u7684\u4f7f\u7528\uff1a<\/p>\n<p>\/**<\/p>\n<p>* \u5c06\u67d0\u4e2a\u5bf9\u8c61\u5199\u5165Log\u6587\u4ef6<\/p>\n<p>* @param obj \u88ab\u5199\u5165\u7684\u5bf9\u8c61<\/p>\n<p>*\/<\/p>\n<p>public void writeLog(Object obj)<\/p>\n<p>\u6211\u4eec\u770b\u5230\uff0c\u53ef\u4ee5\u88ab\u8bb0\u5165\u65e5\u5fd7\u7684\u662f\u4efb\u610f\u4e00\u4e2ajava\u5bf9\u8c61\u3002\u8fd9\u4e9bjava\u5bf9\u8c61\u5c06\u88ab\u81ea\u52a8\u8f6c\u6362\u6210\u5b57\u7b26\u4e32\u5bf9\u8c61\uff08String\uff09\u8bb0\u5165\u5230\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u65e5\u5fd7\u6587\u4ef6\u5c06\u6bcf\u5929\u751f\u6210\u4e00\u4e2a\uff0c\u4ee5\u65e5\u5fd7\u6587\u4ef6\u540d\u79f0\u4e2d\u7684\u65e5\u671f\u6765\u533a\u522b\uff0c\u6bd4\u5982\uff1aecology_20030812.log\uff0c\u4ee3\u88682003\u5e748\u670812\u65e5\u7684\u65e5\u5fd7\u3002\u5f53\u5929\u7684\u65e5\u5fd7\u4e3aecology.log\u3002\u6bcf\u4e00\u6761\u65e5\u5fd7\u7684\u8bb0\u5f55\u683c\u5f0f\u4e3a \uff1a<\/p>\n<p>YYYY.MM.DD-HH:MM:SS \u8bb0\u5f55\u65e5\u5fd7\u7684\u7c7b\u540d \u2013 \u65e5\u5fd7\u4fe1\u606f<\/p>\n<p>\u6bd4\u5982\uff1a<\/p>\n<p>2003.03.11-06:52:05 weaver.datacenter.OutReportResult &#8211; sql is select ROUND(sum(F_sksr),5) from T_yyrb A , CRM_CustomerInfo where CRM_CustomerInfo.id=A.crmid and CRM_CustomerInfo.id in(5) and A.reportdate &gt;= &#8216;2004-01-10&#8217; and A.reportdate &lt;= &#8216;2004-03-10&#8217; and A.inputstatus &gt;= &#8216;0&#8217; and A.inputstatus&lt;&gt;&#8217;9&#8242; and A.modtype=&#8217;0&#8242;<\/p>\n<p>\u65e5\u5fd7\u7684\u8bb0\u5f55\u6709\u4e24\u79cd\u6a21\u5f0f\uff0c\u7b2c\u4e00\u79cd\u4e3a\u8c03\u8bd5\u6a21\u5f0f\uff0c\u7b2c\u4e8c\u79cd\u4e3a\u5728\u7ebf\u6a21\u5f0f\u3002\u5728\u7b2c\u4e00\u79cd\u6a21\u5f0f\u4e0b\uff0c\u6240\u6709\u7684java\u5bf9\u8c61\u90fd\u4f1a\u8bb0\u5f55\u5230\u65e5\u5fd7\u6587\u4ef6\u4e2d\uff0c\u5305\u62ec\u8c03\u8bd5\u4fe1\u606f\uff0c\u5728\u7b2c\u4e8c\u79cd\u6a21\u5f0f\u4e0b\uff0c\u53ea\u6709\u4e3aException \uff08\u5f02\u5e38\uff09\u7684\u5bf9\u8c61\u624d\u4f1a\u8bb0\u5f55\u5230\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u6a21\u5f0f\u7684\u8bbe\u7f6e\u5728\/ecology\/WEB-INF\/ log4jinit.properties \u5c5e\u6027\u6587\u4ef6\u4e2d\u7684log4j.rootLogger \u5c5e\u6027\u6765\u6307\u5b9a\uff0c\u5982\u4e0b\uff1a<\/p>\n<p>log4j.rootLogger = INFO,A2<\/p>\n<p>#if you want to open the trace from open source,just add # ahead of line<\/p>\n<p>log4j.logger.org = ERROR<\/p>\n<p>log4j.logger.uk = ERROR<\/p>\n<p>log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender<\/p>\n<p>log4j.appender.A2.DatePattern=&#8217;_&#8217;yyyyMMdd&#8217;.log&#8217;<\/p>\n<p>#don&#8217;t modify the file property<\/p>\n<p>log4j.appender.A2.File=@ecology<\/p>\n<p>log4j.appender.A2.layout=org.apache.log4j.PatternLayout<\/p>\n<p>log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %c &#8211; %m%n<\/p>\n<p>\u4e0a\u9762\u7684\u65e5\u5fd7\u8868\u660e\u5c06\u6240\u6709\u7684\u4fe1\u606f\u7b54\u5e94\u5230\u6587\u4ef6\u65e5\u5fd7\u6587\u4ef6\u4e2d \uff0c\u5176\u4e2d\u65e5\u5fd7\u7684\u6a21\u5f0f\u4e3a\uff1a<\/p>\n<p>#FATAL 0<\/p>\n<p>#ERROR 3<\/p>\n<p>#WARN 4 \u53ea\u6709WARN,ERROR,FATAL\u8f93\u51fa<\/p>\n<p>#INFO 6 \u6240\u6709\u7684log\u90fd\u8f93\u51fa<\/p>\n<p>#DEBUG 7<\/p>\n<p>\u8bb0\u5f55\u65e5\u5fd7\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a<\/p>\n<p>public class ResourceComInfo extends BaseBean {<\/p>\n<p>private void setResourceInfo() throws Exception{<\/p>\n<p>&nbsp;<\/p>\n<p>try{<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e1a\u52a1\u5904\u7406\u8fc7\u7a0b\u2026\u2026\u2026.<\/p>\n<p>String debugInfo = &#8220;This is test&#8221; ;<\/p>\n<p>\/\/ \u5728\u8c03\u8bd5\u6a21\u5f0f\u4e0b\u5c06\u4f1a\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(&#8220;debug info is &#8220;+ debugInfo) ;<\/p>\n<p>}<\/p>\n<p>catch(Exception e) {<\/p>\n<p>\/\/ \u5728\u4efb\u4f55\u6a21\u5f0f\u4e0b\u51fa\u73b0\u5f02\u5e38\uff0c\u90fd\u5c06\u4f1a\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(e) ;<\/p>\n<p>throw e ;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u8bb0\u5f55\u7684\u65e5\u5fd7\u6587\u4ef6\u5f62\u5f0f\u4e3a\uff1a<\/p>\n<p>2007-10-15 16:51:50,125 DEBUG weaver.hrm.resource. ResourceComInfo &#8211; debug info is This is test<\/p>\n<p>\u5982\u679c\u6709\u5f02\u5e38\uff0c\u5c06\u4f1a\u8bb0\u5f55\u4e3a\uff1a<\/p>\n<p>2007-10-15 16:51:50,125 ERROR weaver.hrm.resource. ResourceComInfo &#8211; java.sql.SQLException: [Microsoft][SQLServer JDBC Driver][SQLServer]\u5f62\u5f0f\u53c2\u6570 &#8216;@id_1&#8217; \u5b9a\u4e49\u4e3a OUTPUT\uff0c\u4f46\u5b9e\u9645\u53c2\u6570\u5374\u672a\u58f0\u660e\u4e3a OUTPUT\u3002<\/p>\n<p>at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.base.BaseStatement.executeInternal(Unknown Source)<\/p>\n<p>at com.microsoft.jdbc.base.BasePreparedStatement.execute(Unknown Source)<\/p>\n<p>at weaver.conn.RecordSet.executeProc(RecordSet.java:155)<\/p>\n<p>at weaver.conn.RecordSet.executeProc(RecordSet.java:109)<\/p>\n<p>at weaver.hrm.resource. ResourceComInfo (ResourceComInfo.java:59)<\/p>\n<p>at com.caucho.jsp.JavaPage.service(JavaPage.java:87)<\/p>\n<p>at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81)<\/p>\n<p>at com.caucho.jsp.Page.service(Page.java:410)<\/p>\n<p>at com.caucho.server.http.Invocation.service(Invocation.java:319)<\/p>\n<p>at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:333)<\/p>\n<p>at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:266)<\/p>\n<p>at com.caucho.server.TcpConnection.run(TcpConnection.java:140)<\/p>\n<p>at java.lang.Thread.run(Thread.java:484)<\/p>\n<p>\u4ece\u4e0a\u9762\u7684\u65e5\u5fd7\u4fe1\u606f\uff0c\u53ef\u4ee5\u770b\u5230ResourceComInfo\u7c7b\u768459\u884c\u4ee3\u7801\u8fd0\u884c\u7684\u65f6\u5019\u51fa\u73b0\u9519\u8bef\uff0c\u8fd9\u4e2a\u9519\u8bef\u662f\u6267\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u7684\u811a\u672c\u9519\u8bef\uff0c\u5177\u4f53\u7684\u9519\u8bef\u4fe1\u606f\u662f\uff1a\u5f62\u5f0f\u53c2\u6570 &#8216;@id_1&#8217; \u5b9a\u4e49\u4e3a OUTPUT\uff0c\u4f46\u5b9e\u9645\u53c2\u6570\u5374\u672a\u58f0\u660e\u4e3a OUTPUT\u3002\u8bf4\u660e\u8c03\u7528\u6570\u636e\u5e93\u811a\u672c\u7684\u65f6\u5019\u53c2\u6570\u7684\u6570\u91cf\u6709\u51fa\u5165\u3002<\/p>\n<p>\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u8bf7\u5c06\u65e5\u5fd7\u7ea7\u522b\u8bbe\u7f6e\u4e3aINFO\uff0c\u901a\u8fc7\u65e5\u5fd7\u53ef\u68c0\u67e5\u7a0b\u5e8f\u5728\u54ea\u91cc\u51fa\u9519\u4e86\u3002<\/p>\n<h2><a id=\"post-1623-_Toc214887614\"><\/a>\u600e\u6837\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u7684\u503c<\/h2>\n<p>\u7ee7\u627f\u4e86weaver.general.BaseBean \u7684\u7c7b\uff0c\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528getPropValue\u65b9\u6cd5\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u7684\u503c\u3002\u6ce8\u610f\u8fd9\u91cc\u662f\u4f7f\u7528\uff0c\u800c\u4e0d\u662f\u8c03\u7528\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u65b9\u6cd5\u662f\u8fd9\u4e24\u4e2a\u88ab\u7ee7\u627f\u7c7b\u4e2d\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u6ce8\u610fgetPropValue\u65b9\u6cd5\u7684\u4f7f\u7528\uff1a<\/p>\n<p>\/**<\/p>\n<p>* \u4ece\u914d\u7f6e\u6587\u4ef6\u4e2d\u83b7\u53d6\u67d0\u4e2a\u5c5e\u6027\u7684\u503c<\/p>\n<p>* @param fname \u5c5e\u6027\u6587\u4ef6\u540d\u79f0<\/p>\n<p>* @param key \u503c<\/p>\n<p>* @return String \u5c5e\u6027\u503c<\/p>\n<p>*\/<\/p>\n<p>public String getPropValue(String fname , String key)<\/p>\n<p>getPropValue \u65b9\u6cd5\u6307\u5b9a\u4e86\u4ece\u67d0\u4e00\u4e2a\u5c5e\u6027\u6587\u4ef6fname \u4e2d\u83b7\u53d6\u952e\u503ckey \u7684\u503c\u3002<\/p>\n<p>\u8fd9\u91cc\u7684\u5c5e\u6027\u6587\u4ef6\u5fc5\u987b\u5b58\u653e\u5728\u7cfb\u7edf\u8fd0\u884c\u76ee\u5f55\u4e0b\u7684WEB-INF\/prop \u76ee\u5f55\u4e0b\uff0c\u6587\u4ef6\u540d\u79f0\u4e3a\u53c2\u6570fname\u6307\u5b9a\u7684\u6587\u4ef6\u540d\uff0c\u4e0d\u5305\u62ec\u5c5e\u6027\u6587\u4ef6\u7684\u540e\u7f00\u540d\uff0c\u5c5e\u6027\u6587\u4ef6\u7684\u540e\u7f00\u540d\u5fc5\u987b\u4e3a .properties\u3002<\/p>\n<p>\u6bd4\u5982\uff1a<\/p>\n<p>\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55\u4e3a d:\\ecology\\\uff0c\u90a3\u4e48\u5c5e\u6027\u6587\u4ef6\u5fc5\u987b\u653e\u5728d:\\ecology\\WEB-INF\\prop\\ \u76ee\u5f55\u4e0b\uff0c\u53d6\u540d\u4e3a thefilename.properties \uff0c\u5176\u4e2dthefilename\u662f\u4efb\u610f\u7684\u3002<\/p>\n<p>\u5728\u5c5e\u6027\u6587\u4ef6\u4e2d\u67d0\u4e00\u4e2a\u952e\u503c\u7684\u503c\u7528\u7b49\u53f7\u6765\u8d4b\u503c\uff0c\u7b49\u53f7\u540e\u9762\u7684\u503c\u5fc5\u987b\u653e\u5728\u4e00\u884c\uff0c\u5982\u679c\u4e00\u884c\u4e0d\u591f\u5199\uff08\u6216\u8005\u4e3a\u4e86\u67e5\u770b\u7684\u65b9\u4fbf\uff09\uff0c\u53ef\u4ee5\u7528 \\ \u6765\u94fe\u63a5\u591a\u884c\u3002\u5426\u5219\u5176\u5b83\u884c\u7684\u503c\u4e0d\u80fd\u88ab\u952e\u503c\u53d6\u5f97\u3002\u7b49\u53f7\u5de6\u53f3\u90fd\u53ef\u4ee5\u6709\u7a7a\u683c\uff0c\u5bf9\u952e\u503c\u548c\u952e\u503c\u7684\u503c\u6ca1\u6709\u5f71\u54cd\u3002<\/p>\n<p>\u6bd4\u5982 \uff1a<\/p>\n<p>thekeyname = thevalue<\/p>\n<p>\u5c06\u952e\u503c\u7684\u503c\u653e\u5230\u591a\u884c\uff1a<\/p>\n<p>thekeyname = thevalue1 \\<\/p>\n<p>thevalue2 \\<\/p>\n<p>thevalue3<\/p>\n<p>thevalue4<\/p>\n<p>\u8fd9\u65f6\u5019thekeyname \u7684\u503c\u4e3athevalue1thevalue2thevalue3 \uff0cthevalue4 \u53d6\u4e0d\u5230\uff0c\u56e0\u4e3athevalue3\u540e\u9762\u6ca1\u6709 \\<\/p>\n<p>\u5728\u7a0b\u5e8f\u4e2d\u8981\u53d6\u5f97\u4e0a\u8ff0\u5c5e\u6027\u6587\u4ef6\u4e2d\u952e\u503cthekeyname\u7684\u503c\uff0c\u4f7f\u7528\u65b9\u6cd5\uff1a<\/p>\n<p>getPropValue(\u201cthefilename\u201d , \u201cthekeyname\u201d) ;<\/p>\n<p>\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u7684\u503c\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a<\/p>\n<p>public class ResourceComInfo extends BaseBean {<\/p>\n<p>private void setResourceInfo() throws Exception{<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e1a\u52a1\u5904\u7406\u8fc7\u7a0b\u2026\u2026\u2026.<\/p>\n<p>String keyValue = getPropValue(\u201cthefilename\u201d , \u201cthekeyname\u201d) ;<\/p>\n<p>\/\/ \u5c06\u952e\u503cthekeyname\u7684\u503ckeyValue\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(&#8220;keyvalue is &#8220;+ keyValue) ;<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u7cfb\u7edf\u7684\u4e3b\u5c5e\u6027\u6587\u4ef6 weaver.properties \u7684\u6587\u4ef6\u540d\u201cweaver\u201d \u4f5c\u4e3a\u7cfb\u7edf\u5e38\u91cf\u653e\u5728weaver.general.GCONST \u7c7b\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528getConfigFile() \u65b9\u6cd5\u6765\u8fd4\u56de \u201cweaver \u201d\uff0c\u5728\u7f16\u7a0b\u7684\u8fc7\u7a0b\u4e2d\uff0c\u5982\u679c\u9700\u8981\u7528\u5230weaver.properties\u5c5e\u6027\u6587\u4ef6\u4e2d\u7684\u952e\u503c\uff0c\u8bf7\u7528GCONST. getConfigFile() \u6765\u83b7\u53d6\uff0c\u5f53\u4e3b\u5c5e\u6027\u6587\u4ef6\u540d\u79f0\u56e0\u4e3a\u9700\u8981\u6539\u53d8\u5f97\u65f6\u5019\uff0c\u4e0d\u5fc5\u6539\u53d8\u6240\u6709\u7528\u5230\u8fd9\u4e2a\u5c5e\u6027\u6587\u4ef6\u7684\u7c7b\uff0c\u53ea\u9700\u8981\u6539\u53d8GCONST\u7c7b\u4e2d\u5e38\u91cf\u7684\u503c<\/p>\n<h2><a id=\"post-1623-_Toc214887615\"><\/a>\u600e\u6837\u83b7\u53d6\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55<\/h2>\n<p>weaver.general.GCONST \u7c7b\u63d0\u4f9b\u4e86\u4e00\u4e2a\u9759\u6001\u65b9\u6cd5getRootPath() \uff0c\u8fd4\u56de\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55\uff0c\u6bd4\u5982\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55\u4e3ad \u76d8\u7684ecology\u76ee\u5f55\uff0c\u5c06\u8fd4\u56ded:\\ecology\\<\/p>\n<p>\u83b7\u53d6\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a<\/p>\n<p>public class TestBean extends BaseBean {<\/p>\n<p>&nbsp;<\/p>\n<p>import weaver.general.GCONST \uff1b<\/p>\n<p>public void getSysRunPath(){<\/p>\n<p>&nbsp;<\/p>\n<p>String sysRunPath = GCONST. GetRootPath() ;<\/p>\n<p>\/\/ \u5c06\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55sysRunPath\u7684\u503c\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(&#8220;sysRunPath is &#8220;+ sysRunPath) ;<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<h2><a id=\"post-1623-_Toc214887616\"><\/a>\u600e\u6837\u8bbf\u95ee\u548c\u8fd0\u884c\u6570\u636e\u5e93\u811a\u672c<\/h2>\n<p>\u5728ecology\u7cfb\u7edf\u4e2d\uff0c\u5927\u91cf\u7684\u6570\u636e\u5e93\u8bbf\u95ee\uff0c\u94fe\u63a5\u7684\u5efa\u7acb\u548c\u6301\u7eed\u6027\uff0c\u4e8b\u52a1\u7684\u5904\u7406\uff0c\u94fe\u63a5\u6c60\u7684\u7ef4\u62a4\u7b49\u95ee\u9898\u90fd\u88ab\u5c01\u88c5\u5728weaver.conn \u5305\u4e0b\u9762\u7684\u5404\u4e2a\u7c7b\u4e2d\uff0c\u5e94\u7528\u7a0b\u5e8f\u7684\u5b9e\u73b0\u8005\u4e0d\u9700\u8981\u53bb\u5173\u5fc3\u8fd9\u4e9b\u95ee\u9898\uff0c\u800c\u53ea\u9700\u8981\u8c03\u7528weaver.conn.RecordSet \u7c7b\u6765\u6267\u884c\u5404\u79cd\u6570\u636e\u5e93\u64cd\u4f5c\u3002<\/p>\n<p>weaver.conn.RecordSet \u7c7b\u5b9e\u73b0\u4e86\u4ece\u6570\u636e\u5e93\u94fe\u63a5\u6c60\u4e2d\u83b7\u53d6\u94fe\u63a5\uff0c\u6267\u884c\u6307\u5b9a\u7684\u6570\u636e\u5e93\u811a\u672c\u6216\u8005\u5b58\u50a8\u8fc7\u7a0b\uff0c\u5e76\u5728\u811a\u672c\u6216\u8005\u5b58\u50a8\u8fc7\u7a0b\u6267\u884c\u5b8c\u6bd5\u540e\u5c06\u94fe\u63a5\u53ca\u65f6\u5730\u5f52\u8fd8\u5230\u94fe\u63a5\u6c60\u4e2d\u3002<\/p>\n<p>Ecology\u7cfb\u7edf\u7684\u94fe\u63a5\u6c60\u7ba1\u7406\u8bf7\u53c2\u89c1 weaver.conn.ConnectionPool \uff0c weaver.conn.DBConnectionPool \uff0cweaver.conn.ConnCheckerTimer \u7c7b\u7684API \u6587\u6863\uff0cweaver.conn.ConnectionPool \u7528\u4e8e\u7ba1\u7406ecology\u7cfb\u7edf\u4e2d\u7684\u6240\u6709\u6570\u636e\u5e93\u94fe\u63a5\u6c60(ecology\u7cfb\u7edf\u53ef\u4ee5\u540c\u65f6\u94fe\u63a5\u591a\u4e2a\u6570\u636e\u5e93\uff0c\u6bcf\u4e00\u4e2a\u6570\u636e\u5e93\u5747\u6709\u4e00\u4e2a\u5bf9\u5e94\u7684\u6570\u636e\u5e93\u94fe\u63a5\u6c60\uff0c\u7531weaver.conn.DBConnectionPool\u8d1f\u8d23\u7ba1\u7406\uff0c\u800cweaver.conn.ConnectionPool\u5219\u662f\u8fd9\u4e9b\u94fe\u63a5\u6c60\u7684\u5927\u7ba1\u5bb6\uff0c\u8d1f\u8d23\u6240\u6709\u94fe\u63a5\u6c60\u7684\u534f\u8c03\u548c\u7edf\u4e00\u5bf9\u5916\u63a5\u53e3)\uff0cweaver.conn.DBConnectionPool\u7528\u4e8e\u5efa\u7acb\u548c\u7ba1\u7406\u5bf9\u67d0\u4e00\u4e2a\u6570\u636e\u5e93\u7684\u94fe\u63a5\u6c60\uff0cweaver.conn.ConnCheckerTimer\u7528\u4e8e\u76d1\u63a7\u5404\u4e2a\u94fe\u63a5\u6c60\u7684\u72b6\u51b5\uff0c\u5b9a\u671f\u5bf9\u6570\u636e\u5e93\u94fe\u63a5\u6c60\u4e2d\u4e0d\u7b26\u5408\u8981\u6c42\u7684\u94fe\u63a5\u8fdb\u884c\u6e05\u7406\uff0c\u5e76\u76d1\u89c6\u662f\u5426\u9700\u8981\u5728\u67d0\u4e00\u94fe\u63a5\u6c60\u4e2d\u5efa\u7acb\u65b0\u7684\u94fe\u63a5\u3002<\/p>\n<p>\u8c03\u7528weaver.conn.RecordSet\uff0c\u5b9e\u73b0\u5bf9\u6570\u636e\u7684\u64cd\u4f5c\uff0c\u4e0b\u9762\u8fdb\u884c\u8be6\u7ec6\u7684\u8bf4\u660e\uff1a<\/p>\n<p>weaver.conn.RecordSet\u7c7b\u91c7\u7528 java.sql \u4e2d\u7684 CallableStatement \u548c Statement \u6267\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002\u5ba2\u6237\u7aef\u76f4\u63a5\u8c03\u7528\u8be5\u7c7b\u8fdb\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u3002\u4e0d\u9700\u8981\u8003\u8651\u6570\u636e\u5e93\u94fe\u63a5\u7684\u5efa\u7acb\u3002\u5176\u4e2d\u5ba2\u6237\u7aef\u6307\u6240\u6709\u8c03\u7528\u8be5\u7c7b\u8fdb\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c\u4e0d\u7279\u6307\u7528\u6237\u7684\u5ba2\u6237\u7aef\u3002<\/p>\n<p>RecordSet \u6267\u884c\u6570\u636e\u5e93\u64cd\u4f5c\u6709\u4e24\u79cd\u5f62\u5f0f\uff0c\u4e00\u79cd\u4e3a\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\uff0c\u53e6\u4e00\u79cd\u4e3a\u76f4\u63a5\u6267\u884cSQL\u8bed\u53e5\u3002\u4e0eConnStatement\u4e0d\u540c \uff0cRecordSet \u6267\u884cSQL\u8bed\u53e5\u4e0d\u5206\u67e5\u8be2\u548c\u4fee\u6539\uff0c\u90fd\u5728\u4e00\u6761\u8bed\u53e5\u4e2d\u6267\u884c\u3002RecordSet\u6267\u884c\u811a\u672c\u7684\u65b9\u5f0f\u5982\u4e0b\uff1a<\/p>\n<p>1\u3001\u4f7f\u7528\u9ed8\u8ba4\u7684\u94fe\u63a5\u6c60\u6267\u884cSQL\u8bed\u53e5\uff1a<\/p>\n<p>RecordSet rs = new RecordSet() ;<\/p>\n<p>rs.executeSql(&#8221; select * from TB_Example &#8220;) ;<\/p>\n<p>while( rs.next() ) {<\/p>\n<p>String thename = rs.getString(&#8220;name&#8221;) ;<\/p>\n<p>\u5176\u5b83\u5904\u7406\u4ee3\u7801&#8230;.\u2026\u2026<\/p>\n<p>}<\/p>\n<p>\u5728JSP\u9875\u9762\u4e2d,\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u5e94\u7528<\/p>\n<p>&lt;%@ page import=&#8221;weaver.general.Util&#8221; %&gt;<\/p>\n<p>&lt;%@ page import=&#8221;weaver.conn.*&#8221; %&gt;<\/p>\n<p>&lt;%@ page import=&#8221;java.util.*,java.sql.Timestamp&#8221; %&gt;<\/p>\n<p>&lt;%@ page language=&#8221;java&#8221; contentType=&#8221;text\/html; charset=GBK&#8221; %&gt;<\/p>\n<p>&lt;%@ include file=&#8221;\/systeminfo\/init.jsp&#8221; %&gt;<\/p>\n<p>&lt;jsp:useBean id=&#8221;rs&#8221; class=&#8221;weaver.conn.RecordSet&#8221; scope=&#8221;page&#8221; \/&gt;<\/p>\n<p>&lt;%rs.execute(\u201c\u201d); \/\/\u6267\u884cSQL\u8bed\u53e5<\/p>\n<p>while( rs.next() ) {<\/p>\n<p>String thename = rs.getString(&#8220;name&#8221;) ;<\/p>\n<p>\u5176\u5b83\u5904\u7406\u4ee3\u7801&#8230;.\u2026\u2026<\/p>\n<p>}<\/p>\n<p>rs. executeProc (\u201c\u5b58\u50a8\u8fc7\u7a0b\u540d\u79f0\u201d,para); \/\/\u6267\u884c\u5b58\u50a8\u8fc7\u7a0b<\/p>\n<p>while( rs.next() ) {<\/p>\n<p>String thename = rs.getString(&#8220;name&#8221;) ;<\/p>\n<p>\u5176\u5b83\u5904\u7406\u4ee3\u7801&#8230;.\u2026\u2026<\/p>\n<p>}<\/p>\n<p>%&gt;<\/p>\n<p>2\u3001\u4f7f\u7528\u6307\u5b9a\u7684\u94fe\u63a5\u6c60ecologytest\u6267\u884cSQL\u8bed\u53e5<\/p>\n<p>RecordSet rs = new RecordSet() ;<\/p>\n<p>rs.executeSql(&#8221; update TB_Example set name = &#8216;the new value&#8217; &#8221; , &#8220;ecologytest&#8221; ) ;<\/p>\n<p>3\u3001\u4f7f\u7528\u6307\u5b9a\u7684\u94fe\u63a5\u6c60ecologytest\u6267\u884c\u5b58\u50a8\u8fc7\u7a0b PD_Example_UpdateById<\/p>\n<p>\u5b58\u50a8\u8fc7\u7a0bPD_Example_UpdateById \u5982\u4e0b\uff1a<\/p>\n<p>CREATE PROCEDURE [PD_Example_UpdateById]<\/p>\n<p>(@name varchar(100),<\/p>\n<p>@id int,<\/p>\n<p>@flag integer output,<\/p>\n<p>@msg varchar(80) output)<\/p>\n<p>AS<\/p>\n<p>update TB_Example set name = @name where id = @id<\/p>\n<p>GO<\/p>\n<p>&nbsp;<\/p>\n<p>RecordSet rs = new RecordSet() ;<\/p>\n<p>String newname = &#8230;&#8230;. ;<\/p>\n<p>String id = &#8230;&#8230; ;<\/p>\n<p>String procpara = newname + Util.getSeparator() + id ;<\/p>\n<p>rs.executeProc( &#8220;PD_Example_UpdateById&#8221; , procpara , &#8220;ecologytest&#8221; ) ;<\/p>\n<p>procpara \u662f\u5b58\u50a8\u8fc7\u7a0b\u7684\u53c2\u6570\u503c\u7ec4\u6210\u7684\u5b57\u7b26\u4e32\u53d8\u91cf\uff0c\u591a\u4e2a\u53c2\u6570\u503c\u4e4b\u95f4\u7528 weaver.general.Util.getSeparator() \u5206\u5f00<\/p>\n<p>4\u3001\u5728\u4e00\u4e2a\u5ba2\u6237\u7a0b\u5e8f\u591a\u4e2a\u6267\u884c\u4e4b\u95f4\uff0c\u67e5\u8be2\u7ed3\u679c\u53ef\u4ee5\u4fdd\u7559\u5230\u4e0b\u4e00\u6b21\u67e5\u8be2<\/p>\n<p>RecordSet rs = new RecordSet() ;<\/p>\n<p>rs.executeSql(&#8221; select * from TB_Example &#8220;) ;<\/p>\n<p>rs.executeSql(&#8221; update TB_Example set name = &#8216;the new value &#8216;&#8221;) ;<\/p>\n<p>while( rs.next() ) {<\/p>\n<p>String thename = rs.getString(&#8220;name&#8221;) ; \/\/\u5f97\u5230\u4fee\u6539\u524d\u67e5\u8be2\u7684\u503c<\/p>\n<p>\u5176\u5b83\u5904\u7406\u4ee3\u7801&#8230;.\u2026\u2026.<\/p>\n<p>}<\/p>\n<p>rs.executeSql(&#8221; select * from TB_Example &#8220;) ;<\/p>\n<p>while( rs.next() ) {<\/p>\n<p>String thename = rs.getString(&#8220;name&#8221;) ; \/\/\u5f97\u5230\u4fee\u6539\u540e\u67e5\u8be2\u7684\u503c<\/p>\n<p>\u5176\u5b83\u5904\u7406\u4ee3\u7801&#8230;.\u2026\u2026<\/p>\n<p>}<\/p>\n<p>\u8bbf\u95ee\u548c\u8fd0\u884c\u6570\u636e\u5e93\u811a\u672c\u7684\u4f8b\u5b50\uff1a<\/p>\n<p>public class ResourceComInfo extends BaseBean {<\/p>\n<p>private void setResourceInfo() throws Exception{<\/p>\n<p>&nbsp;<\/p>\n<p>\u4e1a\u52a1\u5904\u7406\u8fc7\u7a0b\u2026\u2026\u2026.<\/p>\n<p>String sqlStr = \u201cselect * from Hrmresorce\u201d ;<\/p>\n<p>RecordSet rt = new RecordSet() ;<\/p>\n<p>rt.executeSql(sqlStr) ;<\/p>\n<p>while(rt.next()){<\/p>\n<p>String id = Util.null2String(rt.getString(&#8220;id&#8221;));<\/p>\n<p>String loginid = Util.null2String(rt.getString(&#8220;loginid&#8221;));<\/p>\n<p>String lastname = Util.null2String(rt.getString(&#8220;lastname&#8221;));<\/p>\n<p>\/\/ \u5c06\u6570\u636e\u5e93\u7684\u503c\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(&#8220;id is &#8220;+ id) ;<\/p>\n<p>writeLog(&#8220;loginid is &#8220;+ loginid) ;<\/p>\n<p>writeLog(&#8220;lastname is &#8220;+ lastname) ;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u5176\u5b83\u5173\u4e8e\u7cfb\u7edf\u6570\u636e\u5e93\u4fe1\u606f\u7684\u7ba1\u7406<\/p>\n<p>a)\u3001weaver.conn.ConnectionPool \u7c7b\u7684\u7ba1\u7406\u548c\u8bbe\u7f6e\uff1a<\/p>\n<p>\u6240\u6709\u7684\u6570\u636e\u5e93\u94fe\u63a5\u6c60\u7684\u96c6\u5408\uff0c\u7528\u94fe\u63a5\u6c60\u540d\u79f0\u533a\u522b\u6bcf\u4e00\u4e2a\u94fe\u63a5\u6c60.\u652f\u6301\u5bf9\u4e00\u4e2a\u6216\u591a\u4e2a\u7531\u5c5e\u6027\u6587\u4ef6\u5b9a\u4e49\u7684\u6570\u636e\u5e93\u8fde\u63a5\u6c60\u7684\u8bbf\u95ee.\u5ba2\u6237\u7a0b\u5e8f\u53ef\u4ee5\u8c03\u7528getInstance()\u65b9\u6cd5\u8bbf\u95ee\u672c\u7c7b\u7684\u552f\u4e00\u5b9e\u4f8b\u3002<\/p>\n<p>\u5bf9\u4e8e\u4e00\u4e2a\u94fe\u63a5\u6c60\u96c6\u5408\u6765\u8bf4\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\u94fe\u63a5\u6c60\uff0c\u5206\u522b\u94fe\u63a5\u4e0d\u540c\u7684\u6570\u636e\u5e93\u3002\u5e94\u7528\u7a0b\u5e8f\u6307\u5b9a\u94fe\u63a5\u6c60\u7684\u540d\u79f0\u6765\u8c03\u7528\u4e0d\u540c\u7684\u94fe\u63a5\u6c60\u3002\u5982\u679c\u5e94\u7528\u7a0b\u5e8f\u6ca1\u6709\u6307\u5b9a\u94fe\u63a5\u6c60\u7684\u540d\u79f0\uff0c\u5c06\u4f7f\u7528\u9ed8\u8ba4\u7684\u94fe\u63a5\u6c60\u3002\u9ed8\u8ba4\u94fe\u63a5\u6c60\u7684\u6307\u5b9a\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a<\/p>\n<p>1\u3001\u5728Application Server\u8bbe\u7f6e\u7684\u521d\u59cb\u53c2\u6570serverName\u7684\u503c \uff0c\u4ee5Resin \u4e3a\u4f8b\uff1a<\/p>\n<p>&lt;servlet servlet-name=&#8217;InitServer&#8217; servlet-class=&#8217;weaver.general.InitServer&#8217;&gt;<\/p>\n<p>&lt;init-param serverName=&#8217;ecology&#8217;\/&gt;<\/p>\n<p>&lt;load-on-startup\/&gt;<\/p>\n<p>&lt;\/servlet&gt;<\/p>\n<p>2\u3001\u5982\u679cApplication Server\u6ca1\u6709\u76f8\u5e94\u8bbe\u7f6e\uff0c\u5219\u7cfb\u7edf\u4f7f\u7528\u5c5e\u6027\u6587\u4ef6\uff08weaver.properties\uff09\u4e2d\u8bbe\u7f6e\u7684\u9ed8\u8ba4\u94fe\u63a5\u6c60\u540d\u79f0\uff1a<\/p>\n<p>DefaultPoolName = ecology<\/p>\n<p>\u5bf9\u4e8e\u6240\u6709\u7684\u94fe\u63a5\u6c60\uff0c\u7cfb\u7edf\u9700\u8981\u52a0\u8f7d\u76f8\u5e94\u7684 JDBC Driver\u6765\u5efa\u7acb\u4e0e\u76f8\u5e94\u6570\u636e\u5e93\u7684\u94fe\u63a5\u3002\u8fd9\u4e9b Driver \u5728\u5c5e\u6027\u6587\u4ef6\uff08weaver.properties\uff09\u4e2d\u6307\u5b9a\uff0c\u591a\u4e2aDriver\u4e2d\u95f4\u7528\u7a7a\u683c\u9694\u5f00\uff1a<\/p>\n<p>DriverClasses = com.microsoft.jdbc.sqlserver.SQLServerDriver<\/p>\n<p>\u5bf9\u4e8e\u6bcf\u4e00\u4e2a\u94fe\u63a5\u6c60\u9700\u8981\u7528\u5230\u7684\u53c2\u6570\u5728\u5c5e\u6027\u6587\u4ef6\uff08weaver.properties\uff09\u4e2d\u6307\u5b9a\uff0c\u5c5e\u6027\u6587\u4ef6\u4e2d\u53c2\u6570\u7684\u540d\u79f0\u4ee5\u94fe\u63a5\u6c60\u7684\u540d\u79f0\u5f00\u5934\uff0c\u4e2d\u95f4\u52a0\u5165\u5c0f\u6570\u70b9\uff0c\u6bd4\u5982\u94fe\u63a5\u6c60 ecology \u7684\u53c2\u6570\u6307\u5b9a\u4e3a \uff1a<\/p>\n<p>ecology.url = jdbc:microsoft:sqlserver:\/\/10.1.1.205:1433;DatabaseName=ecology \/\/db url<\/p>\n<p>ecology.user = sa \/\/db user name<\/p>\n<p>ecology.password = 123456 \/\/db user password<\/p>\n<p>ecology.charset = ISO_1 \/\/db encode<\/p>\n<p>ecology.maxconn = 10 \/\/max conn in conn pool<\/p>\n<p>ecology.minconn = 2 \/\/min conn in conn pool<\/p>\n<p>ecology.maxusecount = 30 \/\/the max use times of a conn<\/p>\n<p>ecology.maxidletime = 30 \/\/the max unuse time of a conn \uff08\u5206\uff09<\/p>\n<p>ecology.maxalivetime = 2 \/\/\u4e00\u4e2a\u94fe\u63a5\u88ab\u8c03\u7528\u540e\u7684\u6700\u5927\u672a\u5f52\u56de\u65f6\u95f4 \uff08\u5206\uff09<\/p>\n<p>ecology.checktime = 500 \/\/\u68c0\u67e5\u7684\u9891\u7387 \uff08\u79d2\uff09<\/p>\n<p>b)\u3001weaver.conn. DBConnectionPool\u7c7b\u7684\u7ba1\u7406\u548c\u8bbe\u7f6e\uff1a<\/p>\n<p>\u6570\u636e\u5e93\u94fe\u63a5\u6c60\uff0c\u6240\u6709\u521b\u5efa\u7684\u94fe\u63a5\u5b58\u653e\u5728\u94fe\u63a5\u6c60\u4e2d\uff0c\u5728\u5ba2\u6237\u7aef\u94fe\u63a5\u6570\u636e\u5e93\u65f6\u4ece\u94fe\u63a5\u6c60\u4e2d\u53d6\u51fa\u94fe\u63a5\uff0c\u5ba2\u6237\u7aef\u5728\u5b8c\u6210\u6570\u636e\u5e93\u64cd\u4f5c\u540e\u5c06\u94fe\u63a5\u8fd4\u56de\u94fe\u63a5\u6c60\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u94fe\u63a5\u6c60\u521b\u5efa\u94fe\u63a5\u9700\u8981\u7528\u5230\u7684\u53c2\u6570\u5728\u5c5e\u6027\u6587\u4ef6\uff08weaver.properties\uff09\u4e2d\u6307\u5b9a\uff0c\u5c5e\u6027\u6587\u4ef6\u4e2d\u53c2\u6570\u7684\u540d\u79f0\u4ee5\u94fe\u63a5\u6c60\u7684\u540d\u79f0\u5f00\u5934\uff0c\u4e2d\u95f4\u52a0\u5165\u5c0f\u6570\u70b9\uff0c\u6bd4\u5982\u94fe\u63a5\u6c60 ecology \u7684\u53c2\u6570\u6307\u5b9a\u4e3a \uff1a<\/p>\n<p>ecology.url = jdbc:microsoft:sqlserver:\/\/10.1.1.205:1433;DatabaseName=AIS2002 \/\/db url<\/p>\n<p>ecology.user = sa \/\/db user name<\/p>\n<p>ecology.password = 123456 \/\/db user password<\/p>\n<p>ecology.charset = ISO_1 \/\/db encode<\/p>\n<p>ecology.maxconn = 10 \/\/max conn in conn pool<\/p>\n<p>ecology.minconn = 2 \/\/min conn in conn pool<\/p>\n<p>ecology.maxusecount = 30 \/\/the max use times of a conn<\/p>\n<p>ecology.maxidletime = 30 \/\/the max unuse time of a conn \uff08\u5206\uff09<\/p>\n<p>ecology.maxalivetime = 2 \/\/\u4e00\u4e2a\u94fe\u63a5\u88ab\u8c03\u7528\u540e\u7684\u6700\u5927\u672a\u5f52\u56de\u65f6\u95f4 \uff08\u5206\uff09<\/p>\n<p>ecology.checktime = 500 \/\/\u68c0\u67e5\u7684\u9891\u7387 \uff08\u79d2\uff09<\/p>\n<h2><a id=\"post-1623-_Toc214887617\"><\/a>\u5982\u4f55\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6<\/h2>\n<p>\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6\u53ea\u9700\u8981\u8c03\u7528weaver.file.FileUpload \u7c7b\u3002weaver.file.FileUpload \u7c7b\u652f\u6301\u5404\u79cd\u6587\u4ef6\u683c\u5f0f\u7684\u4e0a\u4f20\uff0c\u4e5f\u652f\u6301\u591a\u6587\u4ef6\u7684\u4e0a\u4f20\u3002<\/p>\n<p>B\/S \u67b6\u6784\u7684\u6587\u4ef6\u4e0a\u4f20\u91c7\u7528\u7684\u662fmultipart\/form-data \u534f\u8bae\uff0c\u800c\u4e0d\u662fHTTP\u534f\u8bae\uff0c\u91c7\u7528\u8fd9\u79cd\u534f\u8bae\u4e0a\u4f20\u7684\u6570\u636e\u5fc5\u987b\u901a\u8fc7\u7279\u6b8a\u7684\u5904\u7406\uff0c\u800c\u4e0d\u80fd\u7528\u5e38\u89c4\u7684\u65b9\u6cd5\u6765\u83b7\u53d6\uff0c\u5426\u5219\u4e0d\u80fd\u5f97\u5230\u6570\u636e\u3002weaver.file.FileUpload \u5c01\u88c5\u4e86\u5e95\u5c42\u5904\u7406\u7684\u4ee3\u7801\uff0c\u5e94\u7528\u7a0b\u5e8f\u7684\u5b9e\u73b0\u8005\u4e0d\u9700\u8981\u5173\u5fc3\u8fd9\u4e9b\u7ec6\u8282\uff01<\/p>\n<p>weaver.file.FileUpload\u4e0a\u4f20\u6570\u636e\u7684\u65b9\u6cd5\u6709\uff1a<\/p>\n<p>\/**<\/p>\n<p>* \u8fdb\u884c\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6\u7684\u64cd\u4f5c<\/p>\n<p>* @param uploadname \u9700\u8981\u4e0a\u4f20\u7684\u6587\u4ef6\u5b57\u6bb5\u540d\u79f0<\/p>\n<p>* @return String \u8fd4\u56de\u4fdd\u5b58\u6587\u4ef6\u4fe1\u606f\u7684imagefileid<\/p>\n<p>*\/<\/p>\n<p>public String uploadFiles(String uploadname)<\/p>\n<p>\/**<\/p>\n<p>* \u8fdb\u884c\u4e0a\u4f20\u4e00\u4e2a\u6587\u4ef6\u7684\u64cd\u4f5c<\/p>\n<p>* @param uploadnames\u9700\u8981\u4e0a\u4f20\u7684\u591a\u4e2a\u6587\u4ef6\u5b57\u6bb5\u540d\u79f0<\/p>\n<p>* @return String[] \u8fd4\u56de\u4fdd\u5b58\u591a\u4e2a\u6587\u4ef6\u4fe1\u606f\u7684imagefileid\u6570\u7ec4<\/p>\n<p>*\/<\/p>\n<p>public String[] uploadFiles(String[] uploadnames)<\/p>\n<p>\u8fd9\u91cc\uff0c\u9700\u8981\u6ce8\u610f\u4e24\u70b9\uff0c\u4e00\u4e2a\u662f\u4f20\u7ed9uploadFiles \u65b9\u6cd5\u7684\u53c2\u6570\uff0c \u662f\u4e0a\u4f20\u6587\u4ef6\u5b57\u6bb5\u7684\u540d\u79f0\uff0c\u800c\u4e0d\u662f\u6587\u4ef6\u7684\u540d\u79f0\uff08\u8fd9\u4e2a\u65f6\u5019\u4f60\u5e76\u4e0d\u77e5\u9053\u6587\u4ef6\u7684\u540d\u79f0\uff09\u3002\u6bd4\u5982\u5728jsp \u6216\u8005html\u9875\u9762\u4e2d\u6587\u4ef6\u6d4f\u89c8\u7684\u5b57\u6bb5\u4ee3\u7801\u4e3a\uff1a<\/p>\n<p>&lt;input type=file size=70 name=&#8221;accessory1&#8243;&gt;<\/p>\n<p>\u90a3\u4e48\u8fd9\u91cc\u7684\u6587\u4ef6\u5b57\u6bb5\u7684\u540d\u79f0\u4e3a&#8221;accessory1&#8243;\u3002 \u7b2c\u4e8c\u70b9\u662f\u8fd9\u4e2a\u65b9\u6cd5\u8fd4\u56de\u7684\u4fe1\u606f\u662f\u4fdd\u5b58\u5728\u6570\u636e\u5e93\u8868 ImageFile \u4e2d\u5173\u4e8e\u8fd9\u4e2a\u6587\u4ef6\u4fe1\u606f\u7684\u952e\u503cimagefileid \uff0c\u8fd9\u4e2a\u8868\u7684\u7ed3\u6784\u5982\u4e0b\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th colspan=\"4\"><strong>Column(s) of &#8220;ImageFile&#8221; Table<\/strong><\/th>\n<\/tr>\n<tr>\n<th><strong>Name<\/strong><\/th>\n<th><strong>Datatype<\/strong><\/th>\n<th><strong>Null Option<\/strong><\/th>\n<th><strong>Comment<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>imagefileid<\/td>\n<td>int<\/td>\n<td>NOT NULL<\/td>\n<td>\u6587\u4ef6id<\/td>\n<\/tr>\n<tr>\n<td>imagefilename<\/td>\n<td>varchar(200)<\/td>\n<td>NULL<\/td>\n<td>\u6587\u4ef6\u540d\u79f0<\/td>\n<\/tr>\n<tr>\n<td>imagefiletype<\/td>\n<td>varchar(50)<\/td>\n<td>NULL<\/td>\n<td>\u6587\u4ef6MIME\u7c7b\u578b<\/td>\n<\/tr>\n<tr>\n<td>filerealpath<\/td>\n<td>varchar(255)<\/td>\n<td>NULL<\/td>\n<td>\u6587\u4ef6\u5b58\u653e\u76ee\u5f55<\/td>\n<\/tr>\n<tr>\n<td>imagefileused<\/td>\n<td>int<\/td>\n<td>NULL<\/td>\n<td>\u6587\u4ef6\u4f7f\u7528\u6b21\u6570<\/td>\n<\/tr>\n<tr>\n<td>iszip<\/td>\n<td>char(1)<\/td>\n<td>NULL<\/td>\n<td>\u662f\u5426\u538b\u7f29<\/p>\n<p>0\uff1a\u5426<\/p>\n<p>1\uff1a\u662f<\/td>\n<\/tr>\n<tr>\n<td>isencrypt<\/td>\n<td>char(1)<\/td>\n<td>NULL<\/td>\n<td>\u662f\u5426\u52a0\u5bc6<\/p>\n<p>0\uff1a\u5426<\/p>\n<p>1\uff1a\u662f<\/td>\n<\/tr>\n<tr>\n<td>imagefile<\/td>\n<td>image<\/td>\n<td>NULL<\/td>\n<td>\u6587\u4ef6\uff08\u5b58\u5728\u5728\u6570\u636e\u5e93\u4e2d\u7684\u6587\u4ef6\u5185\u5bb9\uff0c\u73b0\u5df2\u4e0d\u4f7f\u7528\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4ece\u8868\u7ed3\u6784\u53ef\u4ee5\u770b\u51fa\uff0c\u6211\u4eec\u5f97\u5230\u4e86\u67d0\u4e00\u4e2a\u6587\u4ef6\u4fe1\u606f\u7684imagefileid\uff0c\u5c31\u53ef\u4ee5\u4ece\u8be5\u8868\u4e2d\u5f97\u5230\u76f8\u5e94\u7684\u6587\u4ef6\u540d\u79f0\uff08\u8fd9\u91cc\u6307\u6587\u4ef6\u7684\u5b9e\u9645\u540d\u79f0\uff0c\u6bd4\u5982test.doc\uff09, \u6587\u4ef6MIME\u7c7b\u578b(\u6bd4\u5982 txt\uff0cdoc\uff0cgif\u7b49) \uff0c\u6587\u4ef6\u5b58\u653e\u76ee\u5f55\uff08\u8fd9\u91cc\u6307\u5728\u670d\u52a1\u5668\u4e2d\u5b58\u653e\u7684\u5b9e\u9645\u8def\u5f84\u4fe1\u606f\uff0c\u5305\u62ec\u5b9e\u9645\u5b58\u653e\u7684\u6587\u4ef6\u540d\u79f0\uff0c\u6bd4\u5982 e:\\ecologyfilesystem\\2003\\08\\A\\23143567.zip\uff09\u3002\u901a\u8fc7\u8fd9\u4e9b\u4fe1\u606f\uff0c\u53ef\u4ee5\u5bf9\u6587\u4ef6\u8fdb\u884c\u64cd\u4f5c\uff0c\u5f53\u7136weaver.file.FileUpload \u8fd8\u63d0\u4f9b\u4e86\u5176\u5b83\u5f88\u591a\u65b9\u6cd5\u6765\u83b7\u53d6\u6587\u4ef6\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u4e0d\u9700\u8981\u901a\u8fc7\u6570\u636e\u8868\u7684\u67e5\u8be2\u5c31\u80fd\u5f97\u5230\u8fd9\u4e9b\u4fe1\u606f\u3002\u5b58\u653e\u5728\u6570\u636e\u8868\u4e2d\u7684\u4fe1\u606f\u53ea\u662f\u4f9b\u4eca\u540e\u6587\u4ef6\u5904\u7406\u7684\u65f6\u5019\u4f7f\u7528\uff01<\/p>\n<p>\u4e0a\u4f20\u6587\u4ef6\u7684\u4f8b\u5b50\uff1a<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u8981\u521b\u5efa\u4e00\u4e2a\u63d0\u4ea4\u6570\u636e\u7684\u9875\u9762\uff0c\u53ef\u4ee5\u662fjsp \u7684\u9875\u9762\uff0c\u4e5f\u53ef\u4ee5\u662fhtml \u7684\u9875\u9762\uff0c\u6211\u4eec\u5c06\u6570\u636e\u63d0\u4ea4\u7ed9 weaver.test.MutiFileUpload \u7684servlet \u7c7b\u6765\u5904\u7406\uff1a<\/p>\n<p>&lt;HTML&gt;<\/p>\n<p>&lt;HEAD&gt;<\/p>\n<p>&lt;TITLE&gt;\u6587\u4ef6\u4e0a\u4f20&lt;\/TITLE&gt;<\/p>\n<p>&lt;\/HEAD&gt;<\/p>\n<p>&lt;BODY&gt;<\/p>\n<p>&lt;P&gt;\u8fd9\u662f\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20\u7684\u4f8b\u5b50&lt;\/P&gt;<\/p>\n<p>&lt;FORM id=weaver name=weaver action=&#8221;\/weaver\/weaver.test.MutiFileUpload&#8221; method=post enctype=&#8221;multipart\/form-data&#8221;&gt;&lt;!\u2014\u6ce8\u610f\uff0c\u8fd9\u91cc\u9700\u8981\u7528enctype=&#8221;multipart\/form-data&#8221; \u8868\u660e\u4f7f\u7528multipart\/form-data \u534f\u8bae &#8211;&gt;<\/p>\n<p>&lt;input type=&#8221;text&#8221; size=&#8221;70&#8243; name=&#8221;filedesc&#8221;&gt;<\/p>\n<p>&lt;input type=&#8221;file&#8221; size=&#8221;70&#8243; name=&#8221;accessory1&#8243;&gt;<\/p>\n<p>&lt;input type=&#8221;file&#8221; size=&#8221;70&#8243; name=&#8221;accessory2&#8243;&gt;<\/p>\n<p>&lt;input type=&#8221;submit&#8221; name=&#8221;\u63d0\u4ea4&#8221;&gt;<\/p>\n<p>&lt;\/FORM&gt;<\/p>\n<p>&lt;\/BODY&gt;<\/p>\n<p>&lt;\/HTML&gt;<\/p>\n<p>\u5c06\u4e0a\u9762\u8fd9\u6bb5\u4ee3\u7801\u4fdd\u5b58\u4e3a\u4e00\u4e2ahtml \u6587\u4ef6FileUploadTest.htm\uff0c\u653e\u5728ecology\u8fd0\u884c\u76ee\u5f55\u4e0b\u7684\/test\/\u76ee\u5f55\u4e0b\u3002\u5728\u8fd9\u4e2a\u9875\u9762\u4e2d\uff0c\u6709\u4e00\u4e2a\u8f93\u5165\u6846\u548c\u4e24\u4e2a\u6587\u4ef6\u6846\u53ef\u4ee5\u8f93\u5165\u4fe1\u606f\u3002\u6ce8\u610f\uff0c\u5728\u73af\u5883\u7684\u914d\u7f6e\u4e2d\uff0c\u9700\u8981\u544a\u8bc9web\u670d\u52a1\u5668\u5c06 \/weaver\/ \u7684\u8bf7\u6c42\u8f6c\u7ed9\u5e94\u7528\u670d\u52a1\u5668\u4f5c\u4e3aservlet\u5904\u7406\uff0c\u5173\u4e8e\u914d\u7f6e\u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u8003Apache \u548cResin\u7684\u914d\u7f6e\u6587\u6863\u3002<\/p>\n<p>\u4e0b\u9762\u6211\u4eec\u6765\u7f16\u5199weaver.test.MutiFileUpload<\/p>\n<p>package weaver.test;<\/p>\n<p>\/**<\/p>\n<p>* Title: \u591a\u6587\u4ef6\u4e0a\u4f20\u5904\u7406\u7c7b<\/p>\n<p>* Description: \u591a\u6587\u4ef6\u4e0a\u4f20\u6d4b\u8bd5<\/p>\n<p>* Copyright: Copyright (c) 2001<\/p>\n<p>* Company: weaver<\/p>\n<p>* @author liuyu<\/p>\n<p>* @version 1.0<\/p>\n<p>*\/<\/p>\n<p>import javax.servlet.http.HttpServletRequest;<\/p>\n<p>import weaver.general.DynamicServlet;<\/p>\n<p>import weaver.file. FileUpload;<\/p>\n<p>public class MutiFileUpload extends DynamicServlet {<\/p>\n<p>public void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<\/p>\n<p>&nbsp;<\/p>\n<p>FileUpload fu = new FileUpload(request) ;<\/p>\n<p>String fileDesc = fu.getParameter(&#8220;filedesc&#8221;) ; \/* 1*\/<\/p>\n<p>String[] fileFieldNames = {&#8221; accessory1&#8243;,&#8221; accessory2&#8243;} ;<\/p>\n<p>String[] fileIds = fu.uploadFiles(fileFieldNames) ; \/*2*\/<\/p>\n<p>String[] fileNames = fu.getFileNames() ; \/*3*\/<\/p>\n<p>\/\/ \u5c06\u8bf7\u6c42\u4fe1\u606f\u8bb0\u5165\u65e5\u5fd7\u6587\u4ef6<\/p>\n<p>writeLog(&#8220;fileDesc is &#8220;+ fileDesc) ;<\/p>\n<p>for (int i=0; i&lt; fileIds.length; i++) {<\/p>\n<p>String fileId = fileIds[i] ;<\/p>\n<p>If(fileId == null) continue ;<\/p>\n<p>String fileName = fileNames[i] ;<\/p>\n<p>&nbsp;<\/p>\n<p>writeLog(&#8220;fileId is &#8220;+ fileId) ;<\/p>\n<p>writeLog(&#8220;fileName is &#8220;+ fileName) ;<\/p>\n<p>}<\/p>\n<p>response.sendRedirect(&#8220;\/test\/FileUploadTest.htm&#8221;);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u4ee5\u4e0a\u4ee3\u7801\u9700\u8981\u6ce8\u610f\u7684\u51e0\u4e2a\u5730\u65b9\uff1a<\/p>\n<p>\u6ce8\u91ca1\uff1a\u7531\u4e8e\u4f7f\u7528\u4e86multipart\/form-data\u534f\u8bae\uff0c \u8fd9\u91cc\u83b7\u53d6\u8bf7\u6c42\u4e2d\u7684\u4fe1\u606f\u5fc5\u987b\u4f7f\u7528fu. getParameter() \u65b9\u6cd5\uff0c\u800c\u4e0d\u80fd\u4f7f\u7528 request.getParameter() \u65b9\u6cd5\uff0c\u5426\u5219\u4e0d\u80fd\u5f97\u5230filedesc\u7684\u503c\uff01<\/p>\n<p>\u6ce8\u91ca2\uff1a\u4f7f\u7528uploadFiles\u65b9\u6cd5\u4e0a\u4f20accessory1\u548caccessory2\u4e2d\u7684\u6587\u4ef6\uff0c\u540c\u65f6\u8fd4\u56de\u4fdd\u5b58\u5728ImageFile \u8868\u4e2d\u7684\u6587\u4ef6\u57fa\u672c\u4fe1\u606f\u7684\u952e\u503cimagefileid\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2aimagefileid\u8bb0\u5f55\u5230\u5176\u5b83\u5730\u65b9\u4ee5\u4fbf\u4eca\u540e\u8c03\u7528\u3002<\/p>\n<p>\u6ce8\u91ca3\uff1a\u4f7f\u7528getFileNames\u65b9\u6cd5\u83b7\u53d6\u4e0a\u4f20\u6587\u4ef6\u7684\u771f\u5b9e\u540d\u79f0\uff08\u5305\u62ec\u540e\u7f00\u540d\uff09<\/p>\n<p>\u5c06\u4ee3\u7801\u4fdd\u5b58\u5230 \/src\/weaver\/test\/MutiFileUpload.java \u6587\u4ef6\u4e2d\u3002\u8bbf\u95eeFileUploadTest.htm \u6765\u6d4b\u8bd5\u4e00\u4e0b\uff0c\u770b\u770b\u65e5\u5fd7\u6587\u4ef6\u4e2d\u7684\u8bb0\u5f55\u662f\u5426\u6b63\u786e\u3002\u9875\u9762\u63d0\u4ea4\uff0c\u6587\u4ef6\u4e0a\u4f20\u5b8c\u6bd5\u540e\u5c06\u518d\u6b21\u8fd4\u56deFileUploadTest.htm\u9875\u9762\u3002\u4f60\u53ef\u4ee5\u67e5\u770bImageFile\u8868\u6765\u68c0\u67e5\u6587\u4ef6\u7684\u5177\u4f53\u5b58\u653e\u4f4d\u7f6e\u7b49\u4fe1\u606f\u3002<\/p>\n<p>\u6587\u4ef6\u7684\u5b58\u653e\u4f4d\u7f6e\u5728\u7cfb\u7edf\u8bbe\u7f6e\u6a21\u5757\u4e2d\u8bbe\u7f6e\uff0c\u5982\u679c\u6ca1\u6709\u8bbe\u7f6e\uff0c\u5c06\u5b58\u653e\u5728\u7cfb\u7edf\u8fd0\u884c\u76ee\u5f55\u4e0b\u7684 filesystem \u76ee\u5f55\u4e0b\u3002<\/p>\n<h2><a id=\"post-1623-_Toc214887618\"><\/a>\u5982\u4f55\u8bbf\u95ee\u5df2\u7ecf\u4e0a\u4f20\u7684\u6587\u4ef6<\/h2>\n<p>\u5728jsp\u9875\u9762\u6216\u8005html\u9875\u9762\u4e2d\u8bbf\u95ee\u5df2\u7ecf\u4e0a\u4f20\u7684\u6587\u4ef6\u975e\u5e38\u7b80\u5355\uff0c\u53ea\u9700\u8981\u8c03\u7528weaver.file.FileDownload\u7c7b\uff0c\u5e76\u4f20\u9012\u9700\u8981\u8bbf\u95ee\u7684\u6587\u4ef6id \uff0c\u8fd9\u4e2a\u6587\u4ef6id\uff0c\u5c31\u662f\u5728\u6587\u4ef6\u4e0a\u4f20\u4e2d\u8fd4\u56de\u7684 imagefileid\u3002<\/p>\n<p>\u8bbf\u95ee\u4e0a\u4f20\u7684\u6587\u4ef6\u6709\u4e24\u79cd\u65b9\u5f0f\uff0c\u4e00\u79cd\u662f\u975e\u4e0b\u8f7d\u65b9\u5f0f\uff0c\u8fd9\u79cd\u65b9\u5f0f\u5982\u679c\u6d4f\u89c8\u5668\u80fd\u591f\u663e\u793a\u8bbf\u95ee\u7684\u6587\u4ef6\u7c7b\u578b\uff0c\u90a3\u4e48\u5c31\u4f1a\u5728\u6d4f\u89c8\u5668\u4e2d\u76f4\u63a5\u663e\u793a\u3002\u53e6\u4e00\u79cd\u662f\u4e0b\u8f7d\u65b9\u5f0f\uff0c\u65e0\u8bba\u8bbf\u95ee\u7684\u6587\u4ef6\u662f\u4ec0\u4e48\u7c7b\u578b\uff0c\u90fd\u4f7f\u7528\u5f39\u51fa\u4e0b\u8f7d\u7a97\u53e3\u7684\u5f62\u5f0f\u4e0b\u8f7d\u3002<\/p>\n<p>\u5bf9\u975e\u4e0b\u8f7d\u65b9\u5f0f\u7684\u94fe\u63a5\u8bbf\u95ee<\/p>\n<p>&lt;A href= &#8220;\/weaver\/weaver.file.FileDownload?fileid=&lt;%=fileid%&gt;&#8221;&gt;\u6587\u4ef61&lt;\/A&gt;<\/p>\n<p>\u5bf9\u4e0b\u8f7d\u65b9\u5f0f\u7684\u94fe\u63a5\u8bbf\u95ee<\/p>\n<p>&lt;A href= &#8220;\/weaver\/weaver.file.FileDownload?fileid=&lt;%=fileid%&gt;&amp;download=1&#8243;&gt;\u6587\u4ef61&lt;\/A&gt;<\/p>\n<p>\u5982\u679c\u77e5\u9053\u8981\u8bbf\u95ee\u7684\u6587\u4ef6\u662f\u56fe\u7247\uff0c\u5e76\u9700\u8981\u5728\u6d4f\u89c8\u9875\u9762\u4e2d\u76f4\u63a5\u663e\u793a\u8fd9\u4e2a\u56fe\u7247\uff0c\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u4ee3\u7801\u8bbf\u95ee<\/p>\n<p>&lt;IMG SRC=&#8221;\/weaver\/weaver.file.FileDownload?fileid=&lt;%=fileid%&gt;&#8221;&gt;<\/p>\n<p>\u5f53\u7136\u5982\u679c\u5bf9\u4e8e\u5bf9\u5e94\u7684\u6587\u6863\uff0c\u4f60\u6ca1\u6709\u6743\u9650\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5730\u5740\u4f1a\u8ba9\u4f60\u8fd4\u56de\u5230\u767b\u5f55\u9875\u9762<\/p>\n<h2><a id=\"post-1623-_Toc214887619\"><\/a>\u5982\u4f55\u901a\u8fc7EXCEL\u5bfc\u5165\u6570\u636e<\/h2>\n<p>\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7EXCEL\u5bfc\u5165\u4e00\u4e9b\u6570\u636e\u5b9e\u73b0\u7cfb\u7edf\u7684\u521d\u59cb\u5316\uff0c\u5bfc\u5165\u4e00\u4e2aEXCEL\u9700\u8981\u7528\u5230weaver.file. ExcelParse\uff0c\u5728ECOLOGY\u4e2d\u5bfc\u5165\u4e00\u4e2aEXCEL\u5f88\u7b80\u5355\uff0cweaver.file. ExcelParse\u8fdb\u884c\u4e86\u5c01\u88c5\uff0c\u901a\u8fc7\u8c03\u7528\u5176\u4e2d\u7684\u65b9\u6cd5\uff1ainit(String filename)\u548cgetValue(String sheetname , String rownum , String columnnum)\u5c31\u53ef\u4ee5\u5b9e\u73b0<\/p>\n<p>\u5b9e\u4f8b<\/p>\n<p>&lt;HTML&gt;<\/p>\n<p>&lt;HEAD&gt;<\/p>\n<p>&lt;TITLE&gt;EXCEL\u5bfc\u5165&lt;\/TITLE&gt;<\/p>\n<p>&lt;\/HEAD&gt;<\/p>\n<p>&lt;BODY&gt;<\/p>\n<p>&lt;P&gt;\u8fd9\u662f\u4e00\u4e2aEXCEL\u5bfc\u5165\u7684\u4f8b\u5b50&lt;\/P&gt;<\/p>\n<p>&lt;FORM id=weaver name=weaver action=&#8221;export.jsp&#8221; method=post enctype=&#8221;multipart\/form-data&#8221;&gt;&lt;!\u2014\u6ce8\u610f\uff0c\u8fd9\u91cc\u9700\u8981\u7528enctype=&#8221;multipart\/form-data&#8221; \u8868\u660e\u4f7f\u7528multipart\/form-data \u534f\u8bae &#8211;&gt;<\/p>\n<p>&lt;input type=&#8221;text&#8221; size=&#8221;70&#8243; name=&#8221;filedesc&#8221;&gt;<\/p>\n<p>&lt;input type=&#8221;file&#8221; size=&#8221;70&#8243; name=&#8221;accessory1&#8243;&gt;<\/p>\n<p>&lt;input type=&#8221;file&#8221; size=&#8221;70&#8243; name=&#8221;accessory2&#8243;&gt;<\/p>\n<p>&lt;input type=&#8221;submit&#8221; name=&#8221;\u63d0\u4ea4&#8221;&gt;<\/p>\n<p>&lt;\/FORM&gt;<\/p>\n<p>&lt;\/BODY&gt;<\/p>\n<p>&lt;\/HTML&gt;<\/p>\n<p>\u4e0b\u9762\u662fexport.jsp\u7684\u4f8b\u5b50<\/p>\n<p>&lt;%@ page import=&#8221;weaver.general.Util,weaver.file.*,java.util.*&#8221; %&gt;<\/p>\n<p>&lt;jsp:useBean id=&#8221;ExcelParse&#8221; class=&#8221;weaver.file.ExcelParse&#8221; scope=&#8221;page&#8221; \/&gt;<\/p>\n<p>FileUploadToPath fu = new FileUploadToPath(request) ; \/\/ \u4e0a\u4f20EXCEL\u6587\u4ef6<\/p>\n<p>String filename = fu.uploadFiles(&#8220;excelfile&#8221;) ; \/\/\u83b7\u53d6EXCEL\u8def\u5f84<\/p>\n<p>ExcelParse.init( filename ) ; \/\/\u8fdb\u884cEXCEL\u6587\u4ef6\u521d\u59cb\u5316<\/p>\n<p>int recordercount = 0 ;<\/p>\n<p>while( true ) {<\/p>\n<p>recordercount ++ ;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/\u4ee5\u4e0b\u4e00\u884c\u4e00\u884c\u6309\u5217\u8bfb\u53d6EXCEL\u4e2d\u7684\u6570\u636egetValue\u65b9\u6cd5\u4e2d\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e0d\u8981\u53d8\u5316\uff0c\u56fa\u5b9a\u4e3a1\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u884c\u53f7\uff0c\u7b2c\u4e09\u4e2a\u53c2\u6570\u662f\u5217\u53f7<\/p>\n<p>String workcode = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;1&#8221; ) ).trim() ;<\/p>\n<p>String lastname = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;2&#8221; ) ).trim() ;<\/p>\n<p>String sex = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;3&#8221; ) ).trim() ;<\/p>\n<p>String department = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;4&#8221; ) ).trim() ;<\/p>\n<p>String subcompany = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;5&#8221; ) ).trim() ;<\/p>\n<p>String jobtitle = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;6&#8221; ) ).trim() ;<\/p>\n<p>String manager = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;7&#8221; ) ).trim() ;<\/p>\n<p>String status = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;8&#8221; ) ).trim() ;<\/p>\n<p>String location = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;9&#8221; ) ).trim() ;<\/p>\n<p>String loginid = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;10&#8221; ) ).trim() ;<\/p>\n<p>String password = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;11&#8221; ) ).trim() ;<\/p>\n<p>String seclevel = Util.null2String( ExcelParse.getValue(&#8220;1&#8221;, &#8220;&#8221;+recordercount , &#8220;12&#8221; ) ).trim() ;<\/p>\n<p>&nbsp;<\/p>\n<p>if( recordercount == 1 ) continue ; \/\/\u7b2c\u4e00\u884c\u4e3a\u6807\u9898\uff0c\u4e00\u822c\u4e0d\u5904\u7406<\/p>\n<p>if( lastname.equals(&#8220;&#8221;) ) break ; \/\/\u8868\u793a\u5df2\u7ecf\u662f\u6700\u540e\u4e00\u884c\uff0c\u5904\u7406\u7ed3\u675f<\/p>\n<p>\u5bfc\u5165\u6570\u636e\u4e1a\u52a1\u5904\u7406\u8fc7\u7a0b\u2026\u2026\u2026.<\/p>\n<p>}<\/p>\n<p>\/\/\u4ee5\u4e0a\u53d6\u51faEXCEL\u6587\u4ef6\u4e2d<\/p>\n<h2>\u5bfc\u51faEXCEL\u6587\u4ef6<\/h2>\n<p>\u5728\u5b9e\u9645\u5e94\u7528\u5728\u6211\u4eec\u5e38\u5e38\u4f1a\u628a\u4e00\u4e9b\u7cfb\u7edf\u7edf\u8ba1\u6570\u636e\u5bfc\u51fa\u6210EXCEL\u4f9b\u8fdb\u4e00\u6b65\u7684\u5206\u6790\uff0c\u5728ECOLOGY\u7cfb\u7edf\u4e2d\u63d0\u4f9b\u4e86\u5bfc\u51faEXCEL\u6587\u4ef6\u7684\u65b9\u6cd5\uff0cweaver.file.ExcelFile\uff0cweaver.file.ExcelOut\uff0cweaver.file. ExcelSheet\uff0cweaver.file. ExcelRow\u8fdb\u884c\u4e86\u5c01\u88c5<\/p>\n<p>\u5b9e\u4f8b<\/p>\n<p>ExportExcelTest.jsp<\/p>\n<p>&lt;%@ page language=&#8221;java&#8221; contentType=&#8221;text\/html; charset=GBK&#8221; %&gt;<\/p>\n<p>&lt;%@ page import=&#8221;weaver.file.*,&#8221; %&gt;<\/p>\n<p>&lt;jsp:useBean id=&#8221;ExcelFile&#8221; class=&#8221;weaver.file.ExcelFile&#8221; scope=&#8221;session&#8221;\/&gt;<\/p>\n<p>&lt;iframe id=&#8221;ExcelOut&#8221; name=&#8221;ExcelOut&#8221; border=0 frameborder=no noresize=NORESIZE height=&#8221;0%&#8221; width=&#8221;0%&#8221;&gt;&lt;\/iframe&gt;<\/p>\n<p>&lt;%<\/p>\n<p>ExcelSheet es = new ExcelSheet() ; \/\/ \u521d\u59cb\u5316\u4e00\u4e2aEXCEL\u7684sheet\u5bf9\u8c61<\/p>\n<p>ExcelRow er = es.newExcelRow () ; \/\/\u51c6\u5907\u65b0\u589eEXCEL\u4e2d\u7684\u4e00\u884c<\/p>\n<p>\/\/\u4ee5\u4e0b\u4e3aEXCEL\u6dfb\u52a0\u591a\u4e2a\u5217<\/p>\n<p>er.addStringValue(\u201cEXCEL\u7b2c1\u5217\u7684\u503c\u201d) ;<\/p>\n<p>er.addStringValue(\u201cEXCEL\u7b2c2\u5217\u7684\u503c\u201d) ;<\/p>\n<p>\u2026\u2026\u2026.<\/p>\n<p>er.addStringValue(\u201cEXCEL\u7b2cn\u5217\u7684\u503c\u201d) ;<\/p>\n<p>es.addExcelRow(er) ; \/\/\u52a0\u5165\u4e00\u884c<\/p>\n<p>ExcelFile.init() ;<\/p>\n<p>ExcelFile.setFilename(\u201c\u5bfc\u51faEXCEL\u6587\u4ef6\u7684\u540d\u5b57\u201d) ;<\/p>\n<p>ExcelFile.addSheet(\u201csheet\u7684\u540d\u5b57\u201d, es) ; \/\/\u4e3aEXCEL\u6587\u4ef6\u63d2\u5165\u4e00\u4e2aSHEET<\/p>\n<p>%&gt;<\/p>\n<p>&lt;a href=\u201d\/weaver\/weaver.file.ExcelOut\u201d&gt;\u5bfc\u51faEXCEL\u6587\u4ef6&lt;\/a&gt;<\/p>\n<h2>\u5982\u4f55\u4f7f\u7528\u7f13\u5b58\u63d0\u9ad8\u7cfb\u7edf\u6548\u7387<\/h2>\n<p>\u5bf9\u4e8e\u4e00\u4e9b\u5e38\u7528\u7684\u4fe1\u606f\uff0c\u6bd4\u5982\u4eba\u5458\u7684\u540d\u79f0\uff0c\u5982\u679c\u6bcf\u6b21\u8bbf\u95ee\u7684\u65f6\u5019\u90fd\u67e5\u8be2\u6570\u636e\u5e93\u6765\u83b7\u53d6\uff0c\u5c06\u6781\u5927\u7684\u5f71\u54cd\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u6211\u4eec\u53ef\u4ee5\u5c06\u8fd9\u4e9b\u4fe1\u606f\u653e\u5230\u7cfb\u7edf\u7684\u7f13\u5b58\u4e2d\uff0c\u5728\u7528\u5230\u7684\u65f6\u5019\uff0c\u4ece\u7cfb\u7edf\u7f13\u5b58\u4e2d\u83b7\u53d6\u3002\uff08\u4f7f\u7528\u7f13\u5b58\u662f\u5178\u578b\u7684\u7528\u7a7a\u95f4\u6362\u65f6\u95f4\u7684\u7cfb\u7edf\u4f18\u5316\u65b9\u5f0f\uff09<\/p>\n<p>\u7cfb\u7edf\u63d0\u4f9b\u4e86 weaver.general.StaticObj \u7c7b\u6765\u4fdd\u5b58\u8fd9\u4e9b\u4fe1\u606f\u3002weaver.general.StaticObj \u7c7b\u4f7f\u7528 HashTable \u6765\u7ba1\u7406\u7f13\u5b58\u4fe1\u606f\uff0c\u5176\u4e3b\u8981\u7684\u65b9\u6cd5\u5982\u4e0b\uff1a<\/p>\n<p>StaticObj\u5c06\u6570\u636e\u5e93\u4e2d\u5e38\u7528\u7684\u6570\u636e\u653e\u5165\u7f13\u5b58\u4e2d\uff0c\u4ee5\u52a0\u5feb\u7cfb\u7edf\u7684\u53cd\u5e94\u901f\u5ea6\u3002\u5ba2\u6237\u7a0b\u5e8f\u53ef\u4ee5\u8c03\u7528getInstance()\u65b9\u6cd5\u8bbf\u95ee\u672c\u7c7b\u7684\u552f\u4e00\u5b9e\u4f8b\u3002<\/p>\n<p>StaticObj\u6709\u4e24\u5c42\u7f13\u5b58\uff0c\u5206\u522b\u4e3a mainKey &#8211; value \u548c mainKey &#8211; subkey \u2013 value\uff0c\u7531 mainKey \u53ef\u4ee5\u53d6\u5f97\u7b2c\u4e00\u5c42\u7684\u5bf9\u8c61\uff0c\u7531 mainKey &#8211; subkey \u53ef\u4ee5\u53d6\u5f97\u7b2c\u4e8c\u5c42\u7684\u503c\uff0c\u5728\u7b2c\u4e8c\u5c42\u7684\u503c\u5b58\u5728\u7684\u60c5\u51b5\u4e0b\uff0c\u7b2c\u4e00\u5c42\u7684\u503c\u4e3a Hashtable\u3002<\/p>\n<p>\/**<\/p>\n<p>* \u8fd4\u56de\u552f\u4e00\u5b9e\u4f8b.\u5982\u679c\u662f\u7b2c\u4e00\u6b21\u8c03\u7528\u6b64\u65b9\u6cd5,\u5219\u521b\u5efa\u5b9e\u4f8b<\/p>\n<p>*<\/p>\n<p>* @return StaticObj \u552f\u4e00\u5b9e\u4f8b<\/p>\n<p>*\/<\/p>\n<p>public static StaticObj getInstance()<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6 mainKey \u5bf9\u5e94\u7684\u7b2c\u4e00\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param key \u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @return Object \u5bf9\u4e8e\u7684\u7b2c\u4e00\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*\/<\/p>\n<p>public Object getObject(String key)<\/p>\n<p>\/**<\/p>\n<p>* \u8bbe\u7f6e mainKey \u5bf9\u5e94\u7684\u7b2c\u4e00\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param key \u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @param obj mainKey \u5bf9\u5e94\u7684\u7b2c\u4e00\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*\/<\/p>\n<p>public void putObject(String key, Object obj)<\/p>\n<p>\/**<\/p>\n<p>* \u4ece\u7f13\u5b58\u4e2d\u6e05\u9664 mainKey \u5bf9\u5e94\u7684\u7b2c\u4e00\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param key \u4e3b\u952e\u540d\u79f0<\/p>\n<p>*\/<\/p>\n<p>public void removeObject(String key)<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6 mainKey &#8211; subkey \u5bf9\u5e94\u7684\u7b2c\u4e8c\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param HashKey \u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @param RecKey \u5b50\u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @return Object \u5bf9\u4e8e\u7684\u7b2c\u4e8c\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*\/<\/p>\n<p>public Object getRecordFromObj (String HashKey, String RecKey)<\/p>\n<p>\/**<\/p>\n<p>* \u8bbe\u7f6e mainKey &#8211; subkey \u5bf9\u5e94\u7684\u7b2c\u4e8c\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param HashKey \u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @param RecKey \u5b50\u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @param obj mainKey &#8211; subkey\u5bf9\u4e8e\u7684\u7b2c\u4e8c\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*\/<\/p>\n<p>public void putRecordToObj (String HashKey, String RecKey, Object obj)<\/p>\n<p>\/**<\/p>\n<p>* \u4ece\u7f13\u5b58\u4e2d\u6e05\u9664 mainKey &#8211; subkey \u5bf9\u5e94\u7684\u7b2c\u4e8c\u5c42\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>* @param HashKey \u4e3b\u952e\u540d\u79f0<\/p>\n<p>* @param RecKey \u5b50\u4e3b\u952e\u540d\u79f0<\/p>\n<p>*\/<\/p>\n<p>public void removeRecordFromObj (String HashKey, String RecKey)<\/p>\n<p>\/**<\/p>\n<p>* \u4ece\u7f13\u5b58\u4e2d\u6e05\u9664 \u6240\u6709\u5bf9\u8c61\u503c<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public void clearRecord()<\/p>\n<p>\u8fd0\u7528\u8fd9\u4e9b\u65b9\u6cd5\uff0c\u6211\u4eec\u53ef\u4ee5\u6784\u9020\u6240\u9700\u8981\u7684\u7f13\u5b58\u7c7b\uff0c\u4f7f\u7528\u8fd9\u4e9b\u7f13\u5b58\u7c7b\u6765\u5bf9\u5176\u5b83\u6a21\u5757\u548c\u529f\u80fd\u63d0\u4f9b\u7f13\u5b58\u4fe1\u606f\u7684\u63a5\u53e3\uff0c\u8fd9\u4e9b\u7f13\u5b58\u7c7b\u5728\u7cfb\u7edf\u4e2d\u7684\u547d\u540d\u4e3a XXXComInfo\uff0c\u5176\u4e2dXXX\u4e3a\u76f8\u5e94\u7f13\u5b58\u4fe1\u606f\u7684\u540d\u79f0\u3002\u53c2\u8003\u5982\u4e0b\u7684\u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u7c7b\uff1aweaver.hrm.resource.ResourceComInfo\u3002<\/p>\n<p>ResourceComInfo \u7c7b\u4e3b\u8981\u63d0\u4f9b\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u4e2d\u5e38\u7528\u7684\u4e00\u4e9b\u4fe1\u606f\u7684\u7f13\u5b58\uff0c\u6bd4\u5982\u4eba\u5458\u540d\u79f0\uff0c\u6240\u5728\u90e8\u95e8\u3002\u5bf9\u4e8e\u8fd9\u4e9b\u4fe1\u606f\uff0c\u90fd\u9700\u8981\u4e00\u4e2a\u952e\u503c\u3002\u5e38\u89c1\u7684\u952e\u503c\u662f\u8fd9\u4e9b\u4fe1\u606f\u5728\u6570\u636e\u5e93\u8868\u4e2d\u7684Primary Key\uff0c\u6bd4\u5982\u4eba\u529b\u8d44\u6e90ID\uff0c\u5176\u5b83\u6a21\u5757\u548c\u529f\u80fd\u5728\u5173\u8054\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u65f6\u5019\uff0c\u53ea\u8bb0\u5f55\u4eba\u529b\u8d44\u6e90\u7684ID\uff0c\u5f53\u9700\u8981\u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u7684\u5176\u5b83\u4fe1\u606f\uff0c\u5982\u4eba\u5458\u540d\u79f0\uff0c\u6240\u5728\u90e8\u95e8\u7684\u65f6\u5019\uff0c\u4eceResourceComInfo\u7c7b\u63d0\u4f9b\u7684\u7edf\u4e00\u63a5\u53e3\u4e2d\u83b7\u53d6\u3002<\/p>\n<p>weaver.hrm.resource.ResourceComInfo \u7684\u4ee3\u7801\uff1a<\/p>\n<p>package weaver.hrm.resource;<\/p>\n<p>import java.util.*;<\/p>\n<p>import weaver.conn.*;<\/p>\n<p>import weaver.general.*;<\/p>\n<p>\/**<\/p>\n<p>* Title: \u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u4fe1\u606f\u63a5\u53e3\u7c7b<\/p>\n<p>* Description: \u5bf9\u5176\u5b83\u6a21\u5757\u548c\u529f\u80fd\u63d0\u4f9b\u7edf\u4e00\u7684\u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u63a5\u53e3<\/p>\n<p>* Copyright: Copyright (c) 2002<\/p>\n<p>* Company: weaver<\/p>\n<p>* @author liuyu<\/p>\n<p>* @version 1.0<\/p>\n<p>*\/<\/p>\n<p>public class ResourceComInfo extends BaseBean {<\/p>\n<p>\/* 1 *\/<\/p>\n<p>private ArrayList ids = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u952e\u503c ID \u961f\u5217<\/p>\n<p>private ArrayList loginids = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u767b\u5f55\u540d \u961f\u5217<\/p>\n<p>private ArrayList lastnames = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u540d\u79f0 \u961f\u5217<\/p>\n<p>private ArrayList departmentids = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u90e8\u95e8 \u961f\u5217<\/p>\n<p>private ArrayList seclevels = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u5b89\u5168\u7ea7\u522b \u961f\u5217<\/p>\n<p>private ArrayList statuses = null; \/\/ \u4fdd\u5b58\u4eba\u529b\u8d44\u6e90\u72b6\u6001 \u961f\u5217<\/p>\n<p>&nbsp;<\/p>\n<p>private StaticObj staticobj = null; \/\/ \u516c\u5171\u7f13\u5b58\u7c7b<\/p>\n<p>\/* 2 *\/<\/p>\n<p>private int current_index = -1; \/\/ \u5f53\u524d\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u6307\u9488<\/p>\n<p>private int array_size = 0; \/\/ \u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u6570\u91cf<\/p>\n<p>&nbsp;<\/p>\n<p>\/**<\/p>\n<p>* \u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u4fe1\u606f\u63a5\u53e3\u7c7b\u6784\u9020\u65b9\u6cd5<\/p>\n<p>* \u6784\u9020\u65b9\u6cd5\u4e2d\u5c06\u83b7\u53d6\u516c\u5171\u7f13\u5b58\u7c7b\u7684\u552f\u4e00\u5b9e\u4f8b\uff0c\u5e76\u8c03\u7528getResourceInfo \u65b9\u6cd5\u83b7\u53d6\u7f13\u5b58\u4fe1\u606f\uff0c<\/p>\n<p>* \u540c\u65f6\u8d4b\u503c\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u6570\u91cf<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public ResourceComInfo() throws Exception{<\/p>\n<p>staticobj = StaticObj.getInstance();<\/p>\n<p>getResourceInfo() ;<\/p>\n<p>array_size = ids.size();<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u4fe1\u606f\u65b9\u6cd5<\/p>\n<p>* \u68c0\u67e5\u662f\u5426\u6709\u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u4fe1\u606f\uff0c\u5982\u679c\u6ca1\u6709\uff0c\u5c06\u8c03\u7528setResourceInfo \u65b9\u6cd5\u4ece\u6570\u636e\u5e93\u4e2d\u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u5e76\u653e\u5165\u7f13\u5b58\u4e2d<\/p>\n<p>* \u5c06\u7f13\u5b58\u4e2d\u7684\u4fe1\u606f\u8d4b\u4e88\u76f8\u5e94\u7684\u961f\u5217<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>private void getResourceInfo() throws Exception{<\/p>\n<p>\/* 3 *\/<\/p>\n<p>if(staticobj.getObject(&#8220;ResourceInfo&#8221;) == null)<\/p>\n<p>setResourceInfo();<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ \u5c06\u7f13\u5b58\u4e2d\u7684\u4fe1\u606f\u8d4b\u4e88\u76f8\u5e94\u7684\u961f\u5217<\/p>\n<p>ids = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;ids&#8221;));<\/p>\n<p>loginids = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;loginids&#8221;));<\/p>\n<p>lastnames = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;lastnames&#8221;));<\/p>\n<p>departmentids = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;departmentids&#8221;));<\/p>\n<p>seclevels = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;seclevels&#8221;));<\/p>\n<p>statuses = (ArrayList)(staticobj.getRecordFromObj(&#8220;ResourceInfo&#8221;, &#8220;statuses&#8221;));<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u4ece\u6570\u636e\u5e93\u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u5e76\u653e\u5165\u7f13\u5b58\u65b9\u6cd5<\/p>\n<p>* \u4ece\u6570\u636e\u5e93\u83b7\u53d6\u6240\u9700\u8981\u7684\u4eba\u529b\u8d44\u6e90\u4fe1\u606f \uff08\u8be5\u7c7b\u6240\u63d0\u4f9b\u7684\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\uff09<\/p>\n<p>* \u5c06\u83b7\u53d6\u7684\u4fe1\u606f\u653e\u5165\u7f13\u5b58\u4e2d<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>private void setResourceInfo() throws Exception{<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ \u751f\u6210\u961f\u5217\u5b9e\u4f8b<\/p>\n<p>ids = new ArrayList();<\/p>\n<p>loginids = new ArrayList();<\/p>\n<p>lastnames = new ArrayList();<\/p>\n<p>departmentids = new ArrayList();<\/p>\n<p>seclevels = new ArrayList();<\/p>\n<p>statuses = new ArrayList();<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ \u67e5\u8be2\u6570\u636e\u5e93\u5e76\u8d4b\u503c\u961f\u5217<\/p>\n<p>RecordSet rt = new RecordSet() ;<\/p>\n<p>rt.executeProc(&#8220;HrmResource_SelectAll&#8221;,&#8221;&#8221;) ;<\/p>\n<p>while(rt.next()){<\/p>\n<p>ids.add(Util.null2String(rt.getString(&#8220;id&#8221;)));<\/p>\n<p>loginids.add(Util.null2String(rt.getString(&#8220;loginid&#8221;)));<\/p>\n<p>lastnames.add(Util.null2String(rt.getString(&#8220;lastname&#8221;)));<\/p>\n<p>departmentids.add(&#8220;&#8221;+Util.getIntValue(rt.getString(&#8220;departmentid&#8221;),0));<\/p>\n<p>seclevels.add(Util.null2String(rt.getString(&#8220;seclevel&#8221;)));<\/p>\n<p>statuses.add(Util.null2String(rt.getString(&#8220;status&#8221;)));<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/* 3 *\/<\/p>\n<p>\/\/ \u5c06\u83b7\u53d6\u7684\u4fe1\u606f\u653e\u5165\u7f13\u5b58\u4e2d, \u7f13\u5b58\u4e2d\u7684\u4e00\u7ea7\u952e\u503c\u4e3a &#8220;ResourceInfo&#8221; \uff0c \u4e8c\u7ea7\u952e\u503c\u4e3a\u4eba\u529b\u8d44\u6e90\u5bf9\u5e94\u7684\u961f\u5217\u540d\u79f0<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;ids&#8221;, ids);<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;loginids&#8221;, loginids);<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;lastnames&#8221;, lastnames);<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;departmentids&#8221;, departmentids);<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;seclevels&#8221;, seclevels);<\/p>\n<p>staticobj.putRecordToObj(&#8220;ResourceInfo&#8221;, &#8220;statuses&#8221;, statuses);<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6570\u91cf\u65b9\u6cd5<\/p>\n<p>*<\/p>\n<p>* @return int \u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6570\u91cf<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public int getResourceNum() {<\/p>\n<p>return array_size;<\/p>\n<p>}<\/p>\n<p>\/* 2 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u5c06\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u4e0b\u4e00\u4e2a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @return boolean \u5982\u679c\u6709\u4e0b\u4e00\u4e2a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\uff0c\u8fd4\u56detrue\uff0c \u5426\u5219\u8fd4\u56defalse\uff0c\u5e76\u5c06\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u7f6e\u4e3a\u521d\u59cb\u503c\uff08\u521d\u59cb\u503c\u5728\u7b2c\u4e00\u6761\u8bb0\u5f55\u4e4b\u524d\uff09<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public boolean next(){<\/p>\n<p>while((current_index+1) &lt; array_size){<\/p>\n<p>current_index++;<\/p>\n<p>return true;<\/p>\n<p>}<\/p>\n<p>current_index = -1;<\/p>\n<p>return false;<\/p>\n<p>}<\/p>\n<p>\/* 2 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u5c06\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u521d\u59cb\u503c\uff08\u521d\u59cb\u503c\u5728\u7b2c\u4e00\u6761\u8bb0\u5f55\u4e4b\u524d\uff09<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public void setTofirstRow(){<\/p>\n<p>current_index = -1;<\/p>\n<p>}<\/p>\n<p>\/* 2 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684id<\/p>\n<p>*<\/p>\n<p>* @return String \u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684id<\/p>\n<p>*\/<\/p>\n<p>public String getResourceid(){<\/p>\n<p>return (String)(ids.get(current_index));<\/p>\n<p>}<\/p>\n<p>\/* 2 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u540d\u79f0<\/p>\n<p>*<\/p>\n<p>* @return String \u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u540d\u79f0<\/p>\n<p>*\/<\/p>\n<p>public String getLastname(){<\/p>\n<p>return ((String)(lastnames.get(current_index))).trim() ;<\/p>\n<p>}<\/p>\n<p>\/* 2 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u90e8\u95e8id<\/p>\n<p>*<\/p>\n<p>* @return String \u5f53\u524d\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u6307\u9488\u6307\u5411\u7684\u4eba\u529b\u8d44\u6e90\u8bb0\u5f55\u7684\u90e8\u95e8id<\/p>\n<p>*\/<\/p>\n<p>public String getDepartmentID(){<\/p>\n<p>return ((String)(departmentids.get(current_index))).trim() ;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u540d\u79f0\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @param key \u4eba\u529b\u8d44\u6e90id \uff08\u4e3a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u952e\u503c\uff09<\/p>\n<p>* @return String \u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u540d\u79f0\u4fe1\u606f<\/p>\n<p>*\/<\/p>\n<p>public String getResourcename(String key) {<\/p>\n<p>int index=ids.indexOf(key);<\/p>\n<p>if(index!=-1) return ((String)lastnames.get(index)).trim();<\/p>\n<p>else return &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u767b\u5f55\u540d\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @param key \u4eba\u529b\u8d44\u6e90id \uff08\u4e3a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u952e\u503c\uff09<\/p>\n<p>* @return String \u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u767b\u5f55\u540d\u4fe1\u606f<\/p>\n<p>*\/<\/p>\n<p>public String getLoginID(String key) {<\/p>\n<p>int index=ids.indexOf(key);<\/p>\n<p>if(index!=-1) return ((String)loginids.get(index)).trim() ;<\/p>\n<p>else return &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u90e8\u95e8\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @param key \u4eba\u529b\u8d44\u6e90id \uff08\u4e3a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u952e\u503c\uff09<\/p>\n<p>* @return String \u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u90e8\u95e8\u4fe1\u606f<\/p>\n<p>*\/<\/p>\n<p>public String getDepartmentID(String key) {<\/p>\n<p>int index=ids.indexOf(key);<\/p>\n<p>if(index!=-1) return ((String)departmentids.get(index)).trim() ;<\/p>\n<p>else return &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u5b89\u5168\u7ea7\u522b\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @param key \u4eba\u529b\u8d44\u6e90id \uff08\u4e3a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u952e\u503c\uff09<\/p>\n<p>* @return String \u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u5b89\u5168\u7ea7\u522b\u4fe1\u606f<\/p>\n<p>*\/<\/p>\n<p>public String getSeclevel(String key) {<\/p>\n<p>int index=ids.indexOf(key);<\/p>\n<p>if(index!=-1) return ((String)seclevels.get(index)).trim() ;<\/p>\n<p>else return &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u83b7\u53d6\u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u72b6\u6001\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>* @param key \u4eba\u529b\u8d44\u6e90id \uff08\u4e3a\u4eba\u529b\u8d44\u6e90\u4fe1\u606f\u7684\u952e\u503c\uff09<\/p>\n<p>* @return String \u4eba\u529b\u8d44\u6e90id\u5bf9\u5e94\u7684\u4eba\u529b\u8d44\u6e90\u72b6\u6001\u4fe1\u606f<\/p>\n<p>*\/<\/p>\n<p>public String getStatus(String key) {<\/p>\n<p>int index=ids.indexOf(key);<\/p>\n<p>if(index!=-1) return ((String)statuses.get(index)).trim() ;<\/p>\n<p>else return &#8220;&#8221;;<\/p>\n<p>}<\/p>\n<p>\/* 4 *\/<\/p>\n<p>\/**<\/p>\n<p>* \u6e05\u9664\u4eba\u529b\u8d44\u6e90\u7f13\u5b58\u4fe1\u606f<\/p>\n<p>*<\/p>\n<p>*\/<\/p>\n<p>public void removeResourceCache() {<\/p>\n<p>\/* 3 *\/<\/p>\n<p>staticobj.removeObject(&#8220;ResourceInfo&#8221;);<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u5220\u9664\u6307\u5b9a\u7f13\u5b58\u4fe1\u606f<\/p>\n<p>* @param key \u6307\u5b9a\u7f13\u5b58<\/p>\n<p>*\/<\/p>\n<p>public void deleteResourceInfoCache(String key) {<\/p>\n<p>int index = ids.indexOf(key);<\/p>\n<p>if (index != -1) {<\/p>\n<p>ids.remove(index);<\/p>\n<p>loginids.remove(index);<\/p>\n<p>lastnames.remove(index);<\/p>\n<p>sexs.remove(index);<\/p>\n<p>&nbsp;<\/p>\n<p>}<\/p>\n<p>array_size = ids.size();<\/p>\n<p>}<\/p>\n<p>\/**<\/p>\n<p>* \u66f4\u65b0\u6307\u5b9a\u7f13\u5b58\u4fe1\u606f<\/p>\n<p>* @param key \u6307\u5b9a\u7f13\u5b58<\/p>\n<p>*\/<\/p>\n<p>public void updateResourceInfoCache(String key) {<\/p>\n<p>int index = ids.indexOf(key);<\/p>\n<p>if (index != -1) {<\/p>\n<p>RecordSet rs = new RecordSet();<\/p>\n<p>rs.executeSql(&#8220;select * from HrmResource where id = &#8221; + key);<\/p>\n<p>if (rs.next()) {<\/p>\n<p>ids.set(index, Util.null2String(rs.getString(&#8220;id&#8221;)));<\/p>\n<p>loginids.set(index, Util.null2String(rs.getString(&#8220;loginid&#8221;)));<\/p>\n<p>lastnames.set(index, Util.null2String(rs.getString(&#8220;lastname&#8221;)));<\/p>\n<p>sexs.set(index, Util.null2String(rs.getString(&#8220;sex&#8221;)));<\/p>\n<p>emails.set(index, Util.null2String(rs.getString(&#8220;email&#8221;)));<\/p>\n<p>msg.setAction(CacheManager.ACTION_UPDATE);<\/p>\n<p>msg.setCacheType(&#8220;ResourceInfo&#8221;);<\/p>\n<p>msg.setRowKey(&#8220;ids&#8221;);<\/p>\n<p>msg.setRow(ht);<\/p>\n<p>staticobj.sendNotification(msg);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>\u4ee5\u4e0a\u4ee3\u7801\u9700\u8981\u6ce8\u610f\u7684\u51e0\u4e2a\u5730\u65b9\uff1a<\/p>\n<p>\u6ce8\u91ca1\uff1a\u8fd9\u91cc\u6240\u5b9a\u4e49\u7684\u961f\u5217\uff0c\u7528\u4e8e\u4f9d\u6b21\u5b58\u653e\u4eba\u529b\u8d44\u6e90\u7684\u6240\u9700\u4fe1\u606f\u3002\u6240\u9700\u4fe1\u606f\u662f\u6839\u636e\u6211\u4eec\u7684\u9700\u8981\u6765\u786e\u5b9a\u7684\uff0c\u4f46\u662f\u5fc5\u987b\u660e\u786e\u4e00\u70b9\uff0c\u53ea\u6709\u90a3\u4e9b\u7ecf\u5e38\u7528\u5230\u7684\u4fe1\u606f\u91c7\u653e\u5230\u7f13\u5b58\u4e2d\uff0c\u5426\u5219\u5c06\u4f1a\u9020\u6210\u7f13\u5b58\u7684\u81c3\u4f59\u3002<\/p>\n<p>\u6ce8\u91ca2\uff1a\u8fd9\u91cc\u7684\u6307\u9488\u548c\u65b9\u6cd5\u7528\u4e8e\u4e00\u4e9b\u7a0b\u5e8f\u904d\u5386\u4eba\u529b\u8d44\u6e90\u7684\u6240\u6709\u4fe1\u606f\u3002\u6bd4\u5982\u5982\u4e0b\u5728jsp\u9875\u9762\u4e2d\u7684\u5e94\u7528\uff1a<\/p>\n<p>&lt;select name=&#8221;resourceinfo&#8221;&gt;<\/p>\n<p>&lt;%<\/p>\n<p>while(ResourceComInfo.next()) {<\/p>\n<p>%&gt;<\/p>\n<p>&lt;option value=&#8221;&lt;%= ResourceComInfo .getResourceid()%&gt;&#8221;&gt;&lt;%=ResourceComInfo .getLastname ()%&gt;&lt;\/option&gt;<\/p>\n<p>&lt;%<\/p>\n<p>}<\/p>\n<p>%&gt;<\/p>\n<p>&lt;\/select&gt;<\/p>\n<p>\u6ce8\u91ca3\uff1a\u7f13\u5b58\u4e2d\u7684\u4e00\u7ea7\u952e\u503c\u8bbe\u7f6e\u4e3a\u76f8\u5e94\u7684\u7c7b\u540d\uff0c\u6839\u636e\u8fd9\u4e2a\u952e\u503c\u6765\u5224\u65ad\u7f13\u5b58\u4e2d\u662f\u5426\u6709\u76f8\u5e94\u7684\u4fe1\u606f\uff0c\u6216\u8005\u6e05\u9664\u7f13\u5b58\u4e2d\u7684\u8be5\u4fe1\u606f\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u7f13\u5b58\u4e2d\u7684\u952e\u503c\u4fe1\u606f\u5fc5\u987b\u552f\u4e00\uff0c\u4e0d\u80fd\u91cd\u590d\uff01<\/p>\n<p>\u6ce8\u91ca4\uff1a\u5728\u4e0d\u662f\u5fc5\u987b\u7684\u65f6\u5019\uff0c\u66f4\u65b0\u4eba\u529b\u8d44\u6e90\u7684\u65f6\u5019\u4e00\u5b9a\u8981\u4f7f\u7528\u66f4\u65b0\u6307\u5b9a\u7684\u7f13\u5b58\u7684\u65b9\u5f0f\uff0c\u800c\u4e0d\u8981\u628a\u7f13\u5b58\u6e05\u7a7a\uff0c\u7b49\u5f85\u4e0b\u4e00\u6b21\u4f7f\u7528\u5230\u8be5\u7f13\u5b58\u7684\u65f6\u5019\u5728\u91cd\u65b0\u521d\u59cb\u5316\u8be5\u7f13\u5b58\u3002<\/p>\n<p>\u6ce8\u91ca5\uff1a\u5bf9\u6570\u636e\u66f4\u65b0\u9891\u7387\u4e0d\u9ad8\uff0c\u4f7f\u7528\u9891\u7387\u786e\u76f8\u5bf9\u8f83\u9ad8\u6570\u636e\u8bf7\u5c3d\u91cf\u4f7f\u7528\u7f13\u5b58\u7684\u65b9\u5f0f\u5b58\u53d6\u6570\u636e\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u4ece\u6570\u636e\u5e93\u4e2d\u8bfb\u53d6\u3002<\/p>\n<h2><a id=\"post-1623-_Toc214887620\"><\/a>\u5176\u5b83\u5e95\u5c42\u7c7b\u57fa\u672c\u65b9\u6cd5<\/h2>\n<p>ECOLOGY\u4e2d\uff0c\u8fd8\u6709\u4e00\u4e9b\u5e38\u7528\u7684\u5de5\u5177\u7c7b\uff0c\u662f\u5728\u5f00\u53d1\u4e2d\u57fa\u672c\u90fd\u4f1a\u4f7f\u7528\u5230\u7684\uff0c\u5927\u5bb6\u8fd8\u9700\u8981\u770b\u770b\u5982\u4e0b\u51e0\u4e2a\u7c7b\u7684API \u6587\u6863\uff1a<\/p>\n<p>weaver.general.Util :<\/p>\n<p>\u63d0\u4f9b\u4e86\u5927\u91cf\u57fa\u672c\u7684\u5de5\u5177\u65b9\u6cd5\uff08\u5176\u4e2d\u63d0\u4f9b\u4e86\u5bf9\u5b57\u7b26\uff0c\u6570\u636e\u7b49\u7684\u5904\u7406\uff09\uff0c\u5176\u4e2dnull2String\u65b9\u6cd5\uff0cfromScreen\u65b9\u6cd5\uff0ctoScreen \u65b9\u6cd5\uff0cTokenizerString \uff0ctoHtml\u65b9\u6cd5\u662f\u5927\u5bb6\u9700\u8981\u5173\u6ce8\u7684\u65b9\u6cd5\u3002<\/p>\n<p>weaver.general.TimeUtil :<\/p>\n<p>\u63d0\u4f9b\u5bf9\u65e5\u671f\u64cd\u4f5c\u7684\u5de5\u5177\u65b9\u6cd5\uff0c\u5982\uff1a\u65e5\u671f\u8f6c\u5316\uff0c\u65e5\u671f\u52a0\u51cf<\/p>\n<p>weaver.general. SendMail :<\/p>\n<p>\u63d0\u4f9b\u4e86\u90ae\u4ef6\u53d1\u9001\u7684\u57fa\u672c\u65b9\u6cd5\uff0c\u5176\u4e2dsend\u65b9\u6cd5\uff0csendhtml\u65b9\u6cd5\uff0csendMiltipartText\u65b9\u6cd5\u662f\u5927\u5bb6\u9700\u8981\u5173\u6ce8\u7684\u65b9\u6cd5\u3002<\/p>\n<p>weaver.file.FileManage :<\/p>\n<p>\u63d0\u4f9b\u4e86\u6587\u4ef6\u5904\u7406\u7684\u5de5\u5177\u65b9\u6cd5\u3002\u5176\u4e2dcreateDir\u65b9\u6cd5\uff0ccopy\u65b9\u6cd5\uff0cmoveFileTo\u65b9\u6cd5\uff0cDeleteFile\u65b9\u6cd5\uff0cextractFileName\u65b9\u6cd5\uff0cextractFileExt\u65b9\u6cd5\uff0cextractFilePath\u65b9\u6cd5\u662f\u5927\u5bb6\u9700\u8981\u5173\u6ce8\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1a<a href=\"https:\/\/www.hefeiyu.com\">\u8d6b\u975e\u57df<\/a> &raquo; <a href=\"https:\/\/www.hefeiyu.com\/?p=1623\">Ecology\u7cfb\u7edf\u5e95\u5c42\u5305\u5f00\u53d1\u6307\u5357<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>\u76ee \u5f55 1. \u5f15\u8a00 4 1.1 \u6982\u8ff0 4 1.2 \u5b9a\u4e49 4 2. \u5e95\u5c42\u5305\u5e94\u7528\u53ca\u8303\u4f8b 4 2.1 \u6700\u57fa\u672c\u7684\u7ee7\u627f\u7c7b 4 2.2 \u600e\u6837\u8bb0\u5f55\u65e5\u5fd7 5 2.3 \u600e\u6837\u83b7\u53d6\u5c5e\u6027\u6587\u4ef6\u7684\u503c 8 2.4 \u600e\u6837\u83b7\u53d6\u7cfb\u7edf\u7684\u8fd0\u884c\u76ee\u5f55 10 2.5 \u600e\u6837\u8bbf\u95ee\u548c\u8fd0\u884c\u6570\u636e\u5e93\u811a\u672c 1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[522,533,532],"class_list":["post-1623","post","type-post","status-publish","format-standard","hentry","category-code","tag-ecology","tag-533","tag-532"],"_links":{"self":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/1623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1623"}],"version-history":[{"count":1,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/1623\/revisions"}],"predecessor-version":[{"id":1624,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=\/wp\/v2\/posts\/1623\/revisions\/1624"}],"wp:attachment":[{"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hefeiyu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}