- 浏览: 28193 次
- 性别:
- 来自: 珠海
最新评论
-
yinger_fei:
如果有组件上传,但是没有用servelt实现和jsp里的那个e ...
JAVA HTTP 无组件 上传文件 -
yzhong_sa:
能不能简要的说说Observable 与 observer之间 ...
Java设计模式 -- 观察者模式(pull方式)
文章列表
在我们的第一篇中发布web service 通过java code, 这里我们使用另外一种方法(Spring)来发布web service
同样还是先声明个接口 然后实现它
package demo.spring;
import javax.jws.WebService;
@WebService
public interface HelloWorld
{
String sayHi(String text);
}
实现这个接口
package demo.spring;
import javax.jws.WebService;
...
- 2009-11-01 00:36
- 浏览 1109
- 评论(0)
CXF提供了wsdl2java方法, 使用wsdl文件生成java code
首先打开IDE创建个项目:
在项目文件夹中创建个目录wsdl, 把外来的wsdl放到里面去
打开命令行, cd 到wsdl文件的位置 运行wsdl2java -d ../src wsdl文件名 命令来生成java code
由于wsdl文件可以生成基础的java code, 也就是说客户端和服务器是可以解耦合的, 在客户端和服务器都可以生成相同的java code, 我们可以用这个wsdl文件作为通信的标准。
首先是hello_world.wsdl文件
<?xml version="1 ...
- 2009-10-30 12:03
- 浏览 975
- 评论(0)
首先定义个接口Hello.java
package ch1;
public interface Hello {
public String sayHello();
}
然后实现这个接口, 实现类为:HelloImpl.java
package ch1;
public class HelloImpl implements Hello{
public String sayHello() {
return "hello";
}
}
通过CXF把这个web service发表出去:
package ch1;
...
- 2009-10-30 01:48
- 浏览 985
- 评论(0)
还是和push一样,有个主题WeatherData.java的类
import java.util.Observable;
public class WeatherData extends Observable
{
private float temperature;
private float humidity;
private float pressure;
public WeatherData(){}
public void measurementsChanged()
{
setChanged();
notifyObservers();
...
- 2009-07-13 22:03
- 浏览 1503
- 评论(1)
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
当两个对象之间松耦合,他们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计让主题和观察者之间松耦合。
我们来看看一种push方式的 观察者模式。
首先是观察者 主题 等的接口。
//主题
public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observe ...
- 2009-07-13 11:11
- 浏览 1225
- 评论(0)
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
当两个对象之间松耦合,他们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计让主题和观察者之间松耦合。
我们来看看一种push方式的 观察者模式。
首先是观察者 主题 等的接口。
//主题
public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObser ...
- 2009-07-12 23:00
- 浏览 1015
- 评论(0)
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对变化编程。
多用组合,少用继承。
定义2个接口 FlyBehavior.java ,QuackBehavior.java
public interface FlyBehavior {
public void fly();
}
public interface QuackBehavior {
public void quack();
}
分别实现 ...
- 2009-07-12 15:38
- 浏览 1154
- 评论(0)
很久没有看EJB3了,今天有空弄了个HelloWorld来耍耍,熟悉熟悉,加深些印象。
首先弄好环境,Eclipse JBOSS配置好环境变量。
接着就是code啦:
接口:HelloWorld.java
package org.eimhe.ejb3;
public interface HelloWorld {
public String SayHello(String name);
}
实现接口:HelloWorldBean.java
package org.eimhe.ejb3;
import javax.ejb.Remote;
import javax.ejb. ...
- 2009-07-06 23:51
- 浏览 721
- 评论(0)
你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。
几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的Chrome浏览器。由于Chrome出生名门,尽管他还是个小家伙,没有人敢小看他。以后,咱们常说浏览器的“四大才子”就得改称为“五朵金花”了。
在网站前端开发中,浏览器兼容性问题本已让我们手忙脚乱,Chrome的出世不知道又要给我们添多少乱子。浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本。
JavaScript是前端开发的主要语言 ...
- 2009-07-02 10:02
- 浏览 751
- 评论(0)
一. 需求
1.用JAVA实现HTTP的文件上传。
2.显示上传进度条。
二. 问题分析
1.如果使用apache的上传组件common-fileupload.jar进行文件上传,当上传的文件大于服务器的内存SIZE的时候,会生成一个临时文件,文件先保存到临时文件中,然后再从临时文件COPY到到指定的路径,这个时候就会有问题了。
A.上传的进度条是根据上传文件的大小,和已经上传到指定文件的大小来生成的,如果生产临时文件,那么在文件从本地上传到服务器端的这段时间我们是看不到进度条的,看到的只是从服务端的临时文件COPY到目的文件的进度条,理论上在网络上从本地上传到服务器的时间大 ...
- 2009-06-03 16:14
- 浏览 4533
- 评论(1)
//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } //校验登录名:只能输入5-20个以字母开头、可带数字、"_”、".”的字串 function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true } //校验用户姓 ...
- 2009-04-29 17:30
- 浏览 2374
- 评论(0)
一.需求 完成一个摄像头录像的服务器
1.要求主动的去摄像头抓数据.
2.生成目录,按照摄像头的名称 录像的日期生成文件夹,在文件夹中生成录像文件.
3.录像文件要求,在启动录像服务器后,开始录像,文件一个小时生成一个.
4.如果 ...
- 2009-04-24 13:00
- 浏览 1125
- 评论(0)
code1:
File f = new File("z:/iamge");
if(f.mkdir())
System.out.println("success");
code2:
File cs = new File("z:/image");
File f = new File(cs.getAbsolutePath());
if(f.mkdir())
{ System.out.println("success"); }
code3:
File cs = new Fil ...
- 2009-04-24 12:58
- 浏览 3053
- 评论(0)
代码量的比较。右端为“不使用Jazelle RCT的编译”,中间为“使用Jazelle RCT的编译”。左端为原来的Java字节代码。数据来自ARM。
ARM内核技术的变迁。最先Jazelle RCT的是Cortex-A(开发代码:Tiger)。最下面的箭头(→)之所以没有指到Cortex-A,是因为该技术是选配的。数据来自ARM。
英国ARM公司日前发表了第二项Java应用高速技术“Jazelle RCT(Runtime Compiler
Target,运行时间编译器目标)”()。此前该公司已经推出了解释器高速技术“Jazelle DBX(Direct Bytecod ...
- 2009-04-22 14:43
- 浏览 1412
- 评论(0)
匹配空格
function isContentSpace(s){ var patrn = /\s+/g; if(patrn.exec(s)) return true; return false;}
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内): [^\x00-\xff]
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匹配空行 ...
- 2009-04-18 16:36
- 浏览 2517
- 评论(0)