JspRun 源代码学习(一)

一直想找一个开源的Java Web应用,深入地学习它的源代码,以期提高自己的Web开发能力。找来找去,终于选定了JspRun,一个所谓“开源”的论坛系统。它是由国内某公司开发的。下载其源代码,并初步阅读后,很是气愤:

  1. 通过Eclipse的文件搜索搜索/\*时,只搜索到7个结果。可见,其源代码中根本没有注释。
  2. 没有一丁点单元测试代码。
  3. 某些方法超长。
  4. 没有一句日志。

不知道是真的没有,还是故意在对外发布的源代码中剔除了?!

 

不过,不管怎样,人家还是把自己开发的产品开源了,给了大家一个学习的资源和机会。

 

开始研究、学习其源代码。

 

(1) Windows XP下安装

建议下载其EasyJspRun!6.0.0_for_windows_UTF8.zip,一个setup.exe文件。选择Apache + Tomcat模式,安装路径中不要出现空格(以后均假设安装路径为:D:\JspRun6.0.0)。安装成功后,通过Firefox使用一番。默认的管理员、密码是admin admin。登录后,有一个“系统设置”菜单,它对普通用户不可见。根据感觉,随便设置一番。再注册一个普通用户,发一个新帖,感受一下。总之,对该系统有一个感性认识,这对研究其源代码是有好处的。

 

(2)将源代码导入Eclipse

单独下载源代码包(UTF8格式),导入Eclipse,修改编译级别为1.5,WebRoot的某些jsp文件编译异常,忽略之。但src下所有文件编译通过。

 

(3)安装p6spy

通过p6spy,可以监视后台的JDBC操作,这对研究其源代码是有好处的。将p6spy.jar拷贝到D:\JspRun6.0.0\apache-tomcat-6.0.18\webapps\ROOT\WEB-INF\lib, 将spy.properties拷贝到D:\JspRun6.0.0\apache-tomcat-6.0.18\webapps\ROOT\WEB-INF\classes。修改spy.properties:

realdriver=com.mysql.jdbc.Driver

# realdriver=org.gjt.mm.mysql.Driver

logfile     =D:/spy.log

 

修改cn.jsprun.utils.HibernateUtil.java:

Class.forName("com.p6spy.engine.spy.P6SpyDriver");

 

分别修改src下的和D:\JspRun6.0.0\apache-tomcat-6.0.18\webapps\ROOT\WEB-INF\classes下的hibernate.cfg.xml:

<property name="connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>

 

剪切D:\JspRun6.0.0\apache-tomcat-6.0.18\webapps\ROOT\WEB-INF\lib下的jsprun.jar到其他路径下,使用Eclipse的导出-Jar文件,生成新的jsprun_my.jar到lib下。

 

重启JspRun,做几个操作,查看D:/spy.log文件。

 

小插曲:我在初次安装JspRun时,安装路径有空格。多次尝试安装p6spy均异常,憋屈了一天。

 

(4)安装MySQL客户端HeidiSQL

JspRun自带MySQL,在D:\JspRun6.0.0\mysql5\。root密码为root,端口为3308,而不是默认的3306。JspRun用到的表太多了,直接访问MySQL查看太费劲了。

cd D:\JspRun6.0.0\mysql5\bin
mysql -u root -p
use jsprun

 

(5)配置Tomcat远程调试

在D:\JspRun6.0.0\apache-tomcat-6.0.18\bin\catalina.bat 第69行添加:

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787

(注意这是一行,没有换行!)

 

修改D:\JspRun6.0.0\apache-tomcat-6.0.18\installservice.bat为:

"D:\JspRun6.0.0\apache-tomcat-6.0.18\bin\"startup.bat

 

修改D:\JspRun6.0.0\apache-tomcat-6.0.18\removeservice.bat为:

"D:\JspRun6.0.0\apache-tomcat-6.0.18\bin\"shutdown.bat

 

默认的是通过bin\service.bat 启动Tomcat,这种方式不能进行远程调试。

 

在Eclipse下:

点击JspRun项目,点击Debug图标-Debug Configurations,Host:localhost,Port:8787,点击Debug按钮,如果没有提示错误,表示进入了Remote Debug模式。在cn.jsprun.struts.foreg.actions.LoggingManageAction的login()方法中设置几个断点。在你的浏览器中尝试admin/admin登录,就可以进行调试了。(在我本机可以成功调试)

 

(6) 安装Firefox及其插件

开发常用插件:Web developer、Firebug,等等。有更好的,请留言。

 

注:有问题,请留言。有研究源代码的好方法、好工具,请留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JspRun!- 最棒的免费的开源Java社区软件系统 JspRun!论坛软件系统简介 论坛软件系统亦称电子公告板(BBS)系统,它伴随社区BBS的流行而成为互联网最重要的应用之一,也逐渐成为网站核心竞争力的标志性体现。2006年7月 CNNIC 发布的最新统计表明,43.2% 的中国网民经常使用论坛/BBS/讨论组,论坛社区应用首次超过即时通讯 IM ,成为仅次于收发Email的互联网基本应用。 JspRun!是飞速创想(北京)科技有限公司推出的一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。JspRun! 的基础架构采用世界上最先进流行的 web 编程组合 JAVA MySQL 实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。 JspRun! 开发组具有丰富的 web 应用程序设计经验,尤其在论坛产品及相关领域,经过长期创新性开发,掌握了一整套从算法,数据结构到产品安全性方面的领先技术。使得 JspRun! 无论在稳定性,负载能力,安全保障等方面都居于国内外同类产品领先地位。 2009年4月23日更新内容部分列表 修复功能 1、修复了非法请求资源 2、修复了jsp脚本在一些特殊条件下会产生一个以上的实例,造成脚本执行不同步 3、修复了jsp脚本下次执行时间错误 4、修复了上传附件数组越界,附件来路检查无效,附件下载付费功能无效,下载附件扣除积分错误 5、修复了上传附件的存放路径动态获取 6、修复了清空帖子回收站的时没有删除远程附件 7、修复了查看短消息空指针异常及关键字搜索短消息无效 8、修复了生存缓存文件截取修改时间异常 9、修复了禁止浏览器缓冲功能 10、修复了生成验证码的访问路径 11、修复了主题操作在某些条件下会出错 12、修复了个人空间显示效果,包括文集、昵称、收藏版块、主题图标等 13、修复了上传图片时如果图片是动画为该图片生成缩略图和水印图片 14、修复了在gbk项目下无法保存ftp密码的问题 15、修复了合并用户时合并短消息异常 16、修复了主题自动关闭后仍可以回复的问题 17、修复了编辑主题时缺少主题分类选项,显示信息类别的效果及不能预览远程附件服务器上的图片 18、修复了Archiver 功能在 URL 非静态化的条件下无法正常访问 19、修复了论坛会员个人设置时区无效 20、修复了jspruncode的html解析错乱,如table表格,img图片标签 21、修复了版主超版部分后台权限 22、修复了主题付费、附件付费无效的问题 23、修复了积分交易功能无效的问题 24、修复了Wap设置时的页面错误、wap查看回帖时的分页信息、wap发帖回帖乱码的问题 25、修复了新用户注册无法保存个性签名等若干bug 26、修复了三元运算符以兼容更多的web服务器(如jboss、resin等) 27、修复了广告数量不能整除时无法显示广告的问题 28、修复了“系统错误记录”无法写入的问题 29、修复了后台操作中如果 session 过期重新登陆后出现循环跳转 30、修复了恶意访问后台权限判断,个人签名过滤恶意html代码的问题 31、修复了全文检索不精确 32、修复了如果域名中多一个"/"符,后台表情搜索失效 33、修复了注册时生日输入特殊字符出错的问题 34、修复了删除会员组后计算会员组错误 35、修复了插件版权信息设置错误的问题 36、修复了用户设置界面风格后,第一次访问时界面设置无效问题 37、修复了wap发帖回帖成功后今日发帖数不变的问题以及主题浏览无分页问题 38、修复了浏览帖子时以及查看短消息内容时解析特殊字符$出错的问题 39、更多细节问题的修复 优化功能 1、优化了页面缓存类及页面缓存生成方式 2、优化减少过滤器中的sql查询语句 3、优化减少版块帖子列表sql查询语句 4、优化个人空间 5、优化验证问答 6、优化快速编辑帖子的提交方式和帖子附件下载次数 7、优化搜索的排序方式 8、升级优化序列化类 9、优化统计功能 10、优化所有页面分页功能 11、优化首页,帖子列表,帖子浏览页面,大大减少页面大小,增加浏览速度,减少服务器访问流量 12、优化thread页面解析特殊代码,避免出现死循环, 13、更多细节方面的优化 新增功能 1、增加了远程附件服务器附件下载功能,可以最大限度减轻论坛服务器负担 2、增加了注册页面可添加广告 3、增加了更改访问端口号功能 4、增加了论坛插件功能 5、增加了商品发布功能(包括财付通功能、积分充值功能及相关的论坛交易功能) 6、增加了注册时用户名中如含有'号则屏蔽该用户名

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值