Java模式
文章平均质量分 88
张_锋
J2EE architecture
展开
-
用JSF实现依赖注入
无意中看到JSF中的Managed Properties,不禁突发奇想: 用JSF能实现依赖注入吗?理论上是可以通的,于是开始了自己的尝试,只是写一个简单的Login页面. 首先,写一个IUserService的接口,接口中只有属性方法: getUsername, getPassword, setUsername, setPassword四个方法.代码如下:package net.原创 2007-09-12 15:44:00 · 2437 阅读 · 2 评论 -
HttpClient實現J2EE客戶端
J2EE客戶端應該有很多種的實現方法,可以用Web Service、RMI、EJB等很多技朮實現,最近開發中發現也可以用一種非常簡單的實現,那就是直接用Apache的HttpClient來實現。 這種實現有個很大的好處,就是服務器端可以很好地和Web應用結合,只是在原來的Web應用中添加一些用于客戶端訪問的Servlet。 首先大家應該都有一種觀念,Servlet就是原创 2008-08-04 09:19:00 · 1911 阅读 · 0 评论 -
WebStart啟動程式在關閉時關閉javaw進程
剛剛接觸JNLP,發現用WebStart啟動的程式在程式關閉時不能自動關閉進程中的javaw進程,并且javaw在進程中會占30M以上的內存,這當然是我不想看到的,仔細思考為什么會有這樣的問題,是否可以解決這個問題。其實很簡單,只需要在程式結束時調用System.exit(1)就可以了,所以在Swing窗口關閉時,監聽windowClosed事件,然后其中執行System.exit(1)就可原创 2008-08-02 09:57:00 · 1074 阅读 · 0 评论 -
JSF自定义组件之一 HTML原型
首先介绍一下准备开发该组件的原因: Web开发中经常遇到一些资料量较大的下拉框,这些下拉框会大大增加服务器发挥Response的容量,而有时用户甚至根本不需要用到这些下拉框,这样就严重影响了页面加载的性能,于是构思开发一个通过Ajax技术,在用户点击下拉框时才加载所需数据的组件,从而减少不必要的性能损失。 本篇首先使用HTML实现该组件的功能,以便为后原创 2008-08-28 23:52:00 · 2348 阅读 · 0 评论 -
JSF自定义组件之三 JSF实现-Tag
上篇已介绍了完整的HTML实现,从这篇开始,将前面介绍的功能逐步地用JSF组件来实现。 分析前面的HTML页面,我们简单为该标签设置四个属性,分别为:valueList -- 下拉列表, value -- 值, image -- 下拉按钮图片, styleClass -- 用来指定文本框的格式。 因此,继承类javax.faces.webapp.UIComponentE原创 2008-08-29 22:43:00 · 3678 阅读 · 1 评论 -
JSF自定义组件之五 JSF实现-Renderer
上篇已介绍了JSF Tag类的开发,本篇将继续介绍JSF Renderer的开发。 Renderer类是JSF组件开发中一个较重要的类,该类主要功能是在Java和HTML之间的转换,在响应阶段将Java组件的属性转换为HTML代码,在接受请求阶段将HTML Request中传来的资料转换为Java组件的属性。 开发Rende原创 2008-09-01 11:46:00 · 28899 阅读 · 7 评论 -
JSF自定义组件之二 加入Ajax功能
上篇中已介绍使用HTML产生一个模拟的下拉框,本篇将为其添加Ajax功能,使其在点击下拉按钮时向一个给定的Servlet发送Request,并将得到的下拉列表信息显示。本篇将对上篇中的部分文件进行修改,并添加一个Servlet来接收请求并响应列表信息。HTML页面修改如下: html> head> meta http-equiv="Content-Typ原创 2008-08-29 09:54:00 · 2868 阅读 · 0 评论 -
JSF自定义组件之四 JSF实现-Component
上篇介绍了Tag类及tld文件的开发,本篇将介绍Compmonent类的开发。 Tag类主要作用是从页面标签接收值,Component类的主要作用为在Server端保存及恢复组件状态。 在Tag类中主要需实现getComponentType,getRendererType,setProperties及属性的set方法,Component类主要需实现的方法包括:getFa原创 2008-08-29 23:17:00 · 4584 阅读 · 0 评论 -
Java private方法访问
大家知道,Java中private修饰符修饰的方法或属性,只有在该类内可以访问,其他类均无法访问。事实真的是这样吗?下面一个例子可以实现访问一个类中的private方法,原理是通过Java的反射机制,感觉Java反射机制在这点似乎不太安全。 一个只有一个私有方法的类:package net.moon.demo.reflect;public class Privat原创 2009-01-05 15:25:00 · 12664 阅读 · 3 评论 -
JSF自定义组件之六 总结
由于工作忙,很长时间没有更新了,先在这里向大家表示歉意。 本篇只是简单提供文件的下载,与前面章节相比,部分文件做了修改,文件下载地址为:http://download.csdn.net/source/1026683 JSF方面的中文资料还比较少,特别是自定义组件方面,如果大家感兴趣,可以吧MyFaces的源码Down下来看,其实MyFaces或是Tomahawk本原创 2009-02-20 13:32:00 · 1229 阅读 · 0 评论 -
Java知识QQ群(42447871)
新建了一个Java知识学习的群,欢迎大家加入:42447871 加入时请注明 Java交流原创 2009-03-10 11:02:00 · 1067 阅读 · 0 评论 -
Hibernate 3.2.0 方言集
<table style="text-align: center;" border="1" summary=" Hibernate SQL方言 (hibernate.dialect) ">RDBMS方言 DB2org.hibernate.dialect.DB2DialectD原创 2009-03-17 15:53:00 · 1118 阅读 · 0 评论 -
Java中的“君不君,臣不臣,父不父,子不子”
闲来无事,拿Java来看一下什么叫做“君不君,臣不臣,父不父,子不子”,没有想到的是,下面这段代码竟然可以编译通过,只是在执行的时候就死得很惨了:public class Test{ SubTest sub = new SubTest(); public static void main(String[] args){ Test t = new Test();原创 2009-03-27 07:37:00 · 2122 阅读 · 0 评论 -
JSF页面跳转时清除Session
用JSF开发时,难以避免地常会有些Session Scope的MBean,对于这些Bean,我们希望它在同一页面操作时保留,在页面跳转时清除,本文介绍一种自动清除Session的方法。1.首先在页面中添加一个Session,用来记录原页面的URI,代码如下:session.setAttribute("pageFrom", request.getRequestURI());%>2原创 2008-07-16 10:44:00 · 4809 阅读 · 3 评论 -
JSF DataTable使用心得
前段时间一个项目使用JSF DataTable生成一个较复杂的报表,测试时间数据较少,没有发现什么问题。程式运行一个月后开始发现问题,当报表产生大于1000笔的数据时,页面显示时间超长,让人无法忍受。代码测试发现Server可以在3秒左右产生出查询结果(1300行,50多个栏位),但是当服务器返回结果后IE开始拼命地跑,可以把CPU跑到100%,并且要持续10分钟才能把结果显示出来。原创 2008-07-11 20:49:00 · 4306 阅读 · 0 评论 -
JSF动态为DataTable添加列
开发JSF的朋友可能会遇到这样的问题,如果DataTable的列不固定,需要动态生成, 该如何实现呢。 假设FacesConfig中配置一个名为bean的MBean,该MBean中需定义一个类型为javax.faces.component.html.HtmlDataTable类型的变量dt,页面中的DataTable设置bingding="#{bean.dt}"。 首先原创 2008-01-16 13:47:00 · 3267 阅读 · 0 评论 -
Java开发环境配置
1. 首先现在JDK(本文以Sun JDK1.6为例),下载地址为:http://java.sun.com/javase/downloads/index.jsp。2. 运行下载程式,选择安装路径(假设安装路径为C:/Java/ )。安装过程中会提示安装JKD和JRE,仅安装JKD即可。3. 右键点击【我的电脑】,选【属性】,【高级】【环境变量】,在原创 2007-09-12 16:00:00 · 895 阅读 · 0 评论 -
JSP + AJAX 打造簡單聊天室
本文代碼下載地址:http://download.csdn.net/source/798197一個簡單的聊天室程式,但基本包含了簡單的AJAX的使用方法,可以做為簡單的Demo用來學習。整個程式包含三個文件,頁面文件chat.html,後臺處理的Servlet文件Chat.java以及簡單的用戶資料的UserSessionListener.java類。其中chat.html用原创 2007-09-12 16:08:00 · 4608 阅读 · 5 评论 -
JSF MBean详解
首先从Model1中的JavaBean说起,大家知道,Model1的基本架构就是JSP页面通过JavaBean访问数据层,那么JavaBean到底是什么东东呢?其实JavaBean只是一个特别的Java类而已。在JavaBean中,对私有的域用getXXX和setXXX来实现存取,并且必须有一个无参数的构造函数,如下类就是一个JavaBean文件。package net.moon原创 2007-09-18 17:23:00 · 1691 阅读 · 0 评论 -
JSF中控件赋值方式
JSF中对控件的赋值有以下几种方式。1. 通过资源文件赋值。2. 通过MBean属性赋值。3. 通过隐含对象赋值。4. 将控件绑定到MBean中的属性。其中,赋值可以为一个公式。下面分别介绍:1. 通过资源文件赋值:需先定义资源文件Message.peoperties,代码如下:LOGIN = LoginPASSWORD = Password:USER_NAME = User Name原创 2007-09-19 11:22:00 · 3157 阅读 · 0 评论 -
Jakarta Commons:巧用类和组件2
在上一篇文章中,我们将Jakarta Commons的组件分成了五类,并介绍了其中的Web类和其他类,本文接着介绍XML类和包装类,接下来的最后一篇文章将介绍工具类。注意Commons本身并不进行这种分类,这里进行分类纯粹是为组织方便起见。 一、包装类 这一类包含Codec和Modeler两个组件。 1.1 Codec ■ 概况:提供常用的编码器和解码器。转载 2007-11-06 11:11:00 · 809 阅读 · 0 评论 -
JSTL-EL表达式
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。另外,EL支持以下预定义的变量: 变量名称 说明转载 2007-11-06 10:40:00 · 3230 阅读 · 1 评论 -
Jakarta Commons:巧用类和组件1
From http://linux.ccidnet.com/art/322/20030805/57869_1.html Jakarta Commons是Jakarta的子项目,它创建和维护着许多独立软件包,这些包一般与其他框架或产品无关,其中收集了大量小型、实用的组件,大部分面向服务器端编程。 Commons的包分成两部分:Sandbox,Commons代码库。Sandbox是转载 2007-11-06 10:59:00 · 1011 阅读 · 0 评论 -
使用Listener实现Cache
进行Web开发时,常常会遇到一些数据需要经常用到,比如客户列表这类,更新频率较小,但是各个页面频繁用到,针对这些数据,我们可以在系统启动时将它们初始化到一个Application级的变量,然后每隔固定时间进行刷新,这样所有页面就可以直接使用这些资料,而不用每次都重新从数据库捞取数据了,这也就是简单的Cache。 在Java技术中,我们可以使用Listener来实现这原创 2007-11-06 17:11:00 · 2243 阅读 · 2 评论 -
Jakarta Commons:巧用类和组件3
在这个系列文章的第一篇中,我们把Commons项目包含的组件分成了5类,介绍了Web类和其他类。第二篇文章论及XML类和包装类。这是最后一篇,探讨工具类的组件。注意Commons本身并不进行这种分类,这里进行分类纯粹是为说明和组织方便起见。 工具类包含BeanUtils、 Logging、DBCP、Pool和 Validator这几个组件。 一、BeanUtils ■ 概况:提转载 2007-11-06 11:25:00 · 872 阅读 · 0 评论 -
JSF动态生成组件
用过Servlet和JSP的开发者对动态生成组件应该是情有独钟了,可以根据数据的情况生成特定的组件,这样增大了Form的灵活性,那么JSF中如何生成动态的窗体呢,其实非常简单。主要逻辑就是通过FacesContext得到viewRoot对象,然后通过viewRoot对象的getChildren方法可以得到viewRoot下的所有第一级组件,然后分别对每个组件的getChildre原创 2007-11-15 09:06:00 · 2784 阅读 · 0 评论 -
实例理解Java中的堆和栈
首先理解一下Java中内存的管理方法,Java把内存划分为两种,堆内存和栈内存。 堆内存是用来储存数组和对象的内存空间,栈内存是用来存放基本数据类型和对象的引用。栈内存中信息会在生命周期结束时自动释放,而堆内存中的信息则需要当栈中变量没有对该对象的引用,且垃圾回收站开始回收空间时才会释放。 或许上面一段话比较容易理解,但是参考以下实例,或许会有更深的体会: 1原创 2008-02-10 10:42:00 · 1430 阅读 · 1 评论 -
JSF通过EL读取List中的值
使用JSF开发时,经常遇到要把MBean中的一个List或Map中的值通过EL显示在页面上,EL中访问Map或List的方法如下: 假设FacesConfig中配置一个bean的MBean,它的类中定义了一个List类型的list属性和一个Map型的map属性。 首先是访问List,页面中引用bean中list属性的方法为:#{bean.list[index]}原创 2008-01-16 09:58:00 · 5019 阅读 · 0 评论 -
Java牛角尖【002】:类可以被static修饰吗?
其实这个非常确定,在一班类的定义中是不能使用static修饰符的,但是之所以提出来,是因为真有一种情况可以将类定义为static类型的,那就是内部类。 如下的定义中,是一个内部类的实现:package net.moon.insignificant.staticclass;public class StaticClassDemo { public static void原创 2009-05-29 21:36:00 · 5266 阅读 · 0 评论