`
luliangok
  • 浏览: 781305 次
文章分类
社区版块
存档分类
最新评论

一个朋友的精彩BLOG

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

导航

日 一 二 三 四 五 六
< 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
公告
  • 坚持,坚持,再坚持一下
    很多人、很多项目、很多公司都在再坚持一下之前倒下了

    当然,坚持是有风险的
    坚持也不是随便的

    --- 在此记下人生的感悟,事业的思考,情感的得失

留言簿

随笔分类

随笔档案

文章档案

blog链接

Java Desktop

    Java组织

    其它

      算法/数学

      <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>

      搜索

      最新评论

      阅读排行榜

      评论排行榜

      2006年3月15日

      发现一个问题,使用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日

      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个阶段:
    • 人治,嘴上说
    • 法治,建立制度
    • 企业文化
    • 目标管理,充分发挥员工的积极主动型,自我管理

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

      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出来很久了,一直没有研究。这倒不是没有时间,而是觉得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) |编辑收藏

        下午,试用了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,使用它很轻易就可以解决上面提到的问题。

        Rachelhttp://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(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的开发资源。

      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");
      分享到:
      评论

      相关推荐

        web前端大作业-精彩BLOG聚合响应式网页模板-界面适配移动设备-HTML源码.zip

        这份源码文件不仅包含了丰富的功能和优雅的设计,更是一个完全响应式的网站模板。这意味着您的项目将能够在不同的设备上流畅展示,无论是台式机、笔记本、平板还是智能手机。在学术评审面前,展示一个能自适应各种...

        HSHXBLOG(黑色幻想轻博客) v1.0beta.rar

        黑色幻想轻博客是一个全新的、倾向于音乐话题的“高质量内容发布和传播”的轻博客社区。 轻博客是介于博客与微博之间的一种网络服务,博客是倾向于表达的,微博则更倾向于社交和传播,轻博客吸收双方的优势。 如果...

        hyperblog:Platzi的Git和Github课程的精彩博客

        超级博客 Git和Github课程的精彩博客。 edev10的git和GitHub课程是提高我的专业水平和增加薪水所需要的一项技能。... 并提醒您:这个readme.md是一个玩笑,仅供参考。 如果您能做到这一点,请不要认真对待。

        ExtJS实用开发指南

        包含详细的ExtJS框架使用方法、各个控件详细配置参数、属性、方法及事件介绍,与服务器端集成及一个完整的示例应用系统介绍等内容,适合想深入学习ExtJS或正在使用ExtJS进行开发朋友们使用。该《指南》当前在wlr....

        C++通讯录源码 教程在博客

        前言 哈喽大家好,我是iecne,本期为大家带来的是CPP/C++【C++实战小项目】实现基本...感谢每一个观看本篇文章的朋友,更多精彩敬请期待~( ̄▽ ̄~)~: 若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回

        e2eSoft VCam 虚拟摄像头4.6带注册文件和补丁

        VCam是一个虚拟摄像头软件,它能够在您的系统上模拟一个摄像头,可在任何支持摄像头的软件中使用,比如 QQ、MSN Messenger、Yahoo! Messenger、Skype 等聊天工具,新浪UC、碧聊等网络视频聊天室。使用它,您可以与...

        一个面向学习的java开源博客系统,减少过度封装,展现技术本质。集成微信小程序,QQ登录,腾讯云对象存储等功能.zip

        此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了...

        孵化twitter.rar

        成百上千的信息来源、采访、文件和内部邮件,使得尼克·比尔顿勾画出一个如电影般精彩的真实故事——关于四个朋友如何意外地改变世界,以及他们在此过程中汲取的教训,关于金钱,权力,友谊,背叛的那些事。

        一款简单微信小程序个人博客。后端基于SpringBoot实现.zip

        此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近用户需求、充满活力的小程序生态。 总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了...

        《Wicket开发指南一书》PDF版本下载

        有一个国外的Blog专门写了一篇关于轮子的文章,说明了重复发明轮子的必要性。我个人对于这种轮子是持一种欢迎的态度,因为没有人会去写一段功能完全一样的东东,总是要修正了原有轮子的不足,这样就不能简单...

        搜狐微博 For Android v2.8.2.zip

        新增多个兴趣频道,尽显精彩内容; 点亮兴趣后,更可让内容贴合个人阅读喜好。  2.不必登录即可阅读优质内容。  3. 采用左侧导航结构,轻松滑动,迅速切换。  4. 提供三种注册方式,轻松加入搜狐微博。

        今日头条3.5.6

        软件大小:6.37MB 今日头条3.5.6详细信息 编辑点评:收集热门新闻和你感兴趣的新闻,第一时间发现属于你的头条,...⑥和朋友们分享收藏 关注你的朋友,实时分享彼此收藏的文章和发表的评论 今日头条团队感谢你的使用!

        在路上 v4.1.7.zip

        旅程直播:可同時向您的新浪微博、人人網等朋友社區實時分享直播精彩旅程; 靈活實用:不再為“在路上”沒有手機信號而煩惱,沒有手機網絡照樣記錄,連接上wifi批量上傳發送; 在路上的特色 「在路上」是什么? 您...

        搜拍图片管理专家 V1.18

        留下一系列精彩瞬间之后,兴奋之余还未完全褪去,这个时候最适合记录原汁原味的心情和体验,以便留存永远。搜拍软件提供了人性化的配图文字功能,与图片同步保存,图片心情随记随存,图文素材信手捻来,发贴写博...

        hiperbloque1:这是一个初始文件

        的精彩博客 我需要Platzi的Git和Github课程,将薪水提高三倍,并通过机器学习将自己打入合成羊毛针织行业 小姑娘 在这个过程中,我们看到了一切 所有Git命令 Github上的工作流程 良好实践的真爱 老师非常疯狂的把戏...

        皇家精美博客程序NewV3.0

        皇家精美博客程序自推出以来深受各网友的喜爱和支持,首先要感谢支持我们的朋友们.同时应大家的要求续V2.0后我们又推出了全新升级的V3.0!新版本继承了前版本的各项优点,修正了一些显示错误代码和增加了防恶意刷新功能...

        本号说明【Sunday, April 12th, 2020】

        本来想的是若是有[朋友圈/QQ空间]类似的屏蔽机制也还好,但这毕竟是一个博客平台,如果不允许XXX看/只允许XXX看,大玩黑白名单岂不是很违背初心?所以我也不能强求,不能改变环境那就改变自己。 本来手里压的文章就...

        leetcode中国-AWAWSOME-COMPETITIVE-PROGRAMMING:令人敬畏的竞争性编程

        用户编写的另一个很好的教程博客文章集合。 ★★★ 一个非常完整的竞争性编程资源列表。 浏览器书签中的必备品。 ★★★ ACM-ICPC 准备工作的详细演练。 教学大纲 找出您需要学习的主题。 ☆ 名称 描述 ★★★ 将...

        leetcode中国-CP-Ultimate-list:https://github.com/lnishan/awesome-competit

        用户编写的另一个很好的教程博客文章集合。 ★★★ 一个非常完整的竞争性编程资源列表。 浏览器书签中的必备品。 ★★★ ACM-ICPC 准备工作的详细演练。 教学大纲 找出您需要学习的主题。 ☆ 名称 描述 ★★★ 将...

        leetcode中国-awsm-competitive-coding:awsm-竞争编码

        用户编写的另一个很好的教程博客文章集合。 ★★★ 一个非常完整的竞争性编程资源列表。 浏览器书签中的必备品。 ★★★ ACM-ICPC 准备工作的详细演练。 教学大纲 找出您需要学习的主题。 ☆ 名称 描述 ★★★ 将...

      Global site tag (gtag.js) - Google Analytics