首页 文档 博客 资源 论坛 |
雪峰的JavaEE博客
研究、思考、探索
访问地址:http://xuefeng.javaeedev.com » 复制 » 收藏 » 订阅
博客首页 » 最新文章
发表于08-07-02 12:05 | 阅读 343 | 评分 (暂无)
用过超级牛牛无敌在线盯盘专家吗?
http://www.googlook.net/stock/Stock.html
发表于08-04-28 14:13 | 阅读 1007 | 2人对此综合评价

在Tomcat 6中配置SSL双向认证是相当容易的,本文将介绍如何使用JDK的keytool来为Tomcat配置双向SSL认证。

系统需求:

JDK 5.0
Tomcat 6.0.16

第一步:为服务器生成证书

使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“C:\tomcat.keystore”,口令为“password”,使用如下命令生成:

 
如果Tomcat所在服务器的域名不是“localhost”,应改为对应的域名,如“www.sina.com.cn”,否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”

第二步:为客户端生成证书

下一步是为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:< ...
发表于08-04-17 12:11 | 阅读 1248 | 1人对此综合评价

近期整理的Java PDF文档下载
[Java]
细说Java之常用集合类
Java源码分析:深入探讨Iterator模式
深入Java的IO体系 - Decorator模式的应用分析
利用反射实现JavaBean的自动赋值
[J2EE]
使用Mock对象使单元测试更加容易
对DAO编写单元测试
使用FileUpload组件上传文件
使用Servlet动态生成图片
Spring AOP入门
将ReadWriteLock应用于缓存设计
走进JBoss
使用NetBeans开发Java EE 5“Hello world”应用程序
Tomcat双向SSL认证的配置
[J2ME]
J2ME概念解析
J2ME 3D技术简介
一个拼图游戏的开发
J2ME最佳实践
发表于08-04-07 09:50 | 阅读 559 | 1人对此综合评价

随着Web 2.0应用的日益普及,如今的Web早已从独立的Web Site变为可交互的Web Application。越来越多的Web 2.0应用开始开放API,并欢迎其他Web应用程序集成进来以便为用户提供更紧密的服务。Google,Yahoo之类的网络巨头早已提供了各式各样的众多的API让Web Application能调用之。而Facebook更是独辟蹊径,提出了Web Platform的概念,大胆地将自己打造为一个Web平台,让其他Web Application直接运行在Facebook的平台之上。成千上万的Web Application开始为Facebook编写应用,以便能让庞大的Facebook用户直接访问自己的Application,从而带来显著的流量提升。虽然目前中文网站还不能直接从Facebook受益,然而Web Application的集成已是大势所趋。本文以如何将一个Web计算器(http://www.googlook.net/samples/calcula ...
发表于08-03-04 10:25 | 阅读 918 | 1人对此综合评价

在Eclipse中,只需随时按住Ctrl并点击某个类名或方法名,即可跳转到相应的代码中。然而,如果引用一个开源的jar包,则会直接打开其class的二进制码,这对于调试或研究代码内部流程颇为不便,尽管可以在Build Path中为每个jar指定源代码位置,但这样一来,对于同一个jar(例如spring.jar),每个工程都要指定,比较麻烦。
另一种更简单的方式是直接用WinZip或WinRAR之类的工具解开jar,再把源码也放进去,注意路径要正确,同一个Xxx.class和Xxx.java应该在同一目录下,再用zip打包成jar包(jar格式其实就是zip格式),以后无论在哪个工程引用该jar包,Eclipse都可以直接从jar包中读出其对应的源代码,不必在Build Path中配置源代码位置,对于开源组件来说,大大方便了代码的跟踪和测试。
发表于08-01-08 08:14 | 阅读 1225 | 2人对此综合评价

Lucene是Java领域最出色的全文搜索引擎,然而其API比较复杂,并且有严格的线程同步模型,直接使用不易。Compass则是封装了Lucene的一个OSEM:Object-SearchEngine Mapping,与Hibernate封装JDBC类似,然而过于复杂,支持的Lucene版本较低,因此决定自行开发一个类似Compass的简单封装Lucene的全文搜索框架,支持最新版本Lucene和Java 5泛型代码,用户通过简单的代码即可对自定义Bean进行搜索:
List<T> list = Searcher.search(Class<T>, String q, Page page);
下载地址:
http://code.google.com/p/lightweight-search/downloads/list
发表于08-01-02 18:02 | 阅读 555 | 1人对此综合评价

Spring 2.5提供了自动在当前ClassPath搜索被标注有特定注解的类,这个特性非常有用,跟踪了一下源码,发现其实核心代码就是利用ClassLoader的方法:
public Enumeration<URL> getResources(String name)
于是自己动手,也写了一个能在ClassPath下搜索特定类的Scanner:
package com.javaeedev.util;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
发表于07-11-27 17:00 | 阅读 801 | 评分 (暂无)

由于MVC框架的设计,必须保证配置IoC容器时指定正确的Scope,否则无法正常工作:
用户定义的所有的Action类必须是Prototype域,即Guice默认的作用域,如果定义为Singleton会导致并发请求的数据混乱;
用户定义的所有的Interceptor,ViewResolver和ExceptionResolver应该是Singleton的,MVC框架会保持其引用,即时定义为Prototype也是无效的。
在实现Interceptor时需要注意,如果要继续处理请求,就必须调用
chain.doInterceptor(action);
否则请求不会被继续处理。多个Interceptor的排列顺序很重要,用@Order指定,小的在前,即优先级高。
下面是几个简单的示例:
一个处理事务的Interceptor,能保证每个Action的执行都在事务范围内:
package com.javaeedev.lightweight.mvc.sample;
@Singleton
@Or ...
发表于07-11-22 16:27 | 阅读 981 | 评分 (暂无)

Subversion是新一代的开源版本控制系统,和CVS相比,Subversion最大的特点是支持事务,可以确保一个提交是原子操作。此外,Subversion还支持更多的协议,包括HTTP访问。在Eclipse中,使用Subverison和CVS一样简单,只需安装Subclipse插件就可以了。
本文以Eclipse 3.3为例,安装Subclipse非常容易,打开Eclipse,选择菜单Help->Software Updates->Find and Install…,在弹出的对话框中选择“Search for new features to install”,然后点击“New Remote Site…”,填入Subclipse的在线安装的URL:

 
按照提示安装完毕后,我们就可以打开Subversion的资源库了。选择Eclipse菜单Window->Show View->Other…, ...
发表于07-11-21 16:33 | 阅读 1003 | 1人对此综合评价

在设计完API后,我们就需要实现这个MVC框架。MVC框架的核心是一个DispatcherServlet,用于接收所有的HTTP请求,并根据URL选择合适的Action对其进行处理。在这里,和Struts不同的是,所有的组件均被IoC容器管理,因此,DispatcherServlet需要实例化并持有Guice IoC容器,此外,DispatcherServlet还需要保存URL映射和Action的对应关系,一个Interceptor拦截器链,一个ExceptionResolver处理异常。DispatcherServlet定义如下:
package com.javaeedev.lightweight.mvc;
/**
 * Core dispatcher servlet.
 * 
 * @author Xuefeng
 */
public class DispatcherServlet extends&n ...
发表于07-11-20 16:42 | 阅读 1224 | 评分 (暂无)

前段时间准备做一个小网站,但是又不想用Spring/Struts/WebWork这样的大块头,因此决定自己写一个MVC框架。花了3天左右时间完成,目前运行良好,整个MVC框架仅21KB,感兴趣的朋友可以从http://code.google.com/p/lightweight-mvc/downloads/list下载完整的源代码和jar包。
设计目标:
一个最简单最小巧的MVC框架,花哨的功能一个不要,越简洁越好,并且不使用XML配置文件,而是完全用Java 5注解配置。
功能列表:
组件必须用IoC配置;
处理HTTP请求的Action,类似WebWork每个请求都生成一个新实例,并自动填充属性;
类似Filter的Interceptor机制,但是在IoC容器中配置;
统一的异常处理;
多视图支持。
由于组件需要用IoC容器配置,因此,第一步就是寻找小巧的IoC容器,Google Guice是一个很不错的选择,并且完全用Java 5注解配置组件。这个MVC框架唯一依 ...
发表于07-11-15 14:40 | 阅读 935 | 1人对此综合评价

网络巨头Google最近正式发布了其基于Linux的手机操作系统——Android,最新的SDK现在已经可以下载了,其App开发环境竟然是Java!目前Google已经推出了一个Eclipse插件Android Development Tools(简称ADT)来简化开发。按照官方站点的文档,在Eclipse下开发一个Android Application非常容易。
首先下载Android SDK Windows版本,解压即可,然后直接在Eclipse中安装插件,选择Help->Software Update->Find and Install…,选择Search for new features to install,填入地址https://dlssl.google.com/android/eclipse/,然后一路Next即可:

安装完毕后重启Eclipse,需要对SDK作一点设置。选择Window- ...
发表于07-10-10 12:38 | 阅读 538 | 1人对此综合评价

在开发web应用时,如果通过weblogic的控制台部署war包,则weblogic默认在运行期不会解压war,这对于调试jsp颇为不便。其实,只需一个简单的设置就可以强迫weblogic解开war,并且编辑jsp后weblogic会重新加载,方便调试。
以8.1 sp4为例,打开bea/user_projects/domains/<my-domain>/config.xml
找到相应的war包:
<Application Name="test"
        Path="C:\java\bea\user_projects\domains\mydomain\applications\test.war"
        StagingMode="nostage" TwoPhase="true">
将StagingMode改为stage,重启weblogic即可。解压后的 ...
发表于07-10-09 09:29 | 阅读 10916 | 3人对此综合评价

Spring 2.0在线视频教程(Flash格式):
新窗口观看
或者从以下地址下载:
下载地址
发表于07-10-02 06:55 | 阅读 439 | 1人对此综合评价

Jetty是一个优秀的Web服务器,最大的特点是可嵌入应用程序,因此作为调试服务器非常方便,就像跟踪普通的main()方法一样可以在Eclipse中直接调试Web应用而无需远程连接。但是使用Jetty发现一个问题,即Windows上启动后Jetty会锁定已访问的静态文件,如HTML,CSS等,这给页面设计带来了不便。
其实Jetty官方站点对此问题已有回答,锁定文件据说是为了提高性能,但我觉得缓存也不一定需要长时间锁定文件:
http://docs.codehaus.org/display/JETTY/Files+locked+on+Windows
其实可以修改Jetty默认的配置文件,在jetty-6.1.5.jar中找到org/mortbay/jetty/webapp/webdefault.xml,搜索useFileMappedBuffer:
    <init-param>
      <param-name>useFileMappedBuffer</param-name& ...
发表于07-09-20 10:54 | 阅读 552 | 评分 (暂无)

最近在项目中用Quartz调度任务,运行在WebLogic 8.1中,使用JDBC作为存储源,后台数据库是Oracle 9i,几经周折,才搞定Quartz的配置。
首先是无法写入Oracle数据库,提示Blog字段表示有问题,经搜索发现,由于配置的Quartz数据源是从WebLogic的JNDI拿到的,因此务必将org.quartz.jobStore.driverDelegateClass属性配置为org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate。
然后提示找不到class,先放入quartz-weblogic-1.6.0.jar,重启后发现还是找不到org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate,再仔细检查发现原来Quartz自带的配置文件把类的全名拼错了(org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDe ...
发表于07-09-01 16:09 | 阅读 1292 | 1人对此综合评价

上午通过3个小时奋战,终于成功在Debian Etch r1上通过xen成功安装Windows XP!
这是安装界面:

安装成功后进入Windows的界面:

要在Linux上按装Windows,除了VMWare这种通过软件全虚拟的方式,还可以通过xen实现硬件支持的虚拟。现在,各主要发行版都内置了xen,原本打算在Redhat Enterprise 5上试试,不过硬件配置太麻烦。源码编译太麻烦,最好是通过安装包一次搞定,最终决定用Debian Etch,几条apt-get就搞定了,非常方便。
安装Windows的必须条件:
CPU必须支持Intel VT或AMD PT虚拟化技术,没有的话就不用考虑了。要检查CPU是否支持,用命令:
grep vmx /proc/cpuinfo
如果是AMD的CPU用grep svm /proc/cpuinfo。
我的硬件配置:Inte ...
发表于07-08-29 21:45 | 阅读 496 | 评分 (暂无)

在Debian Etch上安装迅驰无线网卡非常方便,不用编内核也不用编驱动,我在Asus和HP的两台笔记本上都安装成功!
Asus笔记本是迅驰一代,无线模块是2200BG。先安装Debian Etch r1,我采用的是netinst,安装完毕后只有最基本的系统,内核版本是2.6.18-5。然后用apt-get直接安装无线模块:

apt-get install ipw2200-modules-2.6.18-5-686
 
还需下载一个firmware,从http://ipw2200.sourceforge.net/firmware.php下载v3.0,解压后放在/usr/lib/hotplug/firmware/即可。
编辑/etc/network/interfaces,仿照eth0添加:
allow hotplug eth1
iface eth1 inet dhcp
我设置的无线AP没有口令,重启 ...
发表于07-08-27 14:11 | 阅读 400 | 评分 (暂无)

JavaEE开发网的博客后台新增了向Google博客搜索自动提交索引的功能,今天测试了一下,发现Google的索引速度非常快,从博客发布到被索引只用了1分钟左右的时间:
发表于07-08-27 14:02 | 阅读 517 | 评分 (暂无)

Java 1.5增加了非常实用的Process和ProcessBuilder类,能让我们非常方便地在Java应用程序中启动其他任何可执行文件和脚本。以下代码将运行一个记事本:

public class Main {
    private static final String COMMAND = "C:\\WINDOWS\\NOTEPAD.EXE";

    public static void main(String[] args) throws IOException, InterruptedException {
        Process process = null;
        if(args.length==0)&nbs ...
120项,6页: 上一页 1 2 3 4 5 下一页
自我介绍 »
潜心研究JavaEE……
等级:
搜索文章 »
文章分类 »
最新发表 »
最新评论 »