一直想找一个开源的Java Web应用,深入地学习它的源代码,以期提高自己的Web开发能力。找来找去,终于选定了JspRun,一个所谓“开源”的论坛系统。它是由国内某公司开发的。下载其源代码,并初步阅读后,很是气愤:
- 通过Eclipse的文件搜索搜索/\*时,只搜索到7个结果。可见,其源代码中根本没有注释。
- 没有一丁点单元测试代码。
- 某些方法超长。
- 没有一句日志。
不知道是真的没有,还是故意在对外发布的源代码中剔除了?!
不过,不管怎样,人家还是把自己开发的产品开源了,给了大家一个学习的资源和机会。
开始研究、学习其源代码。
(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,等等。有更好的,请留言。
注:有问题,请留言。有研究源代码的好方法、好工具,请留言。
分享到:
相关推荐
JspRun是一个流行的开源论坛系统,它基于Java Servlet和JSP技术,用于构建社区网站。...通过深入研究JspRun的源代码、文档和实际运行,开发者不仅可以掌握论坛系统的实现,还能进一步提升Java Web开发技能。
开源意味着JspRun的源代码是公开的,用户可以免费下载、使用、修改和分发,这为开发者提供了高度的灵活性和定制性。 JspRun作为一款成熟的论坛软件,包含了众多核心功能,如用户注册登录、发帖回帖、主题分类、用户...
_6.0.0_Source》是一款基于Java技术开发的开源论坛系统,其源代码的发布为开发者提供了深入理解Web应用程序构建、尤其是论坛应用开发的宝贵资源。这款论坛系统以其高效、稳定和易用性在互联网上广受欢迎。通过分析和...
通过学习JspRun6.0的源代码,开发者可以深入理解如何在实际项目中运用这些概念,提高自己的编程技能。 2. **Servlet与JSP技术** JspRun6.0的核心是基于Servlet和JSP的Web应用程序。Servlet负责服务器端的业务逻辑...
【个人(jsprun)bbs论坛源码】是一个针对个人用户设计的论坛软件系统,其核心在于提供一个互动交流的平台,使用户能够创建、管理自己的社区。BBS(Bulletin Board System)论坛源码是实现这一功能的基础,它包含了...
SyntaxHighlighter是一个流行的代码高亮插件,用于在论坛上展示源代码时进行语法着色,使得代码阅读更加清晰易懂。这对于技术讨论和问题解决是非常有用的。 此外,我们还注意到一个名为ipdata.Dat的文件,它通常...
机器学习实战的配套源代码,按照图书的章节提供。 This is the source code to go with "Machine Learning in Action" by Peter Harrington published by Manning Inc. The official page for this book can be ...
社区论坛系统】是一个基于Java和JSP技术构建的开源社区论坛系统,其版本v6.0 UTF-8 源码版 Bulid 091116utf8.zip提供了完整的源代码,非常适合Java学习者,尤其是对于进行毕业设计的学生来说,是一个宝贵的实践和...
JspRun! 社区论坛系统是一款基于Java技术开发的开源论坛软件,广泛应用于搭建互联网社区平台。...通过深入学习和理解源代码,开发者可以更好地掌握Java Web开发技术,同时提升自身在社区建设领域的专业技能。
可能采用了模板引擎,允许开发者和管理员通过修改模板文件来改变论坛的外观,而无需深入到源代码层次。 7. **权限控制**:论坛系统需要有完善的权限管理,包括用户注册、登录、权限分配、角色管理等。JspRun! 的...
总结,Apache Tomcat 6.0.41源代码的获取和研究为开发者提供了一个深入学习Web服务器工作原理的机会。通过Eclipse的集成开发环境,我们可以更方便地编译、运行和调试源代码,从而提升对Java Web应用开发的理解和技能...
标题中的“tomcat6源代码 eclipse导出工程”意味着这个压缩包包含的是Tomcat 6服务器的源代码,这些源代码是使用Eclipse IDE导出并组织成一个可直接导入Eclipse的工作空间的格式。这样的工程对于开发者来说非常有用...
源码版适合学生进行毕业设计或课程设计,因为它提供了完整的论坛功能,学生可以通过学习源代码了解Web应用的开发流程,掌握Java Web技术,包括JSP、Servlet、数据库操作、MVC模式等。 5. **开发与部署**: 开发者...
3. **源码版**:提供完整的源代码,开发者可以深入了解系统内部实现,进行二次开发或学习研究。 4. **论坛系统架构**:JspRun!论坛系统通常包括用户模块、论坛模块、管理模块等。从提供的文件名可以看出,系统包含...
包含以下几个核心功能模块的源代码: 1. **PostManageAction**: 这个类与帖子管理相关,可能涉及到用户发布、编辑、删除帖子的功能实现。开发者可以通过这个类了解如何处理论坛中的帖子操作,包括后台管理接口和...
这个压缩包包含了一本名为“JspRun!使用说明书.chm”的帮助文档以及“JSP七个小项目代码和笔记汇总(java web)”的源代码和学习笔记。通过这两个部分,我们可以深入理解JSP在实际开发中的应用,以及如何将Java编程...
【JAVA企业门户网站源代码】是一个面向企业级别的网站开发项目,主要使用JAVA编程语言进行构建,其特点是包含了完整的系统源代码和配套的数据库设计。这个项目不仅适用于学习JAVA Web开发,也为企业提供了一套可定制...
Java课程设计资料以及源代码是针对Java编程爱好者和学习者的一份宝贵资源,它涵盖了J2EE、Java和JSP等关键领域的知识。这些技术在现代企业级应用开发中占据了重要地位,对于深入理解Java全栈开发至关重要。 首先,...
这个“电子商城源代码和数据库”项目显然利用了这两种技术,结合MySQL数据库,来搭建了一个完整的在线购物平台。下面将详细讨论相关知识点。 1. **Java与JSP**: Java是一种广泛使用的后端编程语言,以其"Write Once...
本教程将深入讲解如何利用IntelliJ IDEA创建一个完整的Java Web项目,并提供源代码供学习参考。 首先,我们需要了解Java Web项目的组成部分。它通常包含前端资源(HTML、CSS、JavaScript)、后端服务器逻辑(Java ...