﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-学习 学习 再学习-随笔分类-JAVA随记</title><link>http://www.blogjava.net/xlth2006/category/41750.html</link><description>学习才是唯一的出路</description><language>zh-cn</language><lastBuildDate>Thu, 09 Jun 2011 06:22:30 GMT</lastBuildDate><pubDate>Thu, 09 Jun 2011 06:22:30 GMT</pubDate><ttl>60</ttl><item><title>我的独立博客已经开通，欢迎大家访问</title><link>http://www.blogjava.net/xlth2006/archive/2011/06/09/351974.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Thu, 09 Jun 2011 05:30:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2011/06/09/351974.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/351974.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2011/06/09/351974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/351974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/351974.html</trackback:ping><description><![CDATA[<a title="编程学习网,java学习网,.NET学习网,PHP学习网" href="http://www.j-cn.org"><strong style="font-size: 24pt">我的独立博客已经开通，欢迎大家访问，<br /><br /></strong></a><br /><a title="编程学习网,java学习网,.NET学习网,PHP学习网" href="http://www.j-cn.org"><strong style="font-size: 24pt">编程学习网<br /><br /><br /><br /></strong></a><a title="编程学习论坛,java学习论坛,.NET学习论坛,PHP学习论坛" href="http://www.j-cn.org/bbs"><strong style="font-size: 24pt">J-CN工作室论坛 </strong></a><img src ="http://www.blogjava.net/xlth2006/aggbug/351974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2011-06-09 13:30 <a href="http://www.blogjava.net/xlth2006/archive/2011/06/09/351974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts实现多国语言切换</title><link>http://www.blogjava.net/xlth2006/archive/2009/11/01/300558.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Sun, 01 Nov 2009 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/11/01/300558.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/300558.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/11/01/300558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/300558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/300558.html</trackback:ping><description><![CDATA[<p>摘要:<br />
通过下拉框里各个语言（中文，日本语，English）的选择，切换jsp页面文字。 <br />
tyrone1979 发表于 2005-08-26 13:27:19<br />
作者:tyrone1979&nbsp;&nbsp;&nbsp;&nbsp; 来源:blog.csdn.net/tyrone1979<br />
1 准备资源文件。</p>
<p>资源文件命名格式：filename_language_country.properties.<br />
中文文件名为index_zh_CN.properties。<br />
日文文件名为 index_ja_JP.properties。<br />
英文文件名为 index_en.properties。</p>
<p>英文文件内容：</p>
<p>index.jsp.welcome=Colimas Library Management System<br />
index.jsp.name=Name<br />
index.jsp.userid=User ID<br />
index.jsp.pass=Password</p>
<p><br />
中文文件内容：</p>
<p>index.jsp.welcome=\u4f60\u597d<br />
index.jsp.name=\u59d3\u540d<br />
index.jsp.userid=\u7528\u6237\u540d<br />
index.jsp.pass=\u5bc6\u7801</p>
<p><br />
日文文件内容：</p>
<p>index.jsp.welcome=\u3044\u3089\u3063\u3057\u3083\u3044\u307e\u305b<br />
index.jsp.name=\u59d3\u540d<br />
index.jsp.userid=\u30e6\u30fc\u30b6\u30fcID<br />
index.jsp.pass=\u30d1\u30b9\u30ef\u30fc\u30c9</p>
<p>\uxxxx是中文被转换后的ASCII码。可以使用native2ascii.exe工具转换。</p>
<p>2 struts-config.xml里配置资源文件<br />
&nbsp;&nbsp;&nbsp; <br />
&lt;message-resources parameter="resources.config.index" /&gt;</p>
<p>resources.config.index是classes目录下的resources/config子目录的index__xx_xx.properties文件.<br />
struts根据你的浏览器的语言设置调用不同语言的资源文件。<br />
例如：如果你的IE默认语言为中文则。Struts将使用index_zh_CN.properties。而在struts-config.xml里只需写出&#8220;index&#8221;即可</p>
<p>ActionMapping<br />
&nbsp; <br />
&lt;form-beans&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--1 Multi-Lanuage support formbean--&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;form-bean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="SelectLanguageForm"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="com.nova.colimas.web.form.SelectLanguageForm"/&gt;<br />
&nbsp;&nbsp; &lt;/form-beans&gt;<br />
&lt;!-- =========================================== Global Forward Definitions --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;global-forwards&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Default forward to "Welcome" action --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- Demonstrates using index.jsp to forward --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="index"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path="/pages/index.jsp"/&gt;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;/global-forwards&gt;</p>
<p><br />
&lt;!-- =========================================== Action Mapping Definitions --&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;action-mappings&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 1 select language action --&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action&nbsp;&nbsp;&nbsp; path="/SelectLanguageAction"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="com.nova.colimas.web.action.SelectLanguageAction"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="SelectLanguageForm"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope="request"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;<br />
&nbsp;&nbsp;&nbsp; &lt;/action-mappings&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p><br />
3 jsp</p>
<p>&lt;%@ page contentType="text/html; charset=UTF-8"%&gt;<br />
&lt;%@ taglib uri="/tags/struts-bean" divfix="bean"%&gt;<br />
&lt;%@ taglib uri="/tags/struts-html" divfix="html"%&gt;<br />
&lt;%@ taglib uri="/tags/struts-logic" divfix="logic"%&gt;</p>
<p>&lt;html:html&gt;<br />
&lt;Title&gt;&lt;bean:message key="index.jsp.welcome"/&gt;&lt;/Title&gt;<br />
&lt;body&gt;<br />
&lt;logic:divsent name="user"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;H3&gt;Welcome &lt;bean:write name="LoginForm" property="userID" /&gt;!&lt;/H3&gt;<br />
&lt;/logic:divsent&gt;<br />
&lt;logic:notPresent scope="session" name="user"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;H3&gt;Welcome Colimas!&lt;/H3&gt;<br />
&lt;/logic:notPresent&gt;<br />
&lt;html:errors /&gt;<br />
&lt;html:form action="/SelectLanguageAction.do"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:select property="language"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:option value="0"&gt;中文&lt;/html:option&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:option value="1"&gt;日本語&lt;/html:option&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:option value="2"&gt;English&lt;/html:option&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/html:select&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:submit&gt;Select&lt;/html:submit&gt;<br />
&lt;/html:form&gt;</p>
<p><br />
&lt;html:form action="/LoginAction.do"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;&lt;bean:message key="index.jsp.userid"/&gt;&lt;input type="text" name="userID" value="tyrone1979" /&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bean:message key="index.jsp.pass"/&gt;&lt;input type="password" name="password" value="197913"/&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;html:submit&gt;&lt;bean:message key="index.jsp.login"/&gt;&lt;/html:submit&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/p&gt;<br />
&lt;/html:form&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html:html&gt;</p>
<p><br />
&lt;bean:message key="index.jsp.welcome"/&gt;引用资源文件的index.jsp.welcome属性<br />
SelectLanguageAction.do调用Action实现语言转换。</p>
<p>4 Action</p>
<p>package com.nova.colimas.web.action;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;<br />
import org.apache.struts.action.ActionMessages;<br />
//import org.apache.struts.upload.FormFile;<br />
import com.nova.colimas.web.form.SelectLanguageForm;<br />
import org.apache.struts.Globals;<br />
import java.util.Locale;</p>
<p>public class SelectLanguageAction extends Action {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public ActionForward execute(ActionMapping mapping,<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; ActionForm form,<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; HttpServletRequest request,<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; HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws Exception{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SelectLanguageForm myform=(SelectLanguageForm)form;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String lan=myform.getLanguage();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch((new Integer(lan)).intValue()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 0 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 1:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.JAPAN);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case 2:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return mapping.findForward("index");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
Form<br />
/*<br />
* Created on 2005/06/18<br />
*<br />
* TODO To change the template for this generated file go to<br />
* Window - Preferences - Java - Code Style - Code Templates<br />
*/<br />
package com.nova.colimas.web.form;</p>
<p>import org.apache.struts.action.ActionForm;</p>
<p>/**<br />
* @author tyrone<br />
**/<br />
public class SelectLanguageForm extends ActionForm {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String language;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void Reset() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.language="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @return Returns the Language.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public String getLanguage() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return language;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @param language The Language to set.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void setLanguage(String property1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.language = property1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><br />
结果<br />
1 IE默认语言为中文：<br />
</p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/300558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-11-01 12:37 <a href="http://www.blogjava.net/xlth2006/archive/2009/11/01/300558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse 3.4下J2ME开发环境的配置</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/25/299688.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Sun, 25 Oct 2009 11:54:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/25/299688.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/299688.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/25/299688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/299688.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/299688.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt 27.15pt; text-indent: -18pt; text-align: left; tab-stops: list 36.0pt" align="left"><span style="font-size: 10pt; font-family: Symbol">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-size: 12pt; font-family: 宋体">配置</span></strong><strong><span style="font-size: 12pt; font-family: Arial">Eclipse</span></strong></p>
<ol type="1">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">下载JDK：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">从sun的官网</span></strong><a href="http://java.sun.com/javase/downloads/?intcmp=1281"><font face="Times New Roman">http://java.sun.com/javase/downloads/?intcmp=1281</font></a><strong><span style="font-size: 12pt; font-family: 宋体">下载JDK，当前最新版本是jdk-6u10-windows-i586-p.exe，这个是正式版的。</span></strong></p>
<ol type="1" start="2">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">下载WTK：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">同时在sun的网站</span></strong><a href="http://java.sun.com/products/sjwtoolkit/zh_download-2_5_2.html"><font face="Times New Roman">http://java.sun.com/products/sjwtoolkit/zh_download-2_5_2.html</font></a><strong><span style="font-size: 12pt; font-family: 宋体">下载WTK，当前最新版本是sun_java_wireless_toolkit-2_5_2-ml-windows.exe。 </span></strong></p>
<ol type="1" start="3">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">安装JDK和WTK：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">先安装JDK再安装WTK，我的安装路径是：D:"Java"jdk1.6.0_10和D:"Java"WTK2.5.2 </span></strong></p>
<ol type="1" start="4">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">下载eclipse：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">从eclipse的官网</span></strong><font face="Times New Roman"> <a href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></font><strong><span style="font-size: 12pt; font-family: 宋体">下载eclipse，我用的是：eclipse-java-ganymede-SR1-win32.zip，解压到：XX:"eclipse </span></strong></p>
<ol type="1" start="5">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">下载eclipseme：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">从eclipseme的官网</span></strong><font face="Times New Roman"><span style="font-size: 7pt">&nbsp;&nbsp; </span><a href="http://sourceforge.net/project/showfiles.php?group_id=86829">http://sourceforge.net/project/showfiles.php?group_id=86829</a></font><strong><span style="font-size: 12pt; font-family: 宋体">下载eclipseme.当前最新版本是eclipseeclipseme.feature_1.7.9_site.zip </span></strong></p>
<ol type="1" start="6">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">配置eclipse:</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">到 &#8220;首选项&#8221;找到，Java—&gt;调试，将&#8220;发生未不捕获到的异常时暂挂执行&#8221;与&#8220;在发生编译错误时暂挂执行&#8221;这两个选项调为&#8220;未选中&#8221;状态，再把下面的调试器超时（毫秒）的右侧数值设置为15000 </span></strong></p>
<ol type="1" start="7">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">配置eclipseME：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 21pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">运行eclipse，配置自己学习的工作路径，选择 帮助—&gt;软件更新—&gt;查找并安装—&gt;搜索要安装的新功能部件，选择 新建已归档的站点,选择eclipseme.feature_1.7.9_site.zip文件,安装,重启eclipse </span></strong></p>
<ol type="1" start="8">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">配置WTK:</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 36pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">选择 首选项—&gt;J2ME—&gt;Device Management—&gt;Import 在Specify search directory下,选择你所装的WTK模拟器的目录；选择 Refresh ，后按完成，使用DefaultColorPhone为默认模式，这时已为eclipse配置上了模拟器 </span></strong></p>
<ol type="1" start="9">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">下载ProGuard：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 36pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">需要使用插件ProGuard，从ProGuard的官网<a href="http://sourceforge.net/project/showfiles.php?group_id=54750" target="_blank"><font color="#0000ff">下载ProGuard</font></a></span></strong><strong><span style="font-size: 12pt; font-family: 宋体">，当前的最新版本是：proguard4.3beta2.tar.gz，解压到：XX:"proguard4.3</span></strong></p>
<ol type="1" start="10">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">配置ProGuard：</span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 36pt; text-indent: 21pt; text-align: left" align="left"><strong><span style="font-size: 12pt; font-family: 宋体">到 Eclipse的&#8220;首选项&#8221;找到，J2ME—&gt;Packaging—&gt;obfuscation，在Proguard Root Directory右边的框中，选择刚才解压的proguard4.3的文件夹（XX:"proguard4.3），点击应用，这时为eclipse配置上了混淆器 </span></strong></p>
<ol type="1" start="11">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><strong><span style="font-size: 12pt; font-family: 宋体">配置完毕 </span></strong></li>
</ol>
<p style="margin: 0cm 0cm 0pt 27.15pt; text-indent: -18pt; text-align: left; tab-stops: list 36.0pt" align="left"><span style="font-size: 10pt; font-family: Symbol">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-size: 13.5pt; font-family: 宋体">使用eclipse进行J2ME开发</span></strong></p>
<ol type="1">
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><span style="font-size: 12pt; font-family: 宋体">新建 J2ME下的J2ME Midlet Suite，填写项目名，下一步，完成</span>
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><span style="font-size: 12pt; font-family: 宋体">新建 J2ME下的J2ME Midlet，填写名称，完成</span>
    <li style="margin: 0cm 0cm 0pt; text-align: left; tab-stops: list 36.0pt"><span style="font-size: 12pt; font-family: 宋体">点击运行，新建一个Wireless Toolkit Emulator的运行配置，运行，出现手机样式，运行成功</span></li>
</ol>
<img src ="http://www.blogjava.net/xlth2006/aggbug/299688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-25 19:54 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/25/299688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webservice调用例子</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/22/299266.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Wed, 21 Oct 2009 23:50:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/22/299266.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/299266.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/22/299266.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/299266.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/299266.html</trackback:ping><description><![CDATA[<div class="ns_content">
<p>import java.net.URL;<br />
import java.util.Vector;<br />
import org.apache.soap.Constants;<br />
import org.apache.soap.Fault;<br />
import org.apache.soap.SOAPException;<br />
import org.apache.soap.encoding.SOAPMappingRegistry;<br />
import org.apache.soap.encoding.soapenc.BeanSerializer;<br />
import org.apache.soap.rpc.Call;<br />
import org.apache.soap.rpc.Parameter;<br />
import org.apache.soap.rpc.Response;<br />
import org.apache.soap.transport.http.SOAPHTTPConnection;<br />
import org.apache.soap.util.xml.QName;<br />
import org.w3c.dom.Element;<br />
import org.w3c.dom.Node;<br />
import oss.util.debug.LogHome;</p>
<p>public class GisWebService{<br />
&nbsp;<br />
&nbsp;public static String getStringGisWebService(String ajfBm, String zjfBm, String aodfBm,String zodfBm) throws Exception {<br />
&nbsp;&nbsp;String strUrl = "<a href="http://192.168.1.103/ctnwebgis/webgis.aspx?WSDL">http://192.168.1.103/ctnwebgis/webgis.aspx?WSDL</a>";<br />
&nbsp;&nbsp;String strTargetURL = "<a href='http://java.sun.com/xml/ns/jax-rpc/ri/config";//' href_cetemp='http://java.sun.com/xml/ns/jax-rpc/ri/config";//'>http://java.sun.com/xml/ns/jax-rpc/ri/config";//</a><br />
&nbsp;&nbsp;String soapAction = "<a href="http://www.my.com/Rpc1">http://www.my.com/Rpc1</a>";<br />
&nbsp;&nbsp;&nbsp;&nbsp; URL url = new URL(strUrl);<br />
&nbsp;&nbsp;&nbsp;&nbsp; SOAPMappingRegistry smr = new SOAPMappingRegistry();<br />
&nbsp;&nbsp;&nbsp;&nbsp; BeanSerializer beanSer = new BeanSerializer();<br />
&nbsp;&nbsp;&nbsp;&nbsp; smr.mapTypes(Constants.NS_URI_SOAP_ENC,new QName("","Result"),null,null,beanSer);<br />
&nbsp;&nbsp;&nbsp;&nbsp; Call call = new Call();<br />
&nbsp;&nbsp;&nbsp;&nbsp; SOAPHTTPConnection st = new SOAPHTTPConnection();<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setSOAPTransport(st);<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setSOAPMappingRegistry(smr);<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setTargetObjectURI(strTargetURL);<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setParams(createCondition(ajfBm,zjfBm,aodfBm,zodfBm));<br />
&nbsp;&nbsp;&nbsp;&nbsp; call.setMethodName("WSEncrypt"); //调用WEBSERVICE方法名<br />
&nbsp;&nbsp;&nbsp;&nbsp; Response resp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; try<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call.setTimeout(3000);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resp = call.invoke(url,soapAction);<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; catch(SOAPException e)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception("调用接口出错！URL="+strUrl+"\n"+e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; LogHome.getLog().info("调用成功，开始接收返回信息！");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; return returnValue(resp);<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static String returnValue(Response resp) throws Exception {<br />
&nbsp;&nbsp;if(resp.generatedFault()) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fault fault = resp.getFault();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String code = fault.getFaultCode();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String desc = fault.getFaultString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHome.getLog().info("Fault code:"+code+":"+desc);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Vector v = fault.getDetailEntries();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int cnt = v.size();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i = 0;i&lt;cnt;i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Element n = (Element)v.elementAt(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Node nd = n.getFirstChild();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHome.getLog().info("Each element:"+n.getNodeName()+":"+nd.getNodeValue());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new Exception("调用接口时出错，Fault code:"+code+":"+desc);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Parameter ret = resp.getReturnValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String returnXML = (String)ret.getValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogHome.getLog().info(returnXML);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return returnXML;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static&nbsp; Vector&lt;Parameter&gt; createCondition(String ajfBm,String zjfBm,String aodfBm,String zodfBm) {<br />
&nbsp;&nbsp; Vector&lt;Parameter&gt; params = new Vector&lt;Parameter&gt;();<br />
&nbsp;&nbsp;&nbsp;&nbsp; params.addElement(new Parameter("AjfBm",String.class,ajfBm,null));<br />
&nbsp;&nbsp;&nbsp;&nbsp; params.addElement(new Parameter("ZjfBm",String.class,zjfBm,null));<br />
&nbsp;&nbsp;&nbsp;&nbsp; params.addElement(new Parameter("AodfBm",String.class,aodfBm,null));<br />
&nbsp;&nbsp;&nbsp;&nbsp; params.addElement(new Parameter("ZodfBm",String.class,zodfBm,null));<br />
&nbsp;&nbsp;&nbsp;&nbsp; return params;<br />
&nbsp;}<br />
&nbsp;<br />
}<br />
</p>
</div>
<img src ="http://www.blogjava.net/xlth2006/aggbug/299266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-22 07:50 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/22/299266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA中Date转换大全</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/17/298686.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Sat, 17 Oct 2009 07:16:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/17/298686.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/298686.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/17/298686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/298686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/298686.html</trackback:ping><description><![CDATA[<p>public static Date getNowDate() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(8);</p>
<p>&nbsp; Date currentTime_2 = formatter.parse(dateString, pos);</p>
<p>&nbsp; return currentTime_2;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获取现在时间</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return返回短时间格式 yyyy-MM-dd</p>
<p>&nbsp; */</p>
<p>&nbsp;public static Date getNowDateShort() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(8);</p>
<p>&nbsp; Date currentTime_2 = formatter.parse(dateString, pos);</p>
<p>&nbsp; return currentTime_2;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获取现在时间</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return返回字符串格式 yyyy-MM-dd HH:mm:ss</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getStringDate() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获取现在时间</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return 返回短时间字符串格式yyyy-MM-dd</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getStringDateShort() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获取时间 小时:分;秒 HH:mm:ss</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getTimeShort() {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param strDate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static Date strToDateLong(String strDate) {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(0);</p>
<p>&nbsp; Date strtodate = formatter.parse(strDate, pos);</p>
<p>&nbsp; return strtodate;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param dateDate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String dateToStrLong(java.util.Date dateDate) {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String dateString = formatter.format(dateDate);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 将短时间格式时间转换为字符串 yyyy-MM-dd</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param dateDate</p>
<p>&nbsp; * @param k</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String dateToStr(java.util.Date dateDate) {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; String dateString = formatter.format(dateDate);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 将短时间格式字符串转换为时间 yyyy-MM-dd </p>
<p>&nbsp; * </p>
<p>&nbsp; * @param strDate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static Date strToDate(String strDate) {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(0);</p>
<p>&nbsp; Date strtodate = formatter.parse(strDate, pos);</p>
<p>&nbsp; return strtodate;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到现在时间</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static Date getNow() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; return currentTime;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 提取一个月中的最后一天</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param day</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static Date getLastDate(long day) {</p>
<p>&nbsp; Date date = new Date();</p>
<p>&nbsp; long date_3_hm = date.getTime() - 3600000 * 34 * day;</p>
<p>&nbsp; Date date_3_hm_date = new Date(date_3_hm);</p>
<p>&nbsp; return date_3_hm_date;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到现在时间</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return 字符串 yyyyMMdd HHmmss</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getStringToday() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到现在小时</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getHour() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; String hour;</p>
<p>&nbsp; hour = dateString.substring(11, 13);</p>
<p>&nbsp; return hour;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到现在分钟</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getTime() {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; String min;</p>
<p>&nbsp; min = dateString.substring(14, 16);</p>
<p>&nbsp; return min;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 根据用户传入的时间表示格式，返回当前时间的格式 如果是yyyyMMdd，注意字母y不能大写。</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param sformat</p>
<p>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yyyyMMddhhmmss</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getUserDate(String sformat) {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat(sformat);</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 二个小时时间间的差值,必须保证二个时间都是"HH:MM"的格式，返回字符型的分钟</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getTwoHour(String st1, String st2) {</p>
<p>&nbsp; String[] kk = null;</p>
<p>&nbsp; String[] jj = null;</p>
<p>&nbsp; kk = st1.split(":");</p>
<p>&nbsp; jj = st2.split(":");</p>
<p>&nbsp; if (Integer.parseInt(kk[0]) &lt; Integer.parseInt(jj[0]))</p>
<p>&nbsp;&nbsp; return "0";</p>
<p>&nbsp; else {</p>
<p>&nbsp;&nbsp; double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;</p>
<p>&nbsp;&nbsp; double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;</p>
<p>&nbsp;&nbsp; if ((y - u) &gt; 0)</p>
<p>&nbsp;&nbsp;&nbsp; return y - u + "";</p>
<p>&nbsp;&nbsp; else</p>
<p>&nbsp;&nbsp;&nbsp; return "0";</p>
<p>&nbsp; }</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到二个日期间的间隔天数</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getTwoDay(String sj1, String sj2) {</p>
<p>&nbsp; SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; long day = 0;</p>
<p>&nbsp; try {</p>
<p>&nbsp;&nbsp; java.util.Date date = myFormatter.parse(sj1);</p>
<p>&nbsp;&nbsp; java.util.Date mydate = myFormatter.parse(sj2);</p>
<p>&nbsp;&nbsp; day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);</p>
<p>&nbsp; } catch (Exception e) {</p>
<p>&nbsp;&nbsp; return "";</p>
<p>&nbsp; }</p>
<p>&nbsp; return day + "";</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 时间前推或后推分钟,其中JJ表示分钟.</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getPreTime(String sj1, String jj) {</p>
<p>&nbsp; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");</p>
<p>&nbsp; String mydate1 = "";</p>
<p>&nbsp; try {</p>
<p>&nbsp;&nbsp; Date date1 = format.parse(sj1);</p>
<p>&nbsp;&nbsp; long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;</p>
<p>&nbsp;&nbsp; date1.setTime(Time * 1000);</p>
<p>&nbsp;&nbsp; mydate1 = format.format(date1);</p>
<p>&nbsp; } catch (Exception e) {</p>
<p>&nbsp; }</p>
<p>&nbsp; return mydate1;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getNextDay(String nowdate, String delay) {</p>
<p>&nbsp; try{</p>
<p>&nbsp; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; String mdate = "";</p>
<p>&nbsp; Date d = strToDate(nowdate);</p>
<p>&nbsp; long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;</p>
<p>&nbsp; d.setTime(myTime * 1000);</p>
<p>&nbsp; mdate = format.format(d);</p>
<p>&nbsp; return mdate;</p>
<p>&nbsp; }catch(Exception e){</p>
<p>&nbsp;&nbsp; return "";</p>
<p>&nbsp; }</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 判断是否润年</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param ddate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static boolean isLeapYear(String ddate) { </p>
<p>&nbsp; /**</p>
<p>&nbsp;&nbsp; * 详细设计： 1.被400整除是闰年，否则： 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年</p>
<p>&nbsp;&nbsp; * 3.能被4整除同时能被100整除则不是闰年</p>
<p>&nbsp;&nbsp; */</p>
<p>&nbsp; Date d = strToDate(ddate);</p>
<p>&nbsp; GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();</p>
<p>&nbsp; gc.setTime(d);</p>
<p>&nbsp; int year = gc.get(Calendar.YEAR);</p>
<p>&nbsp; if ((year % 400) == 0)</p>
<p>&nbsp;&nbsp; return true;</p>
<p>&nbsp; else if ((year % 4) == 0) {</p>
<p>&nbsp;&nbsp; if ((year % 100) == 0)</p>
<p>&nbsp;&nbsp;&nbsp; return false;</p>
<p>&nbsp;&nbsp; else</p>
<p>&nbsp;&nbsp;&nbsp; return true;</p>
<p>&nbsp; } else</p>
<p>&nbsp;&nbsp; return false;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 返回美国时间格式 26 Apr 2006</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param str</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getEDate(String str) {</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(0);</p>
<p>&nbsp; Date strtodate = formatter.parse(str, pos);</p>
<p>&nbsp; String j = strtodate.toString();</p>
<p>&nbsp; String[] k = j.split(" ");</p>
<p>&nbsp; return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获取一个月的最后一天</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param dat</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd</p>
<p>&nbsp; String str = dat.substring(0, 8);</p>
<p>&nbsp; String month = dat.substring(5, 7);</p>
<p>&nbsp; int mon = Integer.parseInt(month);</p>
<p>&nbsp; if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {</p>
<p>&nbsp;&nbsp; str += "31";</p>
<p>&nbsp; } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {</p>
<p>&nbsp;&nbsp; str += "30";</p>
<p>&nbsp; } else {</p>
<p>&nbsp;&nbsp; if (isLeapYear(dat)) {</p>
<p>&nbsp;&nbsp;&nbsp; str += "29";</p>
<p>&nbsp;&nbsp; } else {</p>
<p>&nbsp;&nbsp;&nbsp; str += "28";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>&nbsp; return str;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 判断二个时间是否在同一个周</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param date1</p>
<p>&nbsp; * @param date2</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static boolean isSameWeekDates(Date date1, Date date2) {</p>
<p>&nbsp; Calendar cal1 = Calendar.getInstance();</p>
<p>&nbsp; Calendar cal2 = Calendar.getInstance();</p>
<p>&nbsp; cal1.setTime(date1);</p>
<p>&nbsp; cal2.setTime(date2);</p>
<p>&nbsp; int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);</p>
<p>&nbsp; if (0 == subYear) {</p>
<p>&nbsp;&nbsp; if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))</p>
<p>&nbsp;&nbsp;&nbsp; return true;</p>
<p>&nbsp; } else if (1 == subYear &amp;&amp; 11 == cal2.get(Calendar.MONTH)) {</p>
<p>&nbsp;&nbsp; // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周</p>
<p>&nbsp;&nbsp; if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))</p>
<p>&nbsp;&nbsp;&nbsp; return true;</p>
<p>&nbsp; } else if (-1 == subYear &amp;&amp; 11 == cal1.get(Calendar.MONTH)) {</p>
<p>&nbsp;&nbsp; if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))</p>
<p>&nbsp;&nbsp;&nbsp; return true;</p>
<p>&nbsp; }</p>
<p>&nbsp; return false;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 产生周序列,即得到当前时间所在的年度是第几周</p>
<p>&nbsp; * </p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getSeqWeek() {</p>
<p>&nbsp; Calendar c = Calendar.getInstance(Locale.CHINA);</p>
<p>&nbsp; String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));</p>
<p>&nbsp; if (week.length() == 1)</p>
<p>&nbsp;&nbsp; week = "0" + week;</p>
<p>&nbsp; String year = Integer.toString(c.get(Calendar.YEAR));</p>
<p>&nbsp; return year + week;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 获得一个日期所在的周的星期几的日期，如要找出2002年2月3日所在周的星期一是几号</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param sdate</p>
<p>&nbsp; * @param num</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getWeek(String sdate, String num) {</p>
<p>&nbsp; // 再转换为时间</p>
<p>&nbsp; Date dd = VeDate.strToDate(sdate);</p>
<p>&nbsp; Calendar c = Calendar.getInstance();</p>
<p>&nbsp; c.setTime(dd);</p>
<p>&nbsp; if (num.equals("1")) // 返回星期一所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);</p>
<p>&nbsp; else if (num.equals("2")) // 返回星期二所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);</p>
<p>&nbsp; else if (num.equals("3")) // 返回星期三所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);</p>
<p>&nbsp; else if (num.equals("4")) // 返回星期四所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);</p>
<p>&nbsp; else if (num.equals("5")) // 返回星期五所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);</p>
<p>&nbsp; else if (num.equals("6")) // 返回星期六所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);</p>
<p>&nbsp; else if (num.equals("0")) // 返回星期日所在的日期</p>
<p>&nbsp;&nbsp; c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);</p>
<p>&nbsp; return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 根据一个日期，返回是星期几的字符串</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param sdate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getWeek(String sdate) {</p>
<p>&nbsp; // 再转换为时间</p>
<p>&nbsp; Date date = VeDate.strToDate(sdate);</p>
<p>&nbsp; Calendar c = Calendar.getInstance();</p>
<p>&nbsp; c.setTime(date);</p>
<p>&nbsp; // int hour=c.get(Calendar.DAY_OF_WEEK);</p>
<p>&nbsp; // hour中存的就是星期几了，其范围 1~7</p>
<p>&nbsp; // 1=星期日 7=星期六，其他类推</p>
<p>&nbsp; return new SimpleDateFormat("EEEE").format(c.getTime());</p>
<p>&nbsp;}</p>
<p>&nbsp;public static String getWeekStr(String sdate){</p>
<p>&nbsp; String str = "";</p>
<p>&nbsp; str = VeDate.getWeek(sdate);</p>
<p>&nbsp; if("1".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期日";</p>
<p>&nbsp; }else if("2".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期一";</p>
<p>&nbsp; }else if("3".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期二";</p>
<p>&nbsp; }else if("4".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期三";</p>
<p>&nbsp; }else if("5".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期四";</p>
<p>&nbsp; }else if("6".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期五";</p>
<p>&nbsp; }else if("7".equals(str)){</p>
<p>&nbsp;&nbsp; str = "星期六";</p>
<p>&nbsp; }</p>
<p>&nbsp; return str;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 两个时间之间的天数</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param date1</p>
<p>&nbsp; * @param date2</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static long getDays(String date1, String date2) {</p>
<p>&nbsp; if (date1 == null || date1.equals(""))</p>
<p>&nbsp;&nbsp; return 0;</p>
<p>&nbsp; if (date2 == null || date2.equals(""))</p>
<p>&nbsp;&nbsp; return 0;</p>
<p>&nbsp; // 转换为标准时间</p>
<p>&nbsp; SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; java.util.Date date = null;</p>
<p>&nbsp; java.util.Date mydate = null;</p>
<p>&nbsp; try {</p>
<p>&nbsp;&nbsp; date = myFormatter.parse(date1);</p>
<p>&nbsp;&nbsp; mydate = myFormatter.parse(date2);</p>
<p>&nbsp; } catch (Exception e) {</p>
<p>&nbsp; }</p>
<p>&nbsp; long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);</p>
<p>&nbsp; return day;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 形成如下的日历 ， 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间</p>
<p>&nbsp; * 此函数返回该日历第一行星期日所在的日期</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param sdate</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getNowMonth(String sdate) {</p>
<p>&nbsp; // 取该时间所在月的一号</p>
<p>&nbsp; sdate = sdate.substring(0, 8) + "01"; </p>
<p>&nbsp; // 得到这个月的1号是星期几</p>
<p>&nbsp; Date date = VeDate.strToDate(sdate);</p>
<p>&nbsp; Calendar c = Calendar.getInstance();</p>
<p>&nbsp; c.setTime(date);</p>
<p>&nbsp; int u = c.get(Calendar.DAY_OF_WEEK);</p>
<p>&nbsp; String newday = VeDate.getNextDay(sdate, (1 - u) + "");</p>
<p>&nbsp; return newday;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param k</p>
<p>&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示是取几位随机数，可以自己定</p>
<p>&nbsp; */ </p>
<p>&nbsp;public static String getNo(int k) { </p>
<p>&nbsp; return getUserDate("yyyyMMddhhmmss") + getRandom(k);</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * 返回一个随机数</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param i</p>
<p>&nbsp; * @return</p>
<p>&nbsp; */</p>
<p>&nbsp;public static String getRandom(int i) {</p>
<p>&nbsp; Random jjj = new Random();</p>
<p>&nbsp; // int suiJiShu = jjj.nextInt(9);</p>
<p>&nbsp; if (i == 0)</p>
<p>&nbsp;&nbsp; return "";</p>
<p>&nbsp; String jj = "";</p>
<p>&nbsp; for (int k = 0; k &lt; i; k++) {</p>
<p>&nbsp;&nbsp; jj = jj + jjj.nextInt(9);</p>
<p>&nbsp; }</p>
<p>&nbsp; return jj;</p>
<p>&nbsp;} </p>
<p>&nbsp;/**</p>
<p>&nbsp; * </p>
<p>&nbsp; * @param args</p>
<p>&nbsp; */</p>
<p>&nbsp;public static boolean RightDate(String date) { </p>
<p>&nbsp; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");</p>
<p>&nbsp; ;</p>
<p>&nbsp; if (date == null)</p>
<p>&nbsp;&nbsp; return false;</p>
<p>&nbsp; if (date.length() &gt; 10) {</p>
<p>&nbsp;&nbsp; sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");</p>
<p>&nbsp; } else {</p>
<p>&nbsp;&nbsp; sdf = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; }</p>
<p>&nbsp; try {</p>
<p>&nbsp;&nbsp; sdf.parse(date);</p>
<p>&nbsp; } catch (ParseException pe) {</p>
<p>&nbsp;&nbsp; return false;</p>
<p>&nbsp; }</p>
<p>&nbsp; return true;</p>
<p>&nbsp;} </p>
<p>&nbsp;/***************************************************************************</p>
<p>&nbsp; * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1</p>
<p>&nbsp; * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回</p>
<p>&nbsp; **************************************************************************/</p>
<p>&nbsp;public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {</p>
<p>&nbsp; Date currentTime = new Date();</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; String dateString = formatter.format(currentTime);</p>
<p>&nbsp; String s_nd = dateString.substring(0, 4); // 年份</p>
<p>&nbsp; String s_yf = dateString.substring(5, 7); // 月份</p>
<p>&nbsp; String s_rq = dateString.substring(8, 10); // 日期</p>
<p>&nbsp; String sreturn = "";</p>
<p>&nbsp; roc.util.MyChar mc = new roc.util.MyChar();</p>
<p>&nbsp; if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况</p>
<p>&nbsp;&nbsp; if (nd.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = s_nd;</p>
<p>&nbsp;&nbsp;&nbsp; // 处理间隔符</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "年";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("2"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "-";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("3"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "/";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("5"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + ".";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; // 处理月份</p>
<p>&nbsp;&nbsp; if (yf.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = sreturn + s_yf;</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "月";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("2"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "-";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("3"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "/";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("5"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + ".";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; // 处理日期</p>
<p>&nbsp;&nbsp; if (rq.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = sreturn + s_rq;</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "日";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp; } else {</p>
<p>&nbsp;&nbsp; // 不是空值，也是一个合法的日期值，则先将其转换为标准的时间格式</p>
<p>&nbsp;&nbsp; sdate = roc.util.RocDate.getOKDate(sdate);</p>
<p>&nbsp;&nbsp; s_nd = sdate.substring(0, 4); // 年份</p>
<p>&nbsp;&nbsp; s_yf = sdate.substring(5, 7); // 月份</p>
<p>&nbsp;&nbsp; s_rq = sdate.substring(8, 10); // 日期</p>
<p>&nbsp;&nbsp; if (nd.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = s_nd;</p>
<p>&nbsp;&nbsp;&nbsp; // 处理间隔符</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "年";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("2"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "-";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("3"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "/";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("5"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + ".";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; // 处理月份</p>
<p>&nbsp;&nbsp; if (yf.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = sreturn + s_yf;</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "月";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("2"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "-";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("3"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "/";</p>
<p>&nbsp;&nbsp;&nbsp; else if (format.equals("5"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + ".";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp; // 处理日期</p>
<p>&nbsp;&nbsp; if (rq.equals("1")) {</p>
<p>&nbsp;&nbsp;&nbsp; sreturn = sreturn + s_rq;</p>
<p>&nbsp;&nbsp;&nbsp; if (format.equals("1"))</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; sreturn = sreturn + "日";</p>
<p>&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>&nbsp; return sreturn;</p>
<p>&nbsp;} </p>
<p>&nbsp;public static String getNextMonthDay(String sdate, int m) {</p>
<p>&nbsp; sdate = getOKDate(sdate);</p>
<p>&nbsp; int year = Integer.parseInt(sdate.substring(0, 4));</p>
<p>&nbsp; int month = Integer.parseInt(sdate.substring(5, 7));</p>
<p>&nbsp; month = month + m;</p>
<p>&nbsp; if (month &lt; 0) {</p>
<p>&nbsp;&nbsp; month = month + 12;</p>
<p>&nbsp;&nbsp; year = year - 1;</p>
<p>&nbsp; } else if (month &gt; 12) {</p>
<p>&nbsp;&nbsp; month = month - 12;</p>
<p>&nbsp;&nbsp; year = year + 1;</p>
<p>&nbsp; }</p>
<p>&nbsp; String smonth = "";</p>
<p>&nbsp; if (month &lt; 10)</p>
<p>&nbsp;&nbsp; smonth = "0" + month;</p>
<p>&nbsp; else</p>
<p>&nbsp;&nbsp; smonth = "" + month;</p>
<p>&nbsp; return year + "-" + smonth + "-10";</p>
<p>&nbsp;} </p>
<p>&nbsp;public static String getOKDate(String sdate) {</p>
<p>&nbsp; if (sdate == null || sdate.equals(""))</p>
<p>&nbsp;&nbsp; return getStringDateShort(); </p>
<p>&nbsp; if (!VeStr.Isdate(sdate)) {</p>
<p>&nbsp;&nbsp; sdate = getStringDateShort();</p>
<p>&nbsp; }</p>
<p>&nbsp; // 将&#8220;/&#8221;转换为&#8220;-&#8221;</p>
<p>&nbsp; sdate = VeStr.Replace(sdate, "/", "-");</p>
<p>&nbsp; // 如果只有8位长度，则要进行转换</p>
<p>&nbsp; if (sdate.length() == 8)</p>
<p>&nbsp;&nbsp; sdate = sdate.substring(0, 4) + "-" + sdate.substring(4, 6) + "-" + sdate.substring(6, 8);</p>
<p>&nbsp; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");</p>
<p>&nbsp; ParsePosition pos = new ParsePosition(0);</p>
<p>&nbsp; Date strtodate = formatter.parse(sdate, pos);</p>
<p>&nbsp; String dateString = formatter.format(strtodate);</p>
<p>&nbsp; return dateString;</p>
<p>&nbsp;} </p>
<p>&nbsp;public static void main(String[] args) throws Exception {</p>
<p>&nbsp; try {</p>
<p>&nbsp;&nbsp; //System.out.print(Integer.valueOf(getTwoDay("2006-11-03 12:22:10", "2006-11-02 11:22:09")));</p>
<p>&nbsp; } catch (Exception e) {</p>
<p>&nbsp;&nbsp; throw new Exception();</p>
<p>&nbsp; }</p>
<p>&nbsp; //System.out.println("sss");</p>
<p>&nbsp;}</p>
<p>}　&nbsp;&nbsp; <br />
</p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/298686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-17 15:16 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/17/298686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat 配置 -- 打开中文文件名的附件</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/12/297952.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Mon, 12 Oct 2009 10:59:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/12/297952.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297952.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/12/297952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297952.html</trackback:ping><description><![CDATA[设计了文件上传的工具,但在Tomcat服务器上访问中文文件名的文件不能打开,报找不到文件的错误,文件名称在后台进行了UTF-8的转码,而在tomcat的server.xml文件中的设置是这样的: <br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Connector&nbsp;</span><span style="color: #ff0000">port</span><span style="color: #0000ff">="8080"</span><span style="color: #ff0000">&nbsp;protocol</span><span style="color: #0000ff">="HTTP/1.1"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">2</span><span style="color: #ff0000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionTimeout</span><span style="color: #0000ff">="20000"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">3</span><span style="color: #ff0000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redirectPort</span><span style="color: #0000ff">="8443"</span><span style="color: #ff0000">&nbsp;URIEncoding</span><span style="color: #0000ff">="GBK"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span></div>
<br />
将编码格式改为UTF-8就可以了:
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Connector&nbsp;</span><span style="color: #ff0000">port</span><span style="color: #0000ff">="8080"</span><span style="color: #ff0000">&nbsp;protocol</span><span style="color: #0000ff">="HTTP/1.1"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionTimeout</span><span style="color: #0000ff">="20000"</span><span style="color: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redirectPort</span><span style="color: #0000ff">="8443"</span><span style="color: #ff0000">&nbsp;URIEncoding</span><span style="color: #0000ff">="UTF-8"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span></div>
   <img src ="http://www.blogjava.net/xlth2006/aggbug/297952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-12 18:59 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/12/297952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>防止JSP页面缓存</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/05/297241.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Mon, 05 Oct 2009 04:09:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/05/297241.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297241.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/05/297241.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297241.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297241.html</trackback:ping><description><![CDATA[为了防止浏览器缓存当前访问的JSP动态页面，可以采用如下的方式进行设置：<br />
&lt;% <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 将过期日期设置为一个过去时间<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 设置 HTTP/1.1 no-cache 头<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 设置 IE 扩展 HTTP/1.1 no-cache headers， 用户自己添加<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.addHeader("Cache-Control", "post-check=0, pre-check=0");</p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 设置标准 HTTP/1.0 no-cache header.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.setHeader("Pragma", "no-cache");<br />
%&gt;<br /><img src ="http://www.blogjava.net/xlth2006/aggbug/297241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-05 12:09 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/05/297241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>把class文件打成jar包的命令</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/05/297237.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Mon, 05 Oct 2009 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/05/297237.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297237.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/05/297237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297237.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297237.html</trackback:ping><description><![CDATA[把class文件打成jar包的命令<br />
在文件所在目录下，<br />
D:\&gt;jar cvf jspsmart.jar jspsmart&nbsp; 
<img src ="http://www.blogjava.net/xlth2006/aggbug/297237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-05 11:06 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/05/297237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java创建TXT文件并进行读、写、修改操作 </title><link>http://www.blogjava.net/xlth2006/archive/2009/10/04/297198.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Sun, 04 Oct 2009 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/04/297198.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297198.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/04/297198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297198.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: import&nbsp;java.io.*;/**&nbsp;*//**&nbsp;*&nbsp;&nbsp;*&nbsp;功能描述：创建TXT文件并进行读、写、修改操作&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@author&nbsp;&lt;a&nbsp;href="mailto:zhanghhu...&nbsp;&nbsp;<a href='http://www.blogjava.net/xlth2006/archive/2009/10/04/297198.html'>阅读全文</a><img src ="http://www.blogjava.net/xlth2006/aggbug/297198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-04 17:17 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/04/297198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>彻底解决jspsmartupload中文名文件下载和下载文件内容乱码问题</title><link>http://www.blogjava.net/xlth2006/archive/2009/10/01/297088.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Thu, 01 Oct 2009 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/01/297088.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297088.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/01/297088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297088.html</trackback:ping><description><![CDATA[<p>彻底解决中文名文件下载和下载文件内容乱码问题!!!!! 之前,写过一个Download.jsp文件,可以解决下载文件乱码问题(诸如:DOC,XSL文件等等).<br />
后来发现,遇到中文名的文件的时候,文件下载将会报错~~~~<br />
今天,通过改写原Download.jsp文件已经彻底解决了这个问题~<br />
现在,把一整套的文件上传下载的方法给贴出来~~~以便大家借鉴!~!~!~!~!&nbsp; <br />
作者:古埃及法老<br />
-------------------------------------------------------------------------------------------------------------------<br />
测试环境:WEBLOGIC 8.1,WIN XP SP4,IE 6.0 <br />
-----------------------------------------------------<br />
文件上传: <br />
-----------------------------------------<br />
准备工作:导入著名的SmartUpload.jar组件包<br />
upload.jsp文件<br />
---------------------------------------------------------<br />
&lt;%@ page contentType="text/html; charset=gb2312" %&gt;<br />
&lt;%<br />
request.setCharacterEncoding("gb2312"); // 这句话很重要，否则遇到中文就出错~<br />
%&gt;<br />
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;上传&lt;/TITLE&gt;<br />
&lt;META content="text/html; charset=gb2312" http-equiv=Content-Type&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY leftMargin=0 topMargin=0&gt;<br />
&lt;table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF"&gt;<br />
&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;FORM action="upload_ok.jsp" method=post name="Upload" enctype="multipart/form-data"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请输入附件文件的所在路径&lt;FONT color=red&gt; * &lt;/FONT&gt;为必填项目&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TABLE width="317" border=0 cellPadding=0&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TBODY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD align=right valign=middle nowrap&gt;附件路径：&lt;/TD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD&gt;&lt;input type="file" name="file" style="border: 1px #FFFFFF solid;background:#efefef" &gt; &lt;FONT color=red&gt;*&lt;/FONT&gt;&lt;/TD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR align="center"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD height=60 colspan="2" valign=middle nowrap&gt; &lt;INPUT style="height:22px" name=B1 type=submit value=" 确 定 " &gt;<br />
&lt;INPUT style="height:22px" name=B2 type=reset value=" 取 消 " &gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TD&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TBODY&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TABLE&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/FORM&gt; <br />
&lt;/td&gt;<br />
&nbsp;&nbsp; &lt;/tr&gt;<br />
&lt;/table&gt;<br />
&lt;/BODY&gt;&lt;/HTML&gt;<br />
---------------------------------------------------------<br />
upload_ok.jsp文件<br />
---------------------------------------------------------<br />
&lt;%@ page contentType="text/html;charset=gb2312" %&gt;<br />
&lt;%@ page import="com.jspsmart.upload.*" %&gt;<br />
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;上传成功!&lt;/TITLE&gt;<br />
&lt;META content="text/html; charset=gb2312" http-equiv=Content-Type&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY leftMargin=0 topMargin=0&gt;<br />
&lt;jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /&gt;<br />
&lt;table width="80%"&nbsp;&nbsp; border="0" cellpadding="0" cellspacing="0" bgcolor="#DEE7EF"&gt;<br />
&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;td align="center"&gt; <br />
&lt;% <br />
int count=0;<br />
String fileName = null;<br />
mySmartUpload.initialize(pageContext); <br />
mySmartUpload.upload();<br />
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);<br />
if (!myFile.isMissing()) {<br />
&nbsp;&nbsp; //String ext=myFile.getFileExt();//得到后缀&nbsp;&nbsp; <br />
&nbsp;&nbsp; fileName = myFile.getFileName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFile.saveAs("/files/" + fileName);//你要存放文件所在文件夹的相对路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("文件:&lt;b&gt;"+fileName+"&lt;/b&gt;上传成功!&lt;br&gt;文件大小:" + myFile.getSize() + "kb&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
%&gt;<br />
&lt;/BODY&gt;&lt;/HTML&gt;<br />
---------------------------------------------------------</p>
<p>文件下载: <br />
-----------------------------------------<br />
文件的超连接写法范例:<br />
&lt;% String fname ="中文测试.xsl"; //假设你的文件名是:中文测试.xsl<br />
%&gt;<br />
&lt;A target="_blank" href="Download.jsp?filename=&lt;%=fname%&gt;"&gt;下 载&lt;/A&gt;<br />
文件的超连接写法范例-2 重新用utf-8对文件名编码:<br />
&lt;%@ page contentType="text/html;charset=gb2312" session="true"%&gt;<br />
&lt;%&nbsp;&nbsp; String name=java.net.URLEncoder.encode("世界文化.doc","UTF-8"));%&gt;&nbsp;&nbsp; &lt;a href="c:\&lt;%=name%&gt;"&gt;世界文化.doc&lt;/a&gt;</p>
<p>Download.jsp文件<br />
---------------------------------------------------------<br />
&lt;%<br />
&nbsp;&nbsp; java.io.BufferedInputStream bis=null;<br />
&nbsp;&nbsp; java.io.BufferedOutputStream&nbsp;&nbsp; bos=null;<br />
try{<br />
String filename=request.getParameter("filename");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; filename=new String(filename.getBytes("iso8859-1"),"gb2312");<br />
response.setContentType("application/x-msdownload");<br />
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));<br />
bis =new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("files/" + filename)));<br />
bos=new java.io.BufferedOutputStream(response.getOutputStream()); <br />
byte[] buff = new byte[2048];<br />
int bytesRead;<br />
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {<br />
&nbsp;&nbsp; bos.write(buff,0,bytesRead);<br />
}<br />
}<br />
catch(Exception e){<br />
e.printStackTrace();<br />
}<br />
finally {<br />
if (bis != null)bis.close();<br />
if (bos != null)bos.close();<br />
}<br />
%&gt;&nbsp;<br />
&nbsp;</p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/297088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-01 15:15 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/01/297088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件上传:用O’Reilly公司的cos实现文件上传 </title><link>http://www.blogjava.net/xlth2006/archive/2009/10/01/297085.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Thu, 01 Oct 2009 06:15:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/10/01/297085.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/297085.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/10/01/297085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/297085.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/297085.html</trackback:ping><description><![CDATA[key words: cos 文件上传 jsp上传<br />
<br />
index.html文件:<br />
<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">meta&nbsp;</span><span style="color: rgb(255,0,0)">http-equiv</span><span style="color: rgb(0,0,255)">="Content-Type"</span><span style="color: rgb(255,0,0)">&nbsp;content</span><span style="color: rgb(0,0,255)">="text/html;charset=gb2312"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">无标题文档</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">title</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">head</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,128,0)">&lt;!--</span><span style="color: rgb(0,128,0)">&nbsp;enctype的值很重要,upload.jsp为处理上传的jsp</span><span style="color: rgb(0,128,0)">--&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">form&nbsp;</span><span style="color: rgb(255,0,0)">name</span><span style="color: rgb(0,0,255)">="form1"</span><span style="color: rgb(255,0,0)">&nbsp;&nbsp;method</span><span style="color: rgb(0,0,255)">="post"</span><span style="color: rgb(255,0,0)">&nbsp;enctype</span><span style="color: rgb(0,0,255)">="multipart/form-data"</span><span style="color: rgb(255,0,0)">&nbsp;<br />
action</span><span style="color: rgb(0,0,255)">="upload.jsp"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">name</span><span style="color: rgb(0,0,255)">="file1"</span><span style="color: rgb(255,0,0)">&nbsp;type</span><span style="color: rgb(0,0,255)">="file"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">name</span><span style="color: rgb(0,0,255)">="file2"</span><span style="color: rgb(255,0,0)">&nbsp;type</span><span style="color: rgb(0,0,255)">="file"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">name</span><span style="color: rgb(0,0,255)">="file3"</span><span style="color: rgb(255,0,0)">&nbsp;type</span><span style="color: rgb(0,0,255)">="file"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">&lt;</span><span style="color: rgb(128,0,0)">input&nbsp;</span><span style="color: rgb(255,0,0)">type</span><span style="color: rgb(0,0,255)">="submit"</span><span style="color: rgb(255,0,0)">&nbsp;name</span><span style="color: rgb(0,0,255)">="Submit"</span><span style="color: rgb(255,0,0)">&nbsp;value</span><span style="color: rgb(0,0,255)">="上传"</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">p</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">form&nbsp;</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">body</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,255)">&lt;/</span><span style="color: rgb(128,0,0)">html</span><span style="color: rgb(0,0,255)">&gt;</span><span style="color: rgb(0,0,0)">&nbsp;</span></div>
<br />
upload.jsp文件 :<br />
<div style="border-right: rgb(204,204,204) 1px solid; padding-right: 5px; border-top: rgb(204,204,204) 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: rgb(204,204,204) 1px solid; width: 98%; padding-top: 4px; border-bottom: rgb(204,204,204) 1px solid; background-color: rgb(238,238,238)"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">&lt;%</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">@page&nbsp;import</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">java.io.*</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">%&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">&lt;%</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">@page&nbsp;import</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">com.oreilly.servlet.MultipartRequest</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">%&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">&lt;%</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">@page&nbsp;import</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">com.oreilly.servlet.multipart.CoverFileRenamePolicy</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">%&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">&lt;%</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">@page&nbsp;contentType</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">text/html;&nbsp;charset=gb2312</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">%&gt;</span><span style="color: rgb(0,0,0)"><br />
</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">&lt;%</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><br />
</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">//</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">文件上传后，保存在c:</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">\\</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">upload<br />
</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">String</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;saveDirectory&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">c:\\upload</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">;<br />
</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">//</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">每个文件最大5m,最多3个文件,所以<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">int</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;maxPostSize&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">3</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">*</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">5</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">*</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">1024</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">*</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">1024</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;;<br />
</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">//</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">response的编码为</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">gb2312</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">,同时采用缺省的文件名冲突解决策略,实现上传<br />
//<font color="#ff0000">就这一句就完成上传了,真是很爽</font><br />
<font color="#009900">MultipartRequest&nbsp;multi&nbsp;</font></span><font color="#009900"><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">= </span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">new</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;MultipartRequest(request,&nbsp;saveDirectory,&nbsp;maxPostSize,</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">gb2312</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span></font><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)"><font color="#009900">);</font><br />
<br />
</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">//</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">输出反馈信息<br />
&nbsp;Enumeration&nbsp;files&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;multi.getFileNames();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">while</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;(files.hasMoreElements())&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">ccc</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">String</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;name&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;(</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">String</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">)files.nextElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;f&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;multi.getFile(name);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">if</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">(f!</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">null</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">String</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;fileName&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;<font color="#ff0000">multi.getFilesystemName(name)</font>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255); background-color: rgb(245,245,245)">String</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;lastFileName</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">=</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;saveDirectory</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">+</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">\\</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">+</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&nbsp;fileName;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">上传的文件:</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">+</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">lastFileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">&lt;hr&gt;</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">"</span><span style="color: rgb(0,0,0); background-color: rgb(245,245,245)">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span><span style="color: rgb(0,0,0); background-color: rgb(255,255,0)">%&gt;</span></div>
<img src ="http://www.blogjava.net/xlth2006/aggbug/297085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-10-01 14:15 <a href="http://www.blogjava.net/xlth2006/archive/2009/10/01/297085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>更改myeclipse打开jsp页面的关联方式为MyEclipse JSP Editor 解决myEclipse打开JSP时要等上好几秒的问题</title><link>http://www.blogjava.net/xlth2006/archive/2009/09/28/296735.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Mon, 28 Sep 2009 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/09/28/296735.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/296735.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/09/28/296735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/296735.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/296735.html</trackback:ping><description><![CDATA[<p>myEclipse打开JSP时老是要等上好几秒原因?</p>
<p>这个问题的确很烦人，其实都是MyEclipse的&#8220;自作聪明&#8221;的结果（它默认用Visual Designer来打开的），进行下列设置即可有效缓解之。</p>
<p>1. 要么右键单击文件，选择 Open With -》 MyEclipse JSP Editor 打开，这样不会采用可视化的打开，耗资源少，自动提示也非常快。</p>
<p>2. 要么采取一劳永逸的方法 Window -》 Preferences -》 General -》 Editors -》 File Associations <br />
将默认打*.jsp的editor关联设置为MyEclipse JSP Editor .<br />
<br />
<font size="3"><strong>jsp页面提示功能卡的解决方法</strong><br />
上一篇文章只是解决单个工程表面问题，也就是提示的时候用了我自己的这个servlet-api.jar这个jar包，所以会解决问题，如果你不想加入jar包，那么请看以下说明：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<strong>最终原因为：</strong> <br />
新建的工程中加入了j2ee1.4 lib库，库中的javax.servelet.jar这个包中的javadoc location 位置设置的官方网站。这样你每次提示的时候都要去官方网站去找doc所以导致myeclipse会很卡，当禁用网卡或者拔掉网线的时候，就不会在卡了。 <br />
<span style="color: white">http://hanbao.javaeye.com/blog/244272</span> <br />
<strong>最终解决方法：</strong> <br />
菜单 [Window]-&gt;[Preferences]-&gt;[MyEclipse]-&gt;[JavaEnterprise Project]-&gt;[Library Sets] [J2EE1.4]和[J2EE1.3]下的javax.servelet.jar <br />
点开树 选择[javadoc location]这个节点 双击 然后在对话框中，把这个 那个地址去掉为空或者选择你本地javadoc地址即可解决 jsp 自动提示 卡 慢 的问题。 </font></p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/296735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-09-28 10:13 <a href="http://www.blogjava.net/xlth2006/archive/2009/09/28/296735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让JSP页面不缓存[设置JSP页面立即过期] </title><link>http://www.blogjava.net/xlth2006/archive/2009/09/25/296475.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Fri, 25 Sep 2009 15:20:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/09/25/296475.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/296475.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/09/25/296475.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/296475.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/296475.html</trackback:ping><description><![CDATA[<p>在JSP页面的前面加上： <br />
<br />
&lt;% <br />
response.setHeader("Cache-Control","no-store"); <br />
response.setHeader("Pragrma","no-cache"); <br />
response.setDateHeader("Expires",0); <br />
%&gt; </p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/296475.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-09-25 23:20 <a href="http://www.blogjava.net/xlth2006/archive/2009/09/25/296475.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jsp页面实现文件上传</title><link>http://www.blogjava.net/xlth2006/archive/2009/09/22/295938.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Tue, 22 Sep 2009 00:26:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/09/22/295938.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/295938.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/09/22/295938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/295938.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/295938.html</trackback:ping><description><![CDATA[<p><strong>名称</strong>：jsp页面上传类<br />
</p>
<p><strong>特点</strong>：</p>
<ol>
    <li>可以多文件上传；
    <li>返回上传后的文件名；
    <li>form表单中的其他参数也可以得到。</li>
</ol>
<p>先贴上传类,JspFileUpload</p>
<p><span class="code">package com.vogoal.util;<br />
import java.io.BufferedOutputStream;<br />
import java.io.File;<br />
import java.io.FileOutputStream;<br />
import java.io.IOException;<br />
import java.text.SimpleDateFormat;<br />
import java.util.ArrayList;<br />
import java.util.Date;<br />
import java.util.Hashtable;<br />
import javax.servlet.ServletInputStream;<br />
import javax.servlet.http.HttpServletRequest;<br />
/*<br />
* vogoalAPI 1.0<br />
* Auther SinNeR@blueidea.com<br />
* by vogoal.com<br />
* mail: vogoals@hotmail.com<br />
*/<br />
/**<br />
* JSP上传文件类<br />
* <br />
* @author SinNeR<br />
* @version 1.0<br />
*/<br />
public class JspFileUpload {<br />
&nbsp;&nbsp;&nbsp;&nbsp;/** request对象 */<br />
&nbsp;&nbsp;&nbsp;&nbsp;private HttpServletRequest request = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;/** 上传文件的路径 */<br />
&nbsp;&nbsp;&nbsp;&nbsp;private String uploadPath = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;/** 每次读取得字节的大小 */<br />
&nbsp;&nbsp;&nbsp;&nbsp;private static int BUFSIZE = 1024 * 8;<br />
&nbsp;&nbsp;&nbsp;&nbsp;/** 存储参数的Hashtable */<br />
&nbsp;&nbsp;&nbsp;&nbsp;private Hashtable paramHt = new Hasptable();<br />
&nbsp;&nbsp;&nbsp;&nbsp;/** 存储上传的文件的文件名的ArrayList */<br />
&nbsp;&nbsp;&nbsp;&nbsp;private ArrayList updFileArr = new ArrayList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 设定request对象。<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param request<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;HttpServletRequest request对象<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;public void setRequest(HttpServletRequest request) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.request = request;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 设定文件上传路径。<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @param path<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;用户指定的文件的上传路径。<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;public void setUploadPath(String path) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.uploadPath = path;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp; * 文件上传处理主程序。&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;B<br />
&nbsp;&nbsp;&nbsp;&nbsp; * <br />
&nbsp;&nbsp;&nbsp;&nbsp; * @return int 操作结果 0 文件操作成功；1 request对象不存在。 2 没有设定文件保存路径或者文件保存路径不正确；3<br />
&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;没有设定正确的enctype；4 文件操作异常。<br />
&nbsp;&nbsp;&nbsp;&nbsp; */<br />
&nbsp;&nbsp;&nbsp;&nbsp;public int process() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int status = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 文件上传前，对request对象，上传路径以及enctype进行check。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status = preCheck();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 出错的时候返回错误代码。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (status != 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return status;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &#65533;&#65533;参数或者文件名&#65533;u&#65533;&#65533;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String name = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 参数的value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String value = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 读取的流是否为文件的标志位<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean fileFlag = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 要存储的文件。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File tmpFile = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 上传的文件的名字<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String fName = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream baos = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedOutputStream bos = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &#65533;&#65533;存储参数的Hashtable<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paramHt = new Hashtable();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updFileArr = new ArrayList();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int rtnPos = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[] buffs = new byte[BUFSIZE * 8];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &#65533;取得ContentType<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String contentType = request.getContentType();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int index = contentType.indexOf("boundary=");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String boundary = "--" + contentType.substring(index + 9);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String endBoundary = boundary + "--";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// &#65533;从request对象中取得流。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ServletInputStream sis = request.getInputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 读取1行<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ((rtnPos = sis.readLine(buffs, 0, buffs.length)) != -1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String strBuff = new String(buffs, 0, rtnPos);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 读取1行数据&#65533;n&#65533;&#65533;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (strBuff.startsWith(boundary)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (name != null &amp;&amp; name.trim().length() &gt; 0) {<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 (fileFlag) {<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;bos.flush();<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;baos.close();<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;bos.close();<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;baos = null;<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;bos = null;<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;updFileArr.add(fName);<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;} else {<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;Object obj = paramHt.get(name);<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;ArrayList al = new ArrayList();<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;if (obj != null) {<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;al = (ArrayList) obj;<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 />
&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;al.add(value);<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;System.out.println(value);<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;paramHt.put(name, al);<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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name = new String();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value = new String();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileFlag = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fName = new String();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtnPos = sis.readLine(buffs, 0, buffs.length);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rtnPos != -1) {<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;strBuff = new String(buffs, 0, rtnPos);<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 (strBuff.toLowerCase().startsWith(<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;"content-disposition: form-data; ")) {<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;int nIndex = strBuff.toLowerCase().indexOf(<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;"name=\"");<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;int nLastIndex = strBuff.toLowerCase().indexOf(<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;"\"", nIndex + 6);<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;name = strBuff.substring(nIndex + 6, nLastIndex);<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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int fIndex = strBuff.toLowerCase().indexOf(<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;"filename=\"");<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 (fIndex != -1) {<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;fileFlag = true;<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;int fLastIndex = strBuff.toLowerCase().indexOf(<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;"\"", fIndex + 10);<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;fName = strBuff.substring(fIndex + 10, fLastIndex);<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;fName = getFileName(fName);<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;if (fName == null || fName.trim().length() == 0) {<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;fileFlag = false;<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;sis.readLine(buffs, 0, buffs.length);<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;sis.readLine(buffs, 0, buffs.length);<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;sis.readLine(buffs, 0, buffs.length);<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;continue;<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;}else{<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;fName = getFileNameByTime(fName);<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;sis.readLine(buffs, 0, buffs.length);<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;sis.readLine(buffs, 0, buffs.length);<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 />
&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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (strBuff.startsWith(endBoundary)) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (name != null &amp;&amp; name.trim().length() &gt; 0) {<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 (fileFlag) {<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;bos.flush();<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;baos.close();<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;bos.close();<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;baos = null;<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;bos = null;<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;updFileArr.add(fName);<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;} else {<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;Object obj = paramHt.get(name);<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;ArrayList al = new ArrayList();<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;if (obj != null) {<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;al = (ArrayList) obj;<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 />
&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;al.add(value);<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;paramHt.put(name, al);<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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fileFlag) {<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 (baos == null &amp;&amp; bos == null) {<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;tmpFile = new File(uploadPath + fName);<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;baos = new FileOutputStream(tmpFile);<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;bos = new BufferedOutputStream(baos);<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 />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bos.write(buffs, 0, rtnPos);<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;baos.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<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;System.out.println("test :" + value + "--" + strBuff);<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;value = value + strBuff;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status = 4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return status;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;private int preCheck() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int errCode = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( request == null )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( uploadPath == null || uploadPath.trim().length() == 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File tmpF = new File(uploadPath);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!tmpF.exists())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String contentType = request.getContentType();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( contentType.indexOf("multipart/form-data") == -1 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return errCode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public String getParameter(String name){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String value = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( name == null || name.trim().length() == 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value = (paramHt.get(name) == null)?"":(String)((ArrayList)paramHt.get(name)).get(0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;public String[] getParameters(String name){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( name == null || name.trim().length() == 0 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ( paramHt.get(name) == null )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ArrayList al = (ArrayList)paramHt.get(name);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[] strArr = new String[al.size()];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( int i=0;i&lt;al.size();i++ )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strArr[i] = (String)al.get(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return strArr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;public int getUpdFileSize(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return updFileArr.size();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;public String[] getUpdFileNames(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[] strArr = new String[updFileArr.size()];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for ( int i=0;i&lt;updFileArr.size();i++ )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strArr[i] = (String)updFileArr.get(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return strArr;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;private String getFileName(String input){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int fIndex = input.lastIndexOf("\\");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fIndex == -1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fIndex = input.lastIndexOf("/");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (fIndex == -1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return input;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input = input.substring(fIndex + 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return input;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;private String getFileNameByTime(String input){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int index = input.indexOf(".");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date dt = new Date();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return input.substring(0,index) + sdf.format(dt) + input.substring(index);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></p>
<p><strong>说明</strong>：</p>
<p>这个类基本解决了上一贴的上一贴说的存在的bug和不足。主要做了如下修正。</p>
<ol>
    <li>用户可以设定文件上传的路径，这里没有用request对象的getRealPath方法来取得相对路径，而是用了绝对路径。是一个小败笔。因为有时候用户只是得到服务器的一个应用，而不知道整个服务器的路径。但是既然getRealPath自己可以得到，用户自己取得也可以。
    <li>在文件上传处理的时候，预先进行了check，把一些可能出现的造成上传失败的情况拍查掉。避免该类出现不该出现的异常。
    <li>捕获了IO异常，避免文件上传的时候出现异常时程序的不友好表现
    <li>提供了方法返回form表单中其他参数的取得，模拟了HttpServletRequest对象的getParameter和getParameters方法（后面这个方法是叫这个名字么-_-b），取得Parameter的名称的方法没有提供，是个小缺陷。
    <li>提供了方法返回上传的文件的件数和上传的文件名，方便用户作其他操作。</li>
</ol>
<p>现在介绍下JSP页面中如何用这个类实现上传。</p>
<p>首先，要把这个类编译后的class文件拷贝到WEB-INF/classes/目录下。注意保持package的结构。</p>
<p>在jsp页面中引用这个类</p>
<p><span class="code"></p>
<p>&lt;<a href="mailto:%@page">%@page</a> import="com.vogoal.util.JspFileUpload"%&gt;</p>
<p>&lt;%<br />
&nbsp;&nbsp;&nbsp; //初始化<br />
&nbsp;&nbsp;&nbsp; JspFileUpload jfu = new JspFileUpload();<br />
&nbsp;&nbsp;&nbsp; //设定request对象<br />
&nbsp;&nbsp;&nbsp; jfu.setRequest(request);<br />
&nbsp;&nbsp;&nbsp; //设定上传的文件路径<br />
&nbsp;&nbsp;&nbsp; jfu.setUploadPath("C:\\");<br />
&nbsp;&nbsp;&nbsp; //上传处理<br />
&nbsp;&nbsp;&nbsp; int rtn = jfu.process();<br />
&nbsp;&nbsp;&nbsp; //取得form中其他input控件参数的值<br />
&nbsp;&nbsp;&nbsp; String username = jfu.getParameter("username");<br />
&nbsp;&nbsp;&nbsp; //如果对应同一个参数有多个input控件，返回数组<br />
&nbsp;&nbsp;&nbsp; String[] usernameArr = jfu.getParameters("username");<br />
&nbsp;&nbsp;&nbsp; //取得上传的文件的名字<br />
&nbsp;&nbsp;&nbsp; String[] fileArr = jfu.getUpdFileNames();<br />
&nbsp;&nbsp;&nbsp; //取得上传文件的个数，这个方法有点鸡肋<br />
&nbsp;&nbsp;&nbsp; int fileNumber = jfu.getUpdFileSize();<br />
//下面的是测试输出的代码。<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("parameter:" + username);<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("parameter size:" + usernameArr.length);<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("fileArr size:" + fileArr.length);<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (fileArr.length &gt; 0)<br />
//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("fileArr 0:" + fileArr[0]);<br />
%&gt;</p>
<p></span></p>
<p><strong>使用的时候的注意事项</strong>：</p>
<ol>
    <li>一定要设定request对象。
    <li>一定要设定正确的上传路径。
    <li>执行完了之后才可以得到其他参数，因为执行了之后这些参数才被分析。</li>
</ol>
<p>1,2两点如果没有做到的话，process方法执行的时候汇报错。</p>
<p><strong>各个用户可用的方法及说明</strong>：</p>
<p>设定requet对象。<br />
public void setRequest(HttpServletRequest request)<br />
<br />
设定文件上传的路径。<br />
public void setUploadPath(String path)<br />
<br />
文件上传处理主程序。<br />
@return int 操作结果 0 文件操作成功；1 request对象不存在。 2 没有设定文件保存路径或者文件保存路径不正确；3<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;没有设定正确的enctype；4 文件操作异常。<br />
public int process()</p>
<p>根据name取得form表单中其他传递的参数的值（多个的话返回其中一个）<br />
public String getParameter(String name)</p>
<p>根据name取得form表单中其他传递的参数的值（返回数组，可有多个）<br />
public String[] getParameters(String name)</p>
<p>取得上传成功文件的个数<br />
public int getUpdFileSize()</p>
<p>取得上传的文件名对应的数组。<br />
public String[] getUpdFileNames()</p>
<p>注意process方法地返回值，在不是0的情况下操作失败。</p>
<p><strong>以下提供测试类以及测试页面</strong>（见附件）：</p>
<p>HelloPostFile.html<br />
HelloPostFile.jsp<br />
写在jsp中的代码的测试文件。<br />
HelloPostFileWithClass.html<br />
HelloPostFileWithClass.jsp<br />
抽出class后的测试文件。<br />
src在<br />
WEB-INF/src/<br />
class在<br />
WEB-INF/classes/</p>
<p><strong>另：</strong><br />
由于这个文件被我在中文日文系统下编辑过，注释出现乱码，所以大部分都删掉了，见谅。</p>
<p><a href="http://www.blueidea.com/articleimg/2008/01/5258/WEB-INF.zip" target="_blank">下载：WEB-INF.zip</a><a href="http://www.blueidea.com/articleimg/2008/01/5258/WEB-INF.zip" target="_blank"></p>
</a>
  <img src ="http://www.blogjava.net/xlth2006/aggbug/295938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-09-22 08:26 <a href="http://www.blogjava.net/xlth2006/archive/2009/09/22/295938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java文件上传</title><link>http://www.blogjava.net/xlth2006/archive/2009/09/22/295936.html</link><dc:creator>铁猴</dc:creator><author>铁猴</author><pubDate>Tue, 22 Sep 2009 00:08:00 GMT</pubDate><guid>http://www.blogjava.net/xlth2006/archive/2009/09/22/295936.html</guid><wfw:comment>http://www.blogjava.net/xlth2006/comments/295936.html</wfw:comment><comments>http://www.blogjava.net/xlth2006/archive/2009/09/22/295936.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xlth2006/comments/commentRss/295936.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xlth2006/services/trackbacks/295936.html</trackback:ping><description><![CDATA[<p>适用于JSP，将jspSmartUpload.jar置于WEB-INF\lib下</p>
<p>----------------------------------------------------------</p>
<p><strong><font color="#ff0000">Jspsmart1.html</font></strong></p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart1.html&lt;/title&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=GB2312"&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<br />
&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;form name="Form1" enctype="<font color="#003300"><strong>multipart/form-data</strong></font>" method="post" action="Jspsmart1.jsp"&gt;<br />
&lt;p&gt;上传文件 1：&lt;input type="file" name="File1" size="20" maxlength="20"&gt;&lt;/p&gt;<br />
&lt;input type="submit" value="上传"&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&lt;input type="reset" value="清除"&gt;&nbsp;&nbsp;<br />
&lt;/form&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><font color="#ff0000"><strong>Jspsmart1.jsp</strong></font></p>
<p>&lt;%@ page import="com.jspsmart.upload.*" %&gt;<br />
&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart1.jsp&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /&gt;<br />
&lt;% <br />
//计算文件上传个数 <br />
int count=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
//SmartUpload的初始化，使用这个jspsmart一定要在一开始就这样声明 <br />
mySmartUpload.initialize(pageContext);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
//生命限制上传的文件大小为 5 MB&nbsp;&nbsp;&nbsp;&nbsp;<br />
mySmartUpload.setMaxFileSize(5 * 1024 * 1024); <br />
<br />
//依据form的内容上传 <br />
mySmartUpload.upload(); <br />
<br />
try {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; //将文件存放于D:\totalExample\jsp\UploadFile\&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; count = mySmartUpload.save("D:\\totalExample\\jsp\\UploadFile\\");<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; //打印出上传文件的个数&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; out.println("您成功上传"+count + "个文件.");<br />
&nbsp;&nbsp;<br />
} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp; out.println(e.toString());<br />
} <br />
%&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>---------------------------------------------------------------------</p>
<p><strong><font color="#ff0000">Jspsmart2.html</font></strong></p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart3.html&lt;/title&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=GB2312"&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<br />
&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;form name="Form1" enctype="<font color="#003300"><strong>multipart/form-data</strong></font>" method="post" action="Jspsmart2.jsp"&gt;<br />
&lt;p&gt;上传文件 1：&lt;input type="file" name="File1" size="20" maxlength="20"&gt;&lt;/p&gt;<br />
&lt;input type="submit" value="上传"&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&lt;input type="reset" value="清除"&gt;&nbsp;&nbsp;<br />
&lt;/form&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><strong><font color="#ff0000">Jspsmart2.jsp</font></strong></p>
<p>&lt;%@ page import="com.jspsmart.upload.*" %&gt;<br />
&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart2.jsp&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /&gt;<br />
&lt;% <br />
//计算文件上传个数<br />
int count=0;<br />
<br />
//SmartUpload的初始化，使用这个jspsmart一定要在一开始就这样声明<br />
mySmartUpload.initialize(pageContext);<br />
<br />
//依据form的内容上传<br />
mySmartUpload.upload();<br />
<br />
//将上传的文件一个一个取出来处理<br />
for (int i=0;i&lt;mySmartUpload.getFiles().getCount();i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取出一个文件<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i);<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果文件存在，则做存档操作<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!myFile.isMissing()) {<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //将文件存放于绝对路径的位置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myFile.saveAs("D:\\totalExample\\jsp\\UploadFile\\" + <em><strong><font color="#00ff33">myFile.getFileName(), </font></strong></em>mySmartUpload.SAVE_PHYSICAL);<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //显示此上传文件的详细信息<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("FieldName = " + myFile.getFieldName() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("Size = " + myFile.getSize() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("FileName = " + myFile.getFileName() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("FileExt = " + myFile.getFileExt() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("FilePathName = " + myFile.getFilePathName() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("ContentType = " + myFile.getContentType() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("ContentDisp = " + myFile.getContentDisp() +"&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("TypeMIME = " + myFile.getTypeMIME() +"&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("SubTypeMIME = " + myFile.getSubTypeMIME() + "&lt;BR&gt;");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count ++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
// 显示应该上传的文件数目 <br />
out.println("&lt;BR&gt;" + mySmartUpload.getFiles().getCount() + " files could be uploaded.&lt;BR&gt;");<br />
<br />
// 显示成功上传的文件数目 <br />
out.println(count + "file(s) uploaded.");<br />
%&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>------------------------------------------------------------------------------</p>
<p><strong><font color="#ff0000">Jspsmart3.html</font></strong></p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart3.html&lt;/title&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=GB2312"&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<br />
&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;form name="Form1" enctype="<font color="#003300"><strong>multipart/form-data</strong></font>" method="post" action="Jspsmart2.jsp"&gt;<br />
&lt;p&gt;上传文件 1：&lt;input type="file" name="File1" size="20" maxlength="20"&gt;&lt;/p&gt;<br />
&lt;input type="submit" value="上传"&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&lt;input type="reset" value="清除"&gt;&nbsp;&nbsp;<br />
&lt;/form&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><strong><font color="#ff0000">Jspsmart3.jsp</font></strong></p>
<p>&lt;%@ page import="com.jspsmart.upload.*" %&gt;<br />
&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;Jspsmart3.jsp&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;h2&gt;文件上传范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /&gt;<br />
&lt;%<br />
<br />
//计算文件上传个数 <br />
int count=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
//SmartUpload之初始化，使用这个jspsmart一定要在一开始就这样声明<br />
mySmartUpload.initialize(pageContext);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>//声明可以上传的文件类型<br />
mySmartUpload.setAllowedFilesList("htm,html,txt,,");</p>
<p>//限制存档位置，可存档于绝对位置<br />
mySmartUpload.setDenyPhysicalPath(false);</p>
<p>//依据 form之内容上传 <br />
mySmartUpload.upload();</p>
<p>//将文件用原本的名字存放于server上的相对路径<br />
try {<br />
&nbsp;&nbsp;&nbsp;&nbsp; count = mySmartUpload.save("D:\\totalExample\\jsp\\UploadFile\\", mySmartUpload.SAVE_PHYSICAL);<br />
&nbsp;&nbsp;&nbsp;<br />
} catch (Exception e)&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out.println("&lt;b&gt;Wrong selection : &lt;/b&gt;" + e.toString());<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
//打印出总共上传文件个数<br />
out.println(count + " file(s) uploaded.");<br />
%&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>---------------------------------------------------------------</p>
<p><strong><font color="#ff0000">download.jsp</font></strong></p>
<p>&lt;%@ page import="com.jspsmart.upload.*" %&gt;<br />
&lt;%@ page contentType="text/html;charset=GB2312" %&gt;</p>
<p>&lt;html&gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt; download.jsp&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;h2&gt;文件下载范例 - jspSmart&lt;/h2&gt;</p>
<p>&lt;jsp:useBean id="mySmartUpload" scope="page" <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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.jspsmart.upload.SmartUpload" /&gt;</p>
<p>&lt;% <br />
// SmartUpload之初始化<br />
mySmartUpload.initialize(pageContext); <br />
<br />
//必须如此声明，否则将会把文件显示于浏览器中<br />
mySmartUpload.setContentDisposition("inline;"); <br />
<br />
//将 sample.zip下载，下载默认名称为downloaded.zip<br />
mySmartUpload.downloadFile("C:\\upload\\sample.zip",<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "application/x-zip-compressed",<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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "downloaded.zip");<br />
%&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<img src ="http://www.blogjava.net/xlth2006/aggbug/295936.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xlth2006/" target="_blank">铁猴</a> 2009-09-22 08:08 <a href="http://www.blogjava.net/xlth2006/archive/2009/09/22/295936.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>