http://bbs.chinajavaworld.com,尤其是他们的banner,很喜欢。
struts在上传文件过程中如何自动建立文件夹(转)
转自:http://bbs.chinajavaworld.com/thread.jspa?messageID=724084&tstart=0
struts上传文件问题
发表于: 2006-5-23 下午9:27 回复
struts在上传文件过程中如何自动建立文件夹?并根据上传的文件名存入不同的文件夹中?如果能有具体的例子代码更好。请各位多多指教,十分感谢!
·Hibernate查询出错
chenyanji
发表: 268
点数: 80
来自: 北京
注册: 05-3-1
Re: struts上传文件问题
发表于: 2006-5-26 下午11:53 原帖: springlet 回复
还是应该用FILE处理吧
POPO帐号:yanji94521 QQ:309157714 MSN:yanji94521@hotmail.com 欢迎加入IT交流QQ群:5468368
·不需要编写actionForm、action来完成struts架构。
gzxthebest
发表: 9
点数: 100
注册: 05-9-23
Re: struts上传文件问题
发表于: 2006-5-29 上午1:16 原帖: springlet 回复
自动创建文件夹?还真没实现过,关注中
·关于jsp页面执行问题
test_1982
发表: 116
点数: 100
注册: 05-7-26
Re: struts上传文件问题
发表于: 2006-5-29 下午1:30 原帖: springlet 回复
可以通过file对象创建文件夹的。
1: 如果不存在{
File file = new File("d:/testD");
file.mkdir();
}
这样就创建了一个文件夹。后面的你应该知道如何递归的创建文件夹了吧。
Knowing how to make the one of the most abilities counts for much more
·大家好 关于3gp文件的转换
适合自己的才是最好的
一直想使用逆向法学习英语,可是我发现我没有这么多的时间和耐心去一遍一遍的听那些对我想取得的信息没有什么关系的文章。
我可能还是适合在获取适用信息的过程中学习英语来得心里踏实点。
JavaScript精简学习4:表单(转帖)
转自:http://www.dvbbs.net/tech/js/2006041949627.asp
JavaScript精简学习4:表单
作者: 来源:
阅读 156 人次 , 2006-4-19 16:47:00
43 表单构成
1: <form method=”post” action=”target.html” name=”thisForm”>
2: <input type=”text” name=”myText”>
3: <select name=”mySelect”>
4: <option value=”1”>First Choice</option>
5: <option value=”2”>Second Choice</option>
6: </select>
7: <br>
8: <input type=”submit” value=”Submit Me”>
9: </form>
44 访问表单中的文本框内容
1: <form name=”myForm”>
2: <input type=”text” name=”myText”>
3: </form>
4: <a href='#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a>
45 动态复制文本框内容
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText”><br>
3: Copy Text: <input type=”text” name=”copyText”>
4: </form>
5: <a href=”#” onClick=”document.myForm.copyText.value =
6: document.myForm.myText.value;”>Copy Text Field</a>
46 侦测文本框的变化
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText” onChange=”alert(this.value);”>
3: </form>
47 访问选中的Select
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: <option value=”Third Choice”>3</option>
6: </select>
7: </form>
8: <a href='#' onClick='alert(document.myForm.mySelect.value);'>Check Selection List</a>
48 动态增加Select项
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: </select>
6: </form>
7: <script language=”JavaScript”>
8: document.myForm.mySelect.length++;
9: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].text = “3”;
10: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].value = “Third Choice”;
11: </script>
49 验证表单字段
1: <script language=”JavaScript”>
2: function checkField(field) {
3: if (field.value == “”) {
4: window.alert(“You must enter a value in the field”);
5: field.focus();
6: }
7: }
8: </script>
9: <form name=”myForm” action=”target.html”>
10: Text Field: <input type=”text” name=”myField”onBlur=”checkField(this)”>
11: <br><input type=”submit”>
12: </form>
50 验证Select项
1: function checkList(selection) {
2: if (selection.length == 0) {
3: window.alert(“You must make a selection from the list.”);
4: return false;
5: }
6: return true;
7: }
51 动态改变表单的action
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br>
3: Password: <input type=”password” name=”password”><br>
4: <input type=”button” value=”Login” onClick=”this.form.submit();”>
5: <input type=”button” value=”Register” onClick=”this.form.action = ‘register.html’; this.form.submit();”>
6: <input type=”button” value=”Retrieve Password” onClick=”this.form.action = ‘password.html’; this.form.submit();”>
7: </form>
52 使用图像按钮
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br>
3: Password: <input type=”password”name=”password”><br>
4: <input type=”image” src=”login.gif” value=”Login”>
5: </form>
6:
53 表单数据的加密
1: <SCRIPT LANGUAGE='JavaScript'>
2: <!--
3: function encrypt(item) {
4: var newItem = '';
5: for (i=0; i < item.length; i++) {
6: newItem += item.charCodeAt(i) + '.';
7: }
8: return newItem;
9: }
10: function encryptForm(myForm) {
11: for (i=0; i < myForm.elements.length; i++) {
12: myForm.elements.value = encrypt(myForm.elements.value);
13: }
14: }
15:
16: //-->
17: </SCRIPT>
18: <form name='myForm' onSubmit='encryptForm(this); window.alert(this.myField.value);'>
19: Enter Some Text: <input type=text name=myField><input type=submit>
20: </form>
上面的encryptForm方法把表单中的数据转换为编码,在提交表单之前完成了简单的表单数据加密~
运用javascript制作弹出式表单获取用户输入数据及验证的
有两个主题:
一是接收数据:The JavaScript prompt - Getting user input;
二是验证数据:Create JavaScript Input Text Validation Fields
以"javascript""input"为关健字在google中搜索到这个方法如下:
http://www.webdevelopersnotes.com/tutorials/javascript/javascript_prompt_visitor_inputs.php3
|
如这是测试页面:
|
在javascript进行数据有效性的验证:
http://www.codeave.com/javascript/code.asp?u_log=100
|
示例代码:
|
delphibbs孙老师2003年的一篇关于xml-rpc的日记地址
用DIV标签和CSS技术进行HTML网页设计(转帖2篇)
转自:http://www.blogjava.net/weidy/archive/2006/06/01/49766.html,标题有改变。
用了四五年的Table排版,没觉得有什么不好,这一段时间迷上了Dojo,才发现如今已经到了不用DIV不行的年代。还是赶紧跟上潮流,把Table换成DIV吧! 改了几个页面,发现比想象的简单,更是尝到了用div的甜头。share自己一点浅浅的经验:
1. 先上网搜一下找点前人经验。推荐两篇好文:
http://www.glish.com/css/ "CSS Layout Techniques: for Fun and Profit"
http://www.alistapart.com/articles/practicalcss "Practical CSS Layout Tips, Tricks, & Techniques"
2. 随便找几个用DIV+CSS实现,结构又比较简单的网站,研究一下它的页面结构和CSS。比如我就是主要看了下面几个网站:
CSS禅花园 http://csszengarden.com/
Eclipse.org http://www.eclipse.org/
mozilla.com http://www.mozilla.com/
作为世界上CSS高手比武的擂台,CSS禅花园的模板实在多的恐怖,以前都只站在欣赏的角度不觉得,自己研究起来,也就只能是挑了一两个看看,再感慨了一番作者真是好创意好美工。有趣的是Eclipse.org的首页居然基本用的都是mozilla.com的CSS,对比着这两个网站看更能看出端倪。
3. 自己上手干吧,让你的页面内容和显示样式彻底分离,其实并不难。
Forward on committed response错误
原来用struts1.1使用如下注释掉的代码一切正常,
|
换为struts1.2.9后就出现:Forward on committed response错误(Tomcat5.0控制台debug);在网站上运行resin2.1.12在页面上报错:
500 Servlet Exception
java.lang.IllegalStateException: forward() not allowed after buffer has
committed.
at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:131)
at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:103)
at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:80)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
at com.learndiary.website.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:102)
at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:346)
at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:274)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:595)
--------------------------------------------------------------------------------
Resin 2.1.12 (built Tue Dec 9 14:58:25 PST 2003)
经过查资料,发现是PrintWriter已经返回用户数据后,就不能再forward到其它页面了。也就是这个错误:
|
所以就不在Action中写提示信息了,而把其移动jsp页面,如下:
|
同时,我发现如果在Action中用的是request.setAttribute("isMessage", "true");
则在页面中可以 <c:if test="${requestScope['isMessage'] == true }">
注意,上面的“true”是没有加引号的,可能这就是c:if的boolean类型吧,我也没有去查资料;
但是,如果为:request.setAttribute("isMessage", "otherString");
则必须这样: <c:if test="${requestScope['isMessage'] == \"otherString\"); }">
就是要加双引号,而且要进行转意。
谷歌的创新发动机与谷歌强大业界不安(转)
转自:http://tech.sina.com.cn/i/2006-05-24/1734954358.shtml,名字有所变化。
--------------------------------------------------------------------------------
http://www.sina.com.cn 2006年05月24日 17:34 中国民航报
□季 诺
创新制胜。谷歌(Google)正在依靠其强大的创新能力,获取互联网时代的统治权。它的创新能力来自何处?是什么令它能够如此快速增长?
10万元钱起家
一切始于10年前的一个小搜索引擎。
1996年,在斯坦福大学的校园网上出现了一个小搜索引擎。它的界面简单友好,服务器就设在学生宿舍里,名字也毫不起眼,叫作BackRub。这是谷歌创始人谢尔盖·布林和拉里·佩奇共同研究的成果。
BackRub的工作原理是以全新的网络搜索系统为基础,根据被点击的频繁程度,对网络上的每一个链接加以排序,把访问量最高的文件排在首位。
这个小工具便捷易用,随后在校内外开始流行起来。到1998年夏天,大约每天有1万人在使用BackRub。特别是在校园网里,它的搜索几乎占了整个校园网流量的一半,这在斯坦福引起了轰动。
布林回忆说:“在某一时刻我不得不进行抉择:到底是创立自己的事业还是继续上学?”一个偶然的机会让布林作出了创业的决定。
当布林向SUN公司创始人之一的恩迪·别赫托尔沙伊姆展示这个小搜索引擎时,后者打断了他:“这个非常有趣,但我要赶时间。您说您的公司名字叫什么?”边说边掏出支票本,几分钟后,就只剩下了目瞪口呆的布林和一张10万美元的支票了。支票上的名字属于一家还未开张的公司:谷歌有限股份公司。
随后布林和佩奇递交了休学申请书,然后开始筹集资金,开办公司。1998年9月7日,谷歌公司注册成功,注册资金100万美元。
带着宠物去上班
公司成立不到半年之后,谷歌就被美国媒体发现,迅速成为媒体明星,其访问量也突飞猛进。2004年谷歌上市,布林和佩奇成为了风云人物。2005年,谷歌股价的飙升也使它成为华尔街的年度大事之一。公司股票市值将近1300亿美元,几乎与IBM不相上下,在科技行业仅次于微软和英特尔。这让谷歌的两位创始人当选为英国《金融时报》的年度人物。
两位年轻的创始人以及谷歌管理层对创新的理解可能正在影响着谷歌的发展。以下是谷歌CEO埃立克·施密特与一位中国记者的对话:
记者:埃立克,你能否描述一下10年后的谷歌是一家什么样的公司?
埃立克:我不知道。
记者:那你们没有战略规划吗?
埃立克:没有。
记者:谷歌的计划最多做到几年?
埃立克:一年。
记者:为什么?
埃立克:因为变化。互联网是一个变化的行业,我们要随时做好改变的准备。
与此同时,谷歌宽松自由的公司文化是其创新的发动机。谷歌的工作环境甚至已经成为一个话题。员工有20%的时间可以做自己想做的事情。在谷歌规模还不大时,它就成了硅谷唯一一家用期权招聘厨师的公司。谷歌每天为所有员工提供免费的三餐以及免费的医疗、牙医、美发、洗衣、干衣等服务;员工带到公司里的宠物也是五花八门;台球桌、桌上足球、按摩椅散布于办公室里;公司还随时有热咖啡供应,冰箱里有免费的各种饮料。
李开复博士曾经撰文说,作为最成功的网络服务和网络产品提供商之一,谷歌公司从创立的那一天起就走上了一条与传统模式截然不同的创新之路。可以说,谷歌公司的创新模式在今天的IT产业中具有重要的典型意义:它既成功地解决了研究与开发脱节的问题,又在管理成本和研发效率上达到了最优。
李开复说,研发过程中的平等参与是谷歌产品不断创新的另一块基石。谷歌在公司内部建立了拥有评比和排序机制的“点子库”。员工们可以将自己想到的产品或技术创意放到“点子库”里,然后由其他员工投票评选。公司从“点子排行榜”中选出未来的研发方向,并根据每个“点子”受欢迎的程度决定该项目的规模和重要性。对每个具体的项目,工程师们不仅可以在“点子库”中用手投票,还可以直接用“脚”投票,即亲身参与到该项目的研究与开发中去,与同事—起实现自己的技术梦想。
强大到让人不安
也许谁也没料到谷歌今天竟然如此让IT界感到不安。
在谷歌建立起其创新帝国之前,IT业界已经接受大公司的统治达几十年之久。谷歌强大的创新能力,使其在短短几年时间里,超越旧的统治者,主宰了每个人的电脑。随着谷歌逐步走向成熟———它对行业的深远影响正慢慢显现出来。
然而,除了早期的狂热和欢迎,如今人们对谷歌持有一种复杂而微妙的态度———担心它是“新微软”。《经济学家》杂志认为,这一比喻既是对谷歌的恭维,又带有一定的责备之意。恭维是因为谷歌已经成长为一家能决定其他技术公司经营和生存环境的公司,这恰恰正如大型机时代的IBM和个人电脑时代的微软。而责备则是因为,人们越来越担忧谷歌过于强大,会对IT业界产生不利影响。
谷歌是不是变得过于强大了?其权力是不是太集中了?对使用搜索引擎的网民而言,谷歌为他们提供了一个进入互联网世界的绝妙导航机器;对依靠网络排名扩大营销的中小企业主来说,在谷歌搜索结果中的排名可能会决定企业的生死;对于微软、雅虎等竞争对手来说,谷歌正在让他们无法安睡。而那些小企业更是度日如年,因为一旦哪天谷歌决心进入他们今天赖以为生的地盘,他们就得随时准备卷铺盖回家或者盼望被谷歌购入门下。
谷歌眼下还在四处出击,进行令人生畏的扩张,正像当年微软所做的那样。谷歌是新的微软吗?这将是未来IT业内一个有趣的新话题。
(《中国民航报IT周刊》5月22日)
伊朗为什么一定要搞核计划(转)
转自:http://news.sina.com.cn/w/2006-05-17/14118950584s.shtml
--------------------------------------------------------------------------------
http://www.sina.com.cn 2006年05月17日14:11 新华网
新华网消息:每一个了解核扩散历史的人都知道,所有拥有核武器的国家都是在与明确的敌人发生实际冲突的情况下决定发展这种武器。这种战略是否正确,这是历史学家们探讨的问题。但重要的一点是,没有一个国家把大量资源投入到核弹及其运载系统的建造中,不管存在实际的或主观想象的战略需要。那么伊朗的战略需要是什么?《德国金融时报》日前在一篇题为《伊朗的战略需要》的文章,对此做了解读:
美国发展核武器是用来对付日本, 因为当时日本似乎决心继续战斗若干年。后来苏联发展核武器是为了对死敌美国产生威慑作用。英国和法国发展核武器出于两个原因:为了维护其下降的大国地位和有自己的威慑力量对付苏联。
在国王统治时期,伊朗总是担心美国(当时保护伊朗不受苏联侵犯的国家)可能中止对它的保护。自苏联帝国崩溃后,这样的威胁不再存在。
但伊朗在上世纪90年代初决定发展核武器。需要用核弹对付的敌人是美国。上世纪80年代中期,霍梅尼主义小组曾在世界上30多个穆斯林国家积极活动,并与伊拉克进行了一场生存或毁灭的战争。德黑兰的领导人这时看到,有一个国家不允许他们出口革命和主宰中东。这个国家就是美国。
现在,在阿富汗的塔利班和伊拉克的复兴党政权垮台后,中东原来的力量均势被打破了。那里需要建立新的平衡。美国总统布什打算建立一个民主和亲西方的新中东。 如果建立这样的中东,就不会有像德黑兰这样政权的立足之地。因此,伊朗决心坏布什的计划,并相反地建立一个反美的、伊斯兰主义的和受德黑兰控制的中东。
从理论上讲,两种野心之间的冲突是不可避免的,即使不会马上爆发。霍梅尼主义的领导人相信,他们能够赢得任何使用常规武器的长期冲突,这仅仅是因为美国的公众没有耐心,不愿意接受哪怕是少量人的死伤。伊拉克的情况表明了这一点。
美国想通过战争使伊朗屈服的惟一可能性在于使用战术核武器。因此毛拉们必须通过发展核威慑力量使自己具备反击美国的核优势的能力。毛拉们寄希望于,既不具备进行长期地面战争的能力又因担心遭到核报复而不能使用核武器的美国,会像它通常所做的那样一走了之,这样伊朗就能成为地区的超级大国。
因此,把伊朗的核努力仅仅视作“发疯的毛拉们”的狂妄野心是错误的。中东正在经历自1918年奥斯曼帝国崩溃以来最重要的阶段。
各种选择是清楚的。一种选择是允许霍梅尼主义的政权主宰中东并把中东作为一个“伊斯兰超级大国”谋求全球统治地位的基地。另一种选择是把力争德黑兰的政权更迭作为战略目标。还有一种选择,可能就是伊朗和美国在中东共管。 (完)
新华网消息 原本定于本周五(5月19日)举行的美国、俄罗斯、中国、英国、法国和德国的代表伦敦会议可能会推迟到下周召开,以便美国、俄罗斯、和中国的高级官员通过电话消除如在激励内容和伊朗所应受到惩罚等问题上的分歧。
据美联社报道,欧洲国家正在酝酿一座包括向伊朗提供轻水反应堆的一揽子激励方案,以劝说伊朗放弃铀浓缩计划,否则将面临安理会对其实现制裁。
新京报 5月16日,英国媒体披露说,美国国防部官员证实,如果国际外交努力未能取得效果,美国准备改进对伊朗发动打击的应急作战计划。
据报道,美国战略策划人员已提交了两个使用B-2隐形轰炸机对伊朗实施精确打击的方案。两套方案都建议动用美国密苏里州怀特曼空军基地、太平洋关岛的安德森空军基地、印度洋的迪戈加西亚空军基地作为B-2隐形轰炸机的起飞点。英国皇家空军设在格洛斯特的费尔福特空军基地也有供B-2轰炸机起降的设施,但由于英国不赞成对伊朗动武,美国不打算动用该空军基地。
新华网 华盛顿5月16日电 美国白宫发言人斯诺16日在新闻发布会上对欧盟拟向伊朗提供轻水反应堆以换取伊朗中止铀浓缩活动的做法反应冷淡,强调无论如何伊朗都必须首先放弃研制核武器的计划。