Dev Zone
<nobr><em>偏执狂才能生存,人生/事业的路上需要再坚持一下<br>但是又怎么说得清坚持的结果,道得尽坚持的含义 </em></nobr>

导航

  • BlogJava
  • 首页
  • 新随笔
  • 联系
  • 聚合
  • 管理
< 2006年11月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9
统计
  • 随笔 - 21
  • 文章 - 1
  • 评论 - 8
  • 引用 - 0
公告
  • 坚持,坚持,再坚持一下
    很多人、很多项目、很多公司都在再坚持一下之前倒下了 当然,坚持是有风险的
    坚持也不是随便的 --- 在此记下人生的感悟,事业的思考,情感的得失

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • 企业管理(2) (rss)
  • 团队建设(2) (rss)
  • 生活/情感 (rss)
  • 设计/开发(2) (rss)
  • 软件工程(2) (rss)
  • 随笔(4) (rss)
  • 项目管理 (rss)

随笔档案

  • 2006年3月 (2)
  • 2006年2月 (4)
  • 2005年5月 (15)

文章档案

  • 2006年2月 (1)

blog链接

  • 中国人力资源BLOG

Java Desktop

Java组织

  • www.apache.org
  • www.java-source.net
  • www.jgroups.org
  • 原来的javagroups
  • www.opensymphony.com

其它

算法/数学

  • 数学之美 系列一 -- 统计语言模型
  • 来自Google blog
  • 数学之美 系列二 -- 谈谈中文分词
  • 来自Google blog

<script language="JavaScript" type="text/javascript"> function SearchGoogle(key,evt,site) { if(evt.keyCode==13 || evt.keyCode==0 || evt.type =='click') { key.focus(); var keystr = encodeURIComponent(key.value); url = "http://www.google.com/search?q="; url = url+keystr; url += "&ie=UTF-8&oe=GB2312&hl=zh-CN&domains="+site+"&sitesearch="+site; window.location=url; return false; } } </script>

搜索

最新评论

  • 1.re: struts上传文件,验证失败表单数据丢失的原因
  • 关注这个问题
  • --keith
  • 2.re: web2.0!
  • 狂言:),不过也没错
  • --dev
  • 3.re: 好的团队应该是什么样的?什么样的团队才能创造出卓越的产品?
  • 利益分配关系很重要
  • --dev
  • 4.re: 好的团队应该是什么样的?什么样的团队才能创造出卓越的产品?
  • 评论内容较长,点击标题查看
  • --Baoquan Inside
  • 5.re: 使用Rachel轻松解决Web Start装载资源难的问题
  • 我做过测试,不行。特殊就特殊在是zip格式,SkinLF需要读取zip中的内容,也就是说需要采用ZipInputStream读取zip文件,读取的时候会异常,也许这是sun的一个bug。
  • --jdev

阅读排行榜

  • 1.struts上传文件,验证失败表单数据丢失的原因(2200)
  • 2.Java Desktop开发资源(526)
  • 3.Hibernate的dynamic-update(398)
  • 4.使用Rachel轻松解决Web Start装载资源难的问题(331)
  • 5.SkinLF乱码问题的分析与解决(304)

评论排行榜

  • 1.使用Rachel轻松解决Web Start装载资源难的问题(4)
  • 2.struts上传文件,验证失败表单数据丢失的原因(1)
  • 3.很久没有来这儿了... ...(0)
  • 4.敏捷软件开发过程(0)
  • 5.关于blog(0)

2006年3月15日

struts上传文件,验证失败表单数据丢失的原因

发现一个问题,使用struts进行文件上传,如果有些参数没有完全定义在ActionForm中,需要从request.getParameter获取,在表单提交并且validate失败返回input页面时,这部分需要从request.getPrameter获取的参数数据都丢失了,即使再对request进行multipart解析也不能得到。

经过分析,发现struts的ActionServlet在接收到multipart请求之后,在RequestProcessor中会对request进行封装:MultiRequestWrapper,然后在Action执行完之后,又将已经封装的request重新还原。以下是部分代码,截直RequestProcessor:

封装:

protectedHttpServletRequestprocessMultipart(HttpServletRequestrequest){

if(!"POST".equalsIgnoreCase(request.getMethod())){
return(request);
}

StringcontentType=request.getContentType();
if((contentType!=null)&&
contentType.startsWith("multipart/form-data")){
return(newMultipartRequestWrapper(request));
}else{
return(request);
}

}

还原:
在doForward和doInclude中在forward和include之前都执行了下面的代码:

if(requestinstanceofMultipartRequestWrapper){
request=((MultipartRequestWrapper)request).getRequest();
}

问题就出现在这儿。在经过测试之后,发现request只能进行一次multipart解析,这或许和解析request的时候调用了request.inputStream有关,第一次调用之后再调用就不能获取其中的有效内容了。因此发现request在调用CommonsMultipartRequestHandler.handleRequest进行解析后并还原后,调用common-upload对request进行解析已经得不到任何得提交内容了,因此当Form验证失败,返回input页面时,即使再进行multpart解析,也不能通过request.getPrameter取到你想要的数据。而此时,表单中的数据却不会丢失(定义在ActionForm中的表单域),这是因为struts的html系列tag在redisplay时值都是从ActionForm获取的。

在将RequestProcessor.doForward和doInclude中还原request的语句注释后,问题得到了解决。到目前还不清楚为什么struts要还原request,难道是因为chain的原因?

webwork中应该不会出现这个问题,因为webwork中无论ServletDispatcher还是FilterDispatcher在对request wrap之后都没有再还原。

posted @ 2006-03-15 06:10 dev 阅读(2200) | 评论 (1) |编辑收藏

2006年3月3日

The output format must have a '{http://xml.apache.org/xalan}content-handler' property!

tomcat、jdk1.4下出现The output format must have a '{http://xml.apache.org/xalan}content-handler' property!的原因:
这是因为系统、tomcat或者jdk使用了老版本的xalan.jar。系统如果本身没有使用,而tomcat/common/lib、tomcat/common/endorsed/lib、tomcat/shared/lib下又没有xalan.jar的话,那就是jdk使用了老版本的xalan.jar——在jre/lib/rt.jar里面。下载最新的xalan.jar然后放到tomcat/common/endorsed下即可解决这一问题。

posted @ 2006-03-03 19:46 dev 阅读(85) | 评论 (0) |编辑收藏

2006年2月21日

关于企业发展的4个阶段和企业管理的4个阶段

暂时记下,没想透彻,思考所得、个人见解以后再加入。

企业发展的4个阶段: 产品阶段 资产阶段 资本阶段 品牌阶段

企业管理的4个阶段: 人治,嘴上说 法治,建立制度 企业文化 目标管理,充分发挥员工的积极主动型,自我管理

posted @ 2006-02-21 02:13 dev 阅读(56) | 评论 (0) |编辑收藏
关于blog

blog很好,blogjava暂时感觉也很好,可是为什么不能写只允许自己看的日志呢?虽说blog就是为了大家能够分享彼此的观点感想,但是总有一些东西是不便公开或者暂时不能公开的。如果允许写只允许自己看的日志,blog的应用范围就会更大,价值也会被充分挖掘了。
也可能是我愚昧,对blog了解还不深吧,上述所说的blog也许已经出现了(自己搞一个得了,笑谈)。

posted @ 2006-02-21 02:02 dev 阅读(17) | 评论 (0) |编辑收藏

2006年2月20日

敏捷软件开发过程

XP SCRUM
需要并且应该持续关注、思考。

一些共同点: 快速迭代 持续改进 注重测试 团队协作

posted @ 2006-02-20 02:10 dev 阅读(24) | 评论 (0) |编辑收藏
很久没有来这儿了... ...

很久没有来这儿了。其实我很喜欢BLOG,可以记下每天工作中的所思所想。我是一个喜欢思考的人,经常有一些想法,有这么一块地方,能够把自己的经验、想法、创造记录下来,沉积起来,对自己无疑是一种财富。

不知道是不是有人会写项目经理日志,我觉得这是一个很好的事情。以前做项目管理的时候只是弄了一个“项目事件”,记录项目开发过程中发生的、自己觉得是重要的事情,比如某某人进入项目组、离开项目组了,某某模块版本发布了,发生了什么大的费用等等。写项目经理日志,或者开发日志、工作日志也行,把自己在工作中、项目开发过程中、项目管理过程中的零零碎碎的想法记录下来,会是一件很棒的事情。人不应该懒,再累心情再遭也应该坚持写这种日志。

或许小笔记本、那种可以随身携带的那种是一件更好的日志记录工具,可惜容量不够,而且不能检索。掌上电脑?写起来似乎麻烦了,table-pc,好像又太大了,携带不方便,可惜,要是手写识别技术更智能一点、掌上电脑更薄一点,而且可以展开屏幕就棒了。可惜。

posted @ 2006-02-20 01:19 dev 阅读(10) | 评论 (0) |编辑收藏

2005年5月17日

JDK1.5给GUI开发带来的一点欣喜

  JDK1.5出来很久了,一直没有研究。这倒不是没有时间,而是觉得J2EE服务器要支持JDK1.5还需要一段时间,而多数客户还在使用JDK1.4,因此要基于JDK1.5开发Web应用程序还不现实,因此一直没有去弄这玩意。

  今天由于研究Desktop的开发,装了1.5,发现1.5中Java程序已经可以获得本地系统的外观,我试着不断的变换了xp的theme,Java程序始终能够保持和系统的外观一致;而且以前使用SkinLF后,在web start程序中JOptionPane的窗体经常出不来的问题也解决了。这可是一个非常好的消息。

  另一个好消息是JDK的下一个版本将对Swing/AWT组件进行增强。

  为Java感到高兴!

posted @ 2005-05-17 22:12 dev 阅读(181) | 评论 (0) |编辑收藏
使用Rachel轻松解决Web Start装载资源难的问题

  下午,试用了SkinLF(http://www.l2fprod.com),感觉非常好,程序的外观得到了很大的改善,还可以根据自己的需要随意调整得到自己想要的外观,但是要将SkinLF应用到Web Start中还有点问题。这是因为,web start使用到的资源必须包装成jar文件,以<jar href="jarfilename.jar"></jar><jar href="jarfile.jar"></jar>的形式定义到jnlp资源文件中,而SkinLF的外观配置文件是zip形式的。也许有人会说,把zip转化成jar文件就可以了。是的,想象中这应当是可以的,可是实际情况不是如此,你会发现使用ClassLoader.getResourceStream("themepack.jar")的时候返回了Null,SkinLookAndFeel.loadLookAndFeel()会异常Stream closed.

  调试之后发现,即使是在客户端,在Eclipse中运行的时候,如果不把themepack.jar定义到ClassPath中,也是无法加载的。

  我想这是一个普遍的问题,根据我的理解,如果其他资源,比如图片、xml文件、属性文件等等能够被加载,themepack.jar也应该被加载。事实上应该是这样,但是关键在于SkinLF需要采用ZipInputStream解析zip(jar)文件,这时情况就不一样了。具体的原因目前没有搞清楚。

  在网上找了半天,终于发现一个Open Source的组件:Rachel,使用它很轻易就可以解决上面提到的问题。

  Rachel(http://rachel.sourceforge.net)是一个为解决Web start装载资源困难而开发的组件。它提供了两种方法解决资源装载问题。

方法一,使用class://URL Handler。
这个方法采用新的URL协议:class://从jar文件中获取资源。

Step 1,注册新的URL Handler,以支持class://协议(protocal)。
例子:java.net.URL.setURLStreamHandlerFactory( new RachelUrlFactory() );

Step 2,采用class://协议构造URL,从jar文件中读取资源。
  语法:class://<class></class><class></class>/
  例子:
  Step 3,采用java.net.URL获取资源。
例子:  方法二,在程序中嵌入多线程的,小型的http server。

class://test.LookAndFeelTest/themepack.zip
class://com.l2fprod.gui.plaf.skin.SkinLookAndFeel/themepack.zip

  注意:这里,<class></class><class></class>是Rachel用来定义资源文件所在的jar的,后面的 相对于jar中的根目录而言。上述例子中的jar的结构如下:

test.jar:

test/LookAndFeelTest.class
com/l2fprod/gui/plaf/skin/SkinLookAndFeel.class
themepack.zip
images/example.png
html/index.htm

URLurl=newURL("class://test.LookAndFeelTest/themepack.zip");
URLurl=newURL("class://test.LookAndFeelTest/html/index.html");
URLurl=newURL("class://test.LookAndFeelTest/images/example.png");

URLurl=newURL("class://com.l2fprod.gui.plaf.skin.SkinLookAndFeel/themepack.zip");
SkinLookAndFeel.setSkin(SkinLookAndFeel.loadThemePack(url));

  Step 1,把你的资源放到jar中。

  Step 2,在每一个jar中增加一个anchor class,帮组server定位资源所在的jar文件,这点类似于方法一class://<class></class><class></class>/ 的的<class></class><class></class>。
  例子:

   publicclassCrossRefAnchor
   {
     publicCrossRefAnchor(){}
   }

  CrossRefAnchor没有任何的实际意义,只是为了帮组定义资源所在的jar。

  Step 3,为每一个包含资源的jar用ClassResourceLoader注册到WebResourceManager。
  例子:

posted @ 2005-05-17 22:11 dev 阅读(331) | 评论 (4) |编辑收藏
SkinLF乱码问题的分析与解决

  SkinLF(http://www.l2fprod.com/)是一个非常漂亮的Java LookAndFee组件,它的外观可以配置,由一组小图片和一个skinlf-themepack.xml构成。SkinLF的网站上提供了很多Skin下载,这里http://www.l2fprod.com/software/skinlf/jnlp/demo.jnlp可以看到SkinLF和这些外观的演示。可惜的是除了默认的themepack.zip之外,其他外观(好像有很少几个除外)都有中文乱码的问题。其实这是这些外观使用的字体导致的。

  打开外观zip文件中的skinlf-themepack.xml,你会发现其他外观的配置文件比themepack.zip中的配置文件多了一些地方:

<!--</font></span></span>&nbsp;<font face="新宋体">&nbsp;&nbsp;&nbsp; Fonts&nbsp;&nbsp;</font><span class="b"><strong><font face="Courier New" color="#ff0000">&nbsp;</font></strong></span> <font color="#0000ff"><span class="m">--> <script type="text/javascript"></script>
<font name="Global" value="SansSerif,0,11" />
<font name="InternalFrame.titleFont" value="Trebuchet MS,1,11" />
<font name="TabbedPane.font" value="Tahoma,0,11" />
<font name="MenuBar.font" value="Tahoma,0,11" />
<font name="MenuItem.font" value="Tahoma,0,11" />
<font name="PopupMenu.font" value="Tahoma,0,11" />
<font name="Menu.font" value="Tahoma,0,11" />
把这些注释掉,然后把配置文件放回到zip文件中就可以了。当然你还可以尝试采用其他的字体。
采用JGoodies的LookAndFeel出现乱码,我曾经以为是UTF-8的问题,现在看来可能也是字体导致的。可惜的是,JGoodies的LookAndFeel不能配置。

posted @ 2005-05-17 22:11 dev 阅读(304) | 评论 (0) |编辑收藏
Java Desktop开发资源

这里列出一部分Java Desktop的开发资源。

1。A java.net community for JavaDeskTop

  这是sun主持的资源很全的社区,有很多关于JavaDeskTop开发的资源。

2。JDIC(Java Desktop Integration Components)

  Sun主持的致力于java和本地应用程序集成、交互的组件集,非常棒。目前有5大组件。

  Desktop

  FileTypes

  Brower

  System Tray Icon

  Packager

3。JDNC(Java Desktop Network Component)

4。JExePack

  一个将Java程序转化为Exe程序的组件。

5。JSmooth

  作用同JExePack。

6。JavaService

  一个将Java程序转化为NT Service的组件。

7。SKinLF

  非常棒的Java LookAndFeel实现,采用配置包的形式定义Java的LookAndFeel,可以很方便的定义自己的LookAndFeel。它的网站上提供了大量Skin下载,其中不乏精品。

8。JGoodies

  JGoodies最出名的是它的FormLayout,它使swing和AWT应用程序的布局变得非常简单。由于它的影响,已经有专门针对它的DESIGNER出现,Eclipse也有相应的插件支持。FormLayout使Java的几个默认Layout相形见绌。

  JGoodies还有一组Swing/Awt组件,可以很方便的创建Wizard、对话框、Splash窗体、About窗体等GUI部件。

9。Rachel(Open Source Resource Loading Toolkit for Java Web Start )

  和WebStart打过交道的人可能知道,要在webstart中读取解析zip或者jar资源是一件非常困难的事,然而有些资源又必须以zip或者jar的形式存在,比如SKinLF就是这样。Rachel使你不再为这种事情烦恼。它提供两种解决方案:采用class://的协议装载URL资源,内嵌一个小型的多线程http server。

10。JavaHelper(JavaHelp System)

  Sun提供的制作Java Help制作系统。允许你在GUI应用程序、Applet中提供Online Help功能。

11。Exe4j

  Java 安装程序制作工具。

12。JGraph

  非常出名的Java 图形编辑框架。

13。GEF(Graphic Edit Framework)

  非常好的图形编辑框架,虽然没有JGraph出名,但是我始终觉得它的结构和API都比JGraph好,扩展性非常好。

14。yworks

  它的YGuard是一个非常棒的混淆器,免费的,功能很强。除了YGuard它还有几个非常好的组件。

15。Create GUI with JFC/Swing

  Sun的JFC/Swing编程初学者指南。

16。Drag and Drop

  Sun的关于在GUI中实现拖放操作的教学文章。

17。Joshua Marinacci的Blog

  有很多介绍GUI编程的好文章。

18。CloseAndMaxTabbedPane An enhanced JTabbedPane

  JavaWorld上一篇关于如何在JTabbedPane的Tab上添加Close按钮、Maximize 按钮和PopupMenu的文章,有源代码下载。还可以。

19。Creating Wizard Dialogs with Java Swing

  Sun上的介绍用Swing创建类似Elipse Wizard对话框的文章。

   WebResourceManagerroots=WebResourceManager.getInstance();
   roots.addResourceLoader(newClassResourceLoader(CrossRefAnchor.class));
   roots.addResourceLoader(newClassResourceLoader(JavaDocAnchor.class));

  Step 4,启动Server。
  例子:

   try
   {
     WebServerhttp=newWebServer(7272,roots);
     http.start();
   }
   catch(IOExceptione)
   {
     e.printStackTrace();
   }

  Step 5,采用URL从server获取资源。
  例子:

   URLcrossRefUrl=newURL("http://localhost:7272/crossref/index.html");
   URLurl=newURL("http://localhost:7272/test.LookAndFeelTest/themepack.zip");
   URLurl=newURL("http://localhost:7272/test.LookAndFeelTest/html/index.html");
   URLurl=newURL("http://localhost:7272/test.LookAndFeelTest/images/example.png");

一个朋友的精彩BLOG相关推荐

  1. 一个朋友的计算机学习经历,以及他分享的内容

    关注.星标公众号,不错过精彩内容 作者:明哥 今天分享下一个朋友[明哥]的计算机学习经历,以及他分享的零基础该如何学习计算机.推荐一些相关的视频,书籍等. 以下是正文: 要学习计算机,第一件事情是必须 ...

  2. 字节跳动只剩下小米这一个朋友了

    字母榜(ID:wujicaijing) 编辑/马钺       撰文/王雪琦 "巨头之间,竞易合难!" 罗永浩4月1日的抖音直播首秀中,一共上架了23件商品,其中,7件是小米及其生 ...

  3. 交多个朋友不如交一个朋友

    一.前言 从读中学的时候,爸爸就会跟我说:"在学校里,除了认真读书把学习成绩搞好,平常的时候,多交一些朋友"."你们这代人,不比我们(上一代人),家里都只有一个两个,以后 ...

  4. 我有一个朋友毕业后一直在腾讯

    我有一个朋友毕业后一直在腾讯,工作8年了,最终还是离职了. 他和我说这次离职不仅仅因为工资少,还有心理委屈及技术瓶颈期的问题.而且他的上级领导不懂技术还瞎指挥,再跟这样的领导会废掉. 他接着说:以前觉 ...

  5. 最近我一个朋友在职场上陷入了迷茫

    最近我一个朋友在职场上陷入了迷茫,他昨天找到我,向我寻求帮助,他说他很焦虑,我很吃惊的问他,这不像你的性格啊. 他说:我和你说说你就知道了. 他在一家创业型公司任职人事经理,最近公司的核心总监提出了离 ...

  6. 帮一个朋友征集算法代码,大家都来开动你的脑袋发挥你的智慧参与吧

    刚有一个朋友问一个算法问题,问题如下: 有一堆木棒长度在 1m - 21m之间(长度为整数),用户拥有的木棒长度也是用户自定义,的数量用户自定义 其中的一组样例数据是10m 的木棒 300跟, 14m ...

  7. 把我给另外一个朋友的炒股劝告发给你一遍,希望你可以得到帮助!

    把我给另外一个朋友的炒股劝告发给你一遍,希望你可以得到帮助! 想要学习的网站可以去理想论坛和淘股吧,上面有许多可以学习的贴子. 要看的书挺多,而且枯燥,你确定你可以看下来吗? 下面是一些最为经典的书籍 ...

  8. 寒假的时候,小明同学要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上。小明可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点,然后才能去访问下一个朋友。

    寒假的时候,小明同学要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上.小明可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点,然后才能去访问下一个朋友. 比如有4个朋友,对应 ...

  9. 【Java分享客栈】我有一个朋友,和前端工程师联调接口被狠狠鄙视了一番。

    前言 我有一个朋友,昨天和前端工程师联调一个接口,然后被狠狠鄙视了一番. 大家知道,自从前后端分离以后,像我一样一直以Java工程师为傲而自居的码圣们就砍掉了一半脊梁,从此被贴上了"Java ...

  10. 推荐一个朋友做的资源网站

    推荐一个朋友做的资源网站 前言 网址: www.lfzyw.top 网站截图: 前言 好久没更新了,今天来推广一个资源网站:流枫资源网,朋友做的,里面有各种游戏.软件的破解资源,还有一些电影资源,网站 ...

最新文章

  1. 2018计算机职称考试题,2018年职称计算机Powerpoint考试试题及答案
  2. 调焦后焦实现不同距离成像_90%的人都忽视的“最近对焦距离”,其实有大用处...
  3. mysql数据库从删库到跑路之mysql多表查询
  4. hdu5442(2015长春网络赛F题)
  5. Android Activity的生命周期、意图(Intent)
  6. 卖萌屋新闻联播栏目,倾情上线~
  7. 数据分析在内容运营中的作用
  8. python代码_Python发送邮件基础知识与代码讲解!
  9. 团队管理35-管理方法论积累
  10. 部署https后访问提存在安全隐患NET::ERR_SSL_OBSOLETE_VERSION
  11. 游戏服务器引擎的设计(一)介绍游戏服务器部署框架
  12. 渗透测试八个步骤【渗透测试流程】
  13. 三级网络技术备考重点之路由器配置及使用
  14. Core dump去哪里了?
  15. C#多线程工业源码 替代传统plc搭载的触摸屏 工控屏幕一体机直接和plc通信
  16. KeyError: 2
  17. B250M主板上什么CPU
  18. Android弹幕功能实现,模仿斗鱼直播的弹幕效果
  19. 科学“干饭”,AI 营养师教你
  20. 线性代数及矩阵论(十一)

热门文章

  1. Nginx工作原理及基本使用
  2. 是什么的简称_全国各地区车牌号简称,说说你们那的车牌是什么?
  3. 《LeetCode刷题C/C++版答案》pdf出炉,白瞟党乐坏了
  4. cad怎么倒圆角_CAD哪些技巧是菜鸟必备,哪些又让你相见恨晚?
  5. 接收邮件的服务器称为,接收邮件服务器
  6. Shopee跨境电商开店高频问题解答
  7. js实现爬取QQ群管理页面所有QQ群成员信息
  8. c语言实现作业调度先来先服务和短进程优先,先来先服务和高响应比优先调度算法C语言实现...
  9. SQL——正则表达式
  10. 2022美赛M奖经验总结(4)图文优化篇