funinhand

funinhand
随笔 - 9, 文章 - 0, 评论 - 0, 引用 - 0
数据加载中……

2009年6月22日

漫谈Java加密技术(一)

     摘要: 关键字: java 加密基础, base64, md5, mac, sha, 单向加密     加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。     如...  阅读全文

posted @ 2009-07-01 20:53 funinhand| 编辑 收藏

Apache HTTPServer与JBoss或是Tomcat的整合与请求分发

如果需要一台服务器来做转发请求的话,用 apache的HttpServer再好不过了。

假如一个客户请求服务器A,A并不直接处理客户端的请求,而是把请求转发到
服务器B。

来看一个具体怎么操作吧。

首先先下载一个apache-httpserver,这里用的是apache_2.2.3-win32-x86-no_ssl.msi,你可以在此
http://apache.mirror.phpchina.com/httpd/  http://www.bt285.cn  进行下载。或此看此文最后的附件也可。

安装就不用说了吧,安装完毕后。有时候启动服务会失败,我的第一次就失败了。端口被占用。
这时我们:

首先用netstat -ano 看是得到占用80端口的进程的PID,然后打开任务管理器,选择->查看->选择列,勾上PID(进程标识符),结束这个进程,再启动Apache就成功了.
可以在浏览器输入:http://localhost 出现 'it works' 说明就ok了.

服务启动成功后去下载:mod_jk-apache-2.2.3.so,本文附件中会提供。


1.进入apache的安装目录。找到modules把下载好的mod_jk-apache-2.2.3.so复制进去。
2.在conf目录建立一个workers.properties文件,内容如下:

# Define 1 real worker using ajp13
worker.list
=admin
#
Set properties for admin (ajp13)
worker.admin.type
=ajp13
worker.admin.host
=127.0.0.1
worker.admin.port
=8009
worker.admin.lbfactor
=50
#worker.admin.cachesize
=10
# worker.admin.cache_timeout
=600
worker.admin.socket_keepalive
=1
# worker.admin.recycle_timeout
=300


其中host就是你要转发到的服务器IP,port是端口号。这里是用本机测试,所以只改端口号就行了。

3.打开conf目录下的httpd.conf文件,找到#LoadModule ssl_module modules/mod_ssl.so http://www.5a520.cn 这一行。在
这一行下面加上:

# 加载 mod_jk 模块
LoadModule jk_module modules
/mod_jk-apache-2.2.3.so

# 指定 mod_jk 模块所需的配置文件 workers.properties 的位置
JkWorkersFile conf
/workers.properties

# 指定 mod_jk 模块的日志文件位置
JkLogFile logs
/mod_jk.log

# 指定 mod_jk 模块的日志级别
JkLogLevel info

# 指定 mod_jk 模块的日志格式
JkLogStampFormat "
[%a %b %d %H:%M:%S %Y]

# 发送所有请求上下文的请求给 admin
JkMount
/* admin

最后一个的admin就是第二步中的worker.list

<Service name="jboss.web">

????

??
????
<Connector port="8080" address="${jboss.bind.address}"????
????????? maxThreads
="250" maxHttpHeaderSize="8192"
????????? emptySessionPath
="true" protocol="HTTP/1.1"
????????? enableLookups
="false" redirectPort="8443" acceptCount="100"
????????? connectionTimeout
="20000" disableUploadTimeout="true" />??

????

????


????

????
<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
????????? emptySessionPath
="true" enableLookups="false" redirectPort="8443" />

??????
<Engine name="jboss.web" defaultHost="localhost" >

?????????

tomcat:
tomcat/conf/server.xml:


????
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


其中关于AJP的配置是一样的,这里可以更改你需要的端口,当然上面的apache也需要同时更改。

最后打浏览器测试一下吧:
http://localhost

显示的其实就是http://127.0.0.1:8009 ,如果你JBoss/Tomat下部署有测试工程。看一下吧。已经出现了。

好的,操作成功了。说明已经转发成功。

相关附件下载



好了apache的配置都搞定了,重启一下ok.

我们再来看一下jboss的配置:

找到:
jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer\server.xml

看看最上面的一段配置就行了:

posted @ 2009-06-27 20:16 funinhand| 编辑 收藏

xtable的介绍及需要改进的地方

xtable是由陈仁飞(http://www.bt285.cn )独自开发的jsp页面组件,目前提供分页、排序、无限层分组以及汇总功能,以及包括导出excel/pdf/xml等,xtable不同于displaytag,extrameTable的地方在于xtable自定义了一套宏插件模式,只要实现接口,你可以随意扩展xtable的功能。

xtable最大的优点在于简单易用,分组汇总就是很简单的几句话,而且能够支持无限层分组汇总。

页面代码:

 

看预览效果:

 

但xtable目前也暴露了一些缺陷,因第一版在项目过程中只有很短的时间实现,很多方面考虑欠妥,宏没有支持嵌套,此问题一直延续到现在,发现已经难以适应更强大的需求了,本期改进计划:

1、代码进行重构、标签的使用要更加简洁,去除一些无用的属性,增加一些智能判断(如displayProperties简单模式就无需定义)

2、xtable实现宏嵌套,增加默认个人扩展机制,宏嵌套的实现将有助于提升整个xtable的可扩展性,提升到一个表格的平台。

3、简单模式xtable支持grid模式:头固定,列可以拖动

4、最大的改进就是增加交叉报表功能,这个目标的实现将能够把xtable推到介于一般标签和专业报表工具之间的角色,稍微复杂的查询统计无需用报表工具(因为一般的业务系统复杂的报表就几个,用专业的工具费时费钱费力)

 

如xtable_code.gif中的@groupSum().  http://www.5a520.cn 这个就是自己扩展的宏,原项目并不存在分组汇总功能,后期自己实现宏接口实现了分组汇总等功能。

posted @ 2009-06-25 21:46 funinhand| 编辑 收藏

利用校内API开发程序

     摘要: 目前在51,校内,facebook开发小应用越来越热,这里我仅以xiaonei.com提供的APP Java API为例,探讨他的实现方法,简单来说就是分为2步: 申请个应用,得到应用的API Key和Secret两个数值 利用这两个数值,我们就可以使用xiaonei的Java API,以下代码用来实现获取你的个人信息和你的好友信息代码(由于邀请API已过期,所以不能使用)...  阅读全文

posted @ 2009-06-24 22:44 funinhand| 编辑 收藏

用java抓取百度Top500歌曲及源码下载

     摘要: 在我整理完在线听歌(http://www.5a520.cn )的模块后,剩下来的工作就是如何通过程序抓取最新的Baidu好听的歌曲,抓取的工作主要包括3个属性:歌名、歌曲在线播放地址和歌词内容(符合LRC歌词格式),目前完成歌曲和歌曲地址抓取,由于百度的歌曲地址很多通过js获取,所以歌曲地址获取我这里使用搜狗音乐搜索方便些,所有的源码如下: /** *//** http://www....  阅读全文

posted @ 2009-06-23 20:45 funinhand| 编辑 收藏

用JAVA实现缓冲多线程无阻塞读取远程文件

     摘要:     我平时比较喜欢从网上听歌,有些链接下载速度太慢了。如果用HttpURLConnection类的方法打开连接,然后用InputStream类获得输入流,再用BufferedInputStream构造出带缓冲区的输入流,如果网速太慢的话,无论缓冲区设置多大,听起来都是断断续续的,达不到真正缓冲的目的。于是尝试编写代码实现用缓冲方式读取远程文件,以下贴出的代码是我写...  阅读全文

posted @ 2009-06-22 22:25 funinhand| 编辑 收藏