﻿<?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-crycz-文章分类-Web</title><link>http://www.blogjava.net/crycz/category/19520.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 07 Nov 2010 10:32:40 GMT</lastBuildDate><pubDate>Sun, 07 Nov 2010 10:32:40 GMT</pubDate><ttl>60</ttl><item><title>获取html代码中的文本</title><link>http://www.blogjava.net/crycz/articles/328586.html</link><dc:creator>blues</dc:creator><author>blues</author><pubDate>Wed, 11 Aug 2010 15:54:00 GMT</pubDate><guid>http://www.blogjava.net/crycz/articles/328586.html</guid><wfw:comment>http://www.blogjava.net/crycz/comments/328586.html</wfw:comment><comments>http://www.blogjava.net/crycz/articles/328586.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crycz/comments/commentRss/328586.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crycz/services/trackbacks/328586.html</trackback:ping><description><![CDATA[function test() {<br />
var html = 'abc&lt;div style="width:34;"&gt;中国bcd&lt;/div&gt;=efg&lt;div&gt;&lt;span&gt;我的 &lt;/span&gt;啊&lt;a&gt;&lt;img/&gt;&lt;/a&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;';<br />
var div = document.createElement('div');<br />
//var div2 = document.createElement('div');<br />
//var text = document.createTextNode(html);<br />
//div2.appendChild(text);<br />
<br />
div.innerHTML = html;<br />
//div.appendChild(div2);<br />
alert(div.innerHTML);<br />
alert(getInnerText(div));<br />
}<br />
<br />
function getInnerText(div) {<br />
if(div.childNodes.length&lt;1) {<br />
&nbsp;&nbsp;&nbsp; if(div.nodeType==3){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return div.nodeValue;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return "";<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
var str = '';<br />
var ind = div.childNodes.length;<br />
for (var i = 0; i &lt; ind ; i ++) {<br />
&nbsp;&nbsp;&nbsp; var temp = div.childNodes[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp; str = str + getInnerText(temp);<br />
}<br />
<br />
return str;<br />
}<br />
<img src ="http://www.blogjava.net/crycz/aggbug/328586.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crycz/" target="_blank">blues</a> 2010-08-11 23:54 <a href="http://www.blogjava.net/crycz/articles/328586.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)--模拟Google首页(dwr实现ajax) </title><link>http://www.blogjava.net/crycz/articles/204012.html</link><dc:creator>blues</dc:creator><author>blues</author><pubDate>Fri, 30 May 2008 01:44:00 GMT</pubDate><guid>http://www.blogjava.net/crycz/articles/204012.html</guid><wfw:comment>http://www.blogjava.net/crycz/comments/204012.html</wfw:comment><comments>http://www.blogjava.net/crycz/articles/204012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crycz/comments/commentRss/204012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crycz/services/trackbacks/204012.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自&nbsp; posted on 2008-05-21 18:37 非凡DZ 阅读(1278) 评论(7) &nbsp;编辑 &nbsp;收藏 所属分类: J2EE上周末听了在用友工作的两个学长的一个小讲座，虽然时间不长，但还是有些收获的，其中一个开发部的经理就提到了一些小的技术点，其中就包括dwr，回家后上网查了查相关资料，了解到dwr是一个java开源框架，它的诞生就是为了降低开发...&nbsp;&nbsp;<a href='http://www.blogjava.net/crycz/articles/204012.html'>阅读全文</a><img src ="http://www.blogjava.net/crycz/aggbug/204012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crycz/" target="_blank">blues</a> 2008-05-30 09:44 <a href="http://www.blogjava.net/crycz/articles/204012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转)--通过MVC模式将Web视图和逻辑代码分离</title><link>http://www.blogjava.net/crycz/articles/203995.html</link><dc:creator>blues</dc:creator><author>blues</author><pubDate>Fri, 30 May 2008 01:00:00 GMT</pubDate><guid>http://www.blogjava.net/crycz/articles/203995.html</guid><wfw:comment>http://www.blogjava.net/crycz/comments/203995.html</wfw:comment><comments>http://www.blogjava.net/crycz/articles/203995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crycz/comments/commentRss/203995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crycz/services/trackbacks/203995.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转自 posted on 2008-05-19 16:11 银河使者 阅读(1446) 评论(8) &nbsp;编辑 &nbsp;收藏 所属分类: ajax 、javascript 、web 、 原创 MVC模式(Model-View-Controller)常被用在Web程序中。如Struts框架就是一个基于MVC模式的Web框架。所谓MVC模式，就是将视图（也就是客户端代码，包括html...&nbsp;&nbsp;<a href='http://www.blogjava.net/crycz/articles/203995.html'>阅读全文</a><img src ="http://www.blogjava.net/crycz/aggbug/203995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crycz/" target="_blank">blues</a> 2008-05-30 09:00 <a href="http://www.blogjava.net/crycz/articles/203995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解析混合表单请求的三种处理方法</title><link>http://www.blogjava.net/crycz/articles/95319.html</link><dc:creator>blues</dc:creator><author>blues</author><pubDate>Mon, 22 Jan 2007 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/crycz/articles/95319.html</guid><wfw:comment>http://www.blogjava.net/crycz/comments/95319.html</wfw:comment><comments>http://www.blogjava.net/crycz/articles/95319.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/crycz/comments/commentRss/95319.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/crycz/services/trackbacks/95319.html</trackback:ping><description><![CDATA[		<p>包下载路径就不给了.自己随便google一下都可以找到<br /><br />方法一:&#160;&#160;&#160;commons-fileupload-1.1.1.jar开源包:</p>
		<p>boolean isMultipart = org.apache.commons.fileupload.FileUploadBase<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .isMultipartContent(request);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Create a factory for disk-based file items<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(isMultipart)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DiskFileItemFactory factory = new DiskFileItemFactory();</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 设置大文件的缓冲目录<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; factory.setRepository(new File(this.getFilePathRepository()));<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 设置内存缓冲大小<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; factory.setSizeThreshold(this.getSizeThreshold());</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Create a new file upload handler<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ServletFileUpload upload = new ServletFileUpload(factory);</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 设置文件的最大字节数<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; upload.setSizeMax(this.getSizeMax());</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 设置响应的字符编码<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; httpServletResponse.setCharacterEncoding(this<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .getResponseCharacterEncoding());</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.getFileNames().clear();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Parse the request<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; try<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; List items = upload.parseRequest(request);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Process the uploaded items<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; for(Object itemT : items)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; FileItem item = (FileItem) itemT;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(!item.isFormField())<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 文件名有可能包含路径<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String name = item.getName();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(name == null || name.length() &lt; 1<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; || item.getSize() &lt; 1)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; continue;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; try<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 去掉文件名的路径<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; name = (new File(name)).getName();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String path = this.getFilePathCurrent() + "/"<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; + name;</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; item.write(new File(path));<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.fileNames.add(path);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .setAttribute("msg",<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; "save file successful!");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; catch (Exception e)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; e.printStackTrace();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //parameter<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String par = item.getFieldName();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //value<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(par+"-&gt;"+item.getString());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //processUploadedFile(item);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(request.getAttribute("msg") == null)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; request.setAttribute("msg", "save file failed!");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .receivingCompleted(false, request,<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; httpServletResponse);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.receivingCompleted(true, request, httpServletResponse);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; catch (FileUploadException e)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; e.printStackTrace();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.receivingCompleted(false, request, httpServletResponse);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; else<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("isMultipartContent = false");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this.receivingCompleted(false, request, httpServletResponse);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
		<p>方法二:&#160; oreilly开源包</p>
		<p>String projectName = null, fileName = null,dirName="E:/upload"; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; try<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // Use an advanced form of the constructor that specifies a<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // character<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // encoding of the request (not of the file contents) and a file<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // rename policy.<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; MultipartRequest multi = new MultipartRequest(request, dirName,<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 10 * 1024 * 1024, "ISO-8859-1",<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new DefaultFileRenamePolicy());</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; projectName = multi.getParameter("projectName");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("projectName = " + projectName);</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Enumeration params = multi.getParameterNames();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (params.hasMoreElements())<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String name = (String) params.nextElement();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String value = multi.getParameter(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(name == "projectName")<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; projectName = value;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(name + "=" + value);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println();</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("FILES:");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Enumeration files = multi.getFileNames();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (files.hasMoreElements())<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String name = (String) files.nextElement();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String filename = multi.getFilesystemName(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String originalFilename = multi.getOriginalFileName(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String type = multi.getContentType(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; File f = multi.getFile(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("name: " + name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("filename: " + filename);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("originalFilename: " + originalFilename);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("type: " + type);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(f != null)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("f.toString(): " + f.toString());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("f.getName(): " + f.getName());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fileName = f.getName();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("f.exists(): " + f.exists());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("f.length(): " + f.length());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
		<p>//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ArrayList&lt;Project&gt; projects = (ArrayList&lt;Project&gt;) session<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .getAttribute("projects");<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("projectName, fileName = " + projectName + ", "<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; + fileName);<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Project p = new Project(projectName, fileName);<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("PROJ = " + p);<br />//&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; projects.add(p);</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; catch (IOException lEx)<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; lEx.printStackTrace();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } <br /><br /><br />方法三:&#160; jspsmartupload.jar开源包<br /><br />selectfile.jsp----&gt;web.xml &gt;servletUpload.java&#160; 基本就是这么个结构</p>
		<p>下面是代码:</p>
		<p>//selectfile.jsp</p>
		<p>&lt;%@ page contentType="text/html;charset=GBK" %&gt;</p>
		<p>&lt;html&gt;<br />&lt;head&gt;<br />&#160;&lt;title&gt;file upload&lt;/title&gt;<br />&lt;/head&gt;</p>
		<p>&lt;body&gt;<br />&lt;font size="5" color="#FF0000"&gt;<br />&#160;&#160; &lt;b&gt;文件上传 - 使用jspsmart upload组件&lt;/b&gt;<br />&lt;/font&gt;&lt;br&gt;</p>
		<p>&lt;form name="selectfile" enctype="multipart/form-data" method="post" action="servletUpload"&gt;<br />　&lt;p&gt;文件名称： <br />　&lt;input type="file" name="ulfile" size="20" maxlength="80"&gt;&lt;br&gt;<br />　&lt;/p&gt;<br />&#160; &lt;p&gt;上传路径：<br />　&lt;input type="text" name="PATH" size="30" maxlength="50"&gt;&lt;br&gt;<br />　&lt;/p&gt;<br />　&lt;p&gt;附加内容：<br />　&lt;input type="text" name="other" size="30" maxlength="50"&gt;&lt;br&gt;<br />　&lt;/p&gt;<br />　&lt;p&gt; <br />　&lt;input type="submit" value="上传"&gt;<br />　&lt;input type="reset" value="清除"&gt;<br />　&lt;/p&gt;<br />&lt;/form&gt;</p>
		<p>&lt;/body&gt;<br />&lt;/html&gt;</p>
		<p>//servletUpload.java&#160; </p>
		<p>import java.io.*;<br />import java.util.*;<br />import javax.servlet.*;<br />import javax.servlet.http.*;<br />import com.jspsmart.upload.*;</p>
		<p>public class servletUpload extends HttpServlet {<br />&#160;<br />&#160;private ServletConfig config;<br />&#160;/**<br />&#160;* 初始化Servlet<br />&#160;*/<br />&#160;final public void init(ServletConfig config) throws ServletException {<br />&#160; this.config = config;<br />&#160;}<br />&#160;<br />&#160;/**<br />&#160;* 处理GET请求<br />&#160;*/<br />&#160;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {</p>
		<p>&#160; PrintWriter out = response.getWriter();<br />&#160; out.println("&lt;HTML&gt;");<br />&#160; out.println("&lt;BODY BGCOLOR='white'&gt;");<br />&#160; out.println("&lt;H1&gt;jspSmartUpload : Servlet Sample&lt;/H1&gt;");<br />&#160; out.println("&lt;HR&gt;&lt;BR&gt;");<br />&#160; out.println("The method of the HTML form must be POST.");<br />&#160; out.println("&lt;/BODY&gt;");<br />&#160; out.println("&lt;/HTML&gt;");<br />&#160;}<br />&#160;<br />&#160;/**<br />&#160;* 响应POST请求<br />&#160;*/<br />&#160;protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br />&#160; <br />&#160; PrintWriter out = response.getWriter();<br />&#160; out.println("&lt;HTML&gt;");<br />&#160; out.println("&lt;BODY BGCOLOR='white'&gt;");<br />&#160; out.println("&lt;H1&gt;jspSmartUpload : Servlet Sample&lt;/H1&gt;");<br />&#160; out.println("&lt;HR&gt;");</p>
		<p>&#160; // 变量定义<br />&#160; int count=0;<br />&#160; SmartUpload mySmartUpload = new SmartUpload();</p>
		<p>&#160; try {<br />&#160;&#160; // 初始化<br />&#160;&#160; mySmartUpload.initialize(config,request,response);</p>
		<p>&#160;&#160; // 上载<br />&#160;&#160; mySmartUpload.upload();<br />&#160;&#160; com.jspsmart.upload.File f1 = mySmartUpload.getFiles().getFile(0);<br />&#160;&#160; String name = f1.getFileName();<br />&#160; // System.out.println (name);<br />&#160; <br />&#160;&#160; </p>
		<p>&#160;&#160; // 保存上载文件到指定目录<br />&#160;&#160; // PATH为form表单提交过来的<br />&#160;&#160; count = mySmartUpload.save(mySmartUpload.getRequest().getParameter("PATH"));<br />&#160;&#160; //other为form表单提交过来的<br />&#160;&#160; String other=mySmartUpload.getRequest().getParameter("other"); //这里可以对other进行处理<br />&#160;&#160; //request.getParameter("PATH");request.gerParameter("other");<br />&#160;&#160; <br />&#160;&#160; // 显示处理结果<br />&#160;&#160; out.println(count + " file uploaded.");</p>
		<p>&#160; } catch (Exception e){<br />&#160;&#160; out.println("Unable to upload the file.&lt;br&gt;");<br />&#160;&#160; out.println("Error : " + e.toString());<br />&#160; }<br />&#160; <br />&#160; out.println("&lt;/BODY&gt;");<br />&#160; out.println("&lt;/HTML&gt;");<br />&#160;&#160;&#160; }<br />} </p>
		<p>
				<br />//web.xml的配置如下:</p>
		<p>
				<br />&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<a href="http://java.sun.com/dtd/web-app_2_3.dtd">http://java.sun.com/dtd/web-app_2_3.dtd</a>"&gt;<br />&lt;web-app&gt;</p>
		<p>
				<br />&#160; &lt;servlet&gt;<br />&#160;&#160;&#160; &lt;servlet-name&gt;upload&lt;/servlet-name&gt;<br />&#160;&#160;&#160; &lt;servlet-class&gt;servletUpload&lt;/servlet-class&gt;<br />&#160; &lt;/servlet&gt;</p>
		<p>&#160; &lt;servlet-mapping&gt;<br />&#160;&#160;&#160; &lt;servlet-name&gt;upload&lt;/servlet-name&gt;<br />&#160;&#160;&#160; &lt;url-pattern&gt;servletUpload&lt;/url-pattern&gt;<br />&#160; &lt;/servlet-mapping&gt;</p>
		<p>
				<br />&#160; &lt;welcome-file-list&gt;<br />&#160;&#160;&#160; &lt;welcome-file&gt;selectfile.jsp&lt;/welcome-file&gt;<br />&#160; &lt;/welcome-file-list&gt;</p>
		<p>
				<br />&lt;/web-app&gt;</p>
		<p>需要在WEB-INF\lib中引入jspsmart这个包,上网找一下就有,很多都有的下 <a href="http://www.jspsmart.com">www.jspsmart.com</a> 这里是他的官方网站.把编译后的class文件放到WEB-INF\classes下就可以运行了.</p>
		<p>这里面用到了jspsmart提供的mySmartUpload.getRequest().getParameter("other"); 这个东西,由于开始的时候觉得PATH地址没有必要传递就早早的把这条代码删掉了,后来就想用request.getParameter("")这个得到信息,可是总是出错.在网上找了N多文章,很多人面临同样的困难.于是想用逻辑关系把这种情况避免掉.就是用单独的form上传用另一个form往数据库里录入.可是录入的时候又得不到要上传的文件名,我是想把文件名存到数据库里的.如果一定要得的话就得放到session里去,一想这样太麻烦,弄不好还容易出bug,要是把临时信息放到数据库里去,有多人一起操作的话又是个问题,其中还遇到了想往file的属性value里写信息的问题.只能读,不能写,就是这个结果.每次都是快成功的时候就卡在这样的小地方了.于是上网查找其他组件看看能不能有相应的功能.这时候使用了fileupload这个组件,网友使用的情况来看这个也要好于jspsmart可是同样没找到getParameter这样的方法.</p>
		<p>于是继续在网上搜,结果找到自己原来用的那段代码,发现...原来mySmartUpload.getRequest().getParameter就可以实现了.巨汗啊.现在改成这个样子,可以运行了.不过也许后面还要改成其他的组件,使上传的数据更稳定一些.现在就先这样了,商务逻辑已经实现了</p>
		<p>
				<br />//&#160;&#160;&#160;&#160;&#160; 变量定义<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; /*int count=0;<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; SmartUpload mySmartUpload = new SmartUpload();</p>
		<p>
				<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; try {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 初始化<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySmartUpload.initialize(config,request,response);</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySmartUpload.setAllowedFilesList("doc,txt");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySmartUpload.setDeniedFilesList("exe,bat,jsp,htm,html,xml,");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 上载<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; mySmartUpload.upload();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; com.jspsmart.upload.File f1 = mySmartUpload.getFiles().getFile(0);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 保存上载文件到指定目录<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // PATH为form表单提交过来的<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; count = mySmartUpload.save("e:/current2");</p>
		<p>
				<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //other为form表单提交过来的<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String other=mySmartUpload.getRequest().getParameter("other"); //这里可以对other进行处理<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; //request.getParameter("PATH");request.gerParameter("other");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // 显示处理结果<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(count + " file uploaded.");</p>
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; } catch (Exception e){<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("Unable to upload the file.&lt;br&gt;");<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("Error : " + e.toString());<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
		<p>
				<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; com.jspsmart.upload.Request re = mySmartUpload.getRequest();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; Enumeration params = re.getParameterNames();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; while (params.hasMoreElements())<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String name = (String) params.nextElement();<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; String value = re.getParameter(name);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println(name + "=-&gt;" + value);<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; System.out.println("end2");*/</p>
   <img src ="http://www.blogjava.net/crycz/aggbug/95319.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/crycz/" target="_blank">blues</a> 2007-01-22 13:33 <a href="http://www.blogjava.net/crycz/articles/95319.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>