`
ablackrock
  • 浏览: 587 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

纯 JSP 网站编程 - 一种思想以及 EasyJForum 的实现

JSP 
阅读更多

在 Web 网站开发领域,PHP 似乎大有一统江湖的趋势,以至于我这个多年的 JSP 老手也准备考虑使用 PHP 来扩展我的网站了。在学习了一番 PHP 语言之后,我决定还是留在 JSP 这里 -- 我实在是不喜欢 PHP 中的那些像垃圾一样到处散布的 $ 和 " 符号了,要知道,HTML 代码本来就很杂乱了。也许是我有代码洁癖吧,不过我认为 JSP 至少在代码的可读性上要好于 PHP。

那些使用 PHP 的人经常说 PHP 比较简单,容易上手 -- 可能吧,不过对于我来说,JSP 已经简单得不能再简单了。Java 这种语言比较令人可惜的一点是,其简单性被太多的人滥用,导致其似乎变得很复杂了,而事实并非如此。有经验的人总是能迅速穿过嘈杂的大厅,直达绿草茵茵的目的地 - 不要被 Java 领域那些名目繁多的各种框架所吓倒,那都是一些具有设计癖(程序猿多少都有这样的癖好)的人自娱自乐的玩具而已,不必理会。关注基础性技术,直截了当地解决问题就行了。要知道,Java 只是你解决问题的时候需要用到的几十种工具之一而已,不必在此翻太多的跟斗。

不过,经过多年的实践,我发现 JSP 确实有如下两点不如 PHP 的地方:

1、每次修改了后台的 Java 类之后都要重启应用,这降低了 JSP 作为 Web 开发语言的易用性。对 Java 类进行及时编译和加载是不难实现的,但这必然会降低性能。所以 JSP/Java 更适合于开发复杂的、不需要经常改变网页的企业级应用。

2、JSP 页面中不能定义和共享全局函数,全局变量则必须放在 Application 对象中,这使得 JSP 不能作为一种独立的脚本语言来使用,而必须搭配后台 Java 类来完成任务。(据说 JDK 8 将会支持函数式编程,这可能给 JSP 带来定义全局函数的能力,从而获得新的发展)

好在 Java 是一种强大的语言,通过不长时间的考虑,我很快找到了克服上述两个问题的方法:

1、将 Web 开发常用的一些对象和方法整理封装在几个 Java 工具类中,然后在 JSP 中调用这些方法,尽量不要再创建新的 Java 类和 Servlet,这样至少可以最大限度地减少需要重启应用的次数。

2、对于某些 JSP 页面需要使用局部函数的地方,可以使用 <%! ... %>  来进行定义。如果需要使用全局函数,可以使用一个已经预先定义好的适用于 Web 网页的接口,通过定义一个接口对象并放到 Application 对象中来实现。代码范例如下:

// 下面的代码可以放在一个公共的 JSP 文件中,然后使用 <jsp:include ... /> 来引入到需要的 JSP 文件中
IPageInvoker method1 = (IPageInvoker)application.getAttribute("method1");
if (method1 == null) {
    method1= new IPageInvoker() {
        public Object exec(HttpServletRequest request, HttpServletResponse response) throws Exception {
             System.out.println(“method1 exec”);
             return "OK";
        }
    };
    application.setAttribute("method1", method1);
}

// 在 JSP 文件中调用全局函数
IPageInvoker method1 = (IPageInvoker)application.getAttribute("method1");
Object ret = method1.exec(request, response);
……

作为上述方法的一种实现,从 3.2 版本开始,EasyJForum 的类被进行了重新整理,使之不仅被用于论坛本身,而且可以被用于任意 JSP 站点网页。对于除了论坛之外其它功能比较简单的站点来说,使用 EasyJForum 包 + JSP 就可以解决一切问题了,这就是我们的目标。对于比较复杂的交互式站点,你可能还是需要进行定制,再增加一些其它的 Java 类,不过上述的思想应该仍然是适用的。

这就是 EasyJForum 所要为您提供的新的价值。

关于如何使用 EasyJForum 实现纯 JSP 式的网站编程,请参考:基于 EasyJForum 的 JSP 网站编程指南

 

分享到:
评论

相关推荐

    easyjForum

    其默认使用的数据库是HSQL,这是一种轻量级的内存数据库,适用于快速搭建和测试。 在Java BBS论坛领域,EasyJForum因其易用性和灵活性而受到欢迎。这个系统采用了MVC(Model-View-Controller)架构模式,这种设计...

    [论坛社区]EasyJForum 2.32_ejforum-2.3.zip

    Java是一种广泛使用的面向对象的编程语言,具有跨平台、安全性高和性能优异的特点。JSP(JavaServer Pages)则是Java在Web开发中的一个重要工具,它允许开发者将静态HTML与动态Java代码结合,使得网页能够根据服务器...

    EasyJForum论坛源码

    同时,EasyJForum采用了MVC(Model-View-Controller)设计模式,这是Web应用开发中常用的一种架构模式,它将业务逻辑、数据和用户界面分离,提高了代码的可读性和可维护性。 在模型层(Model),EasyJForum主要利用...

    EasyJForum.zip

    Java Web是一种用于构建动态网站和Web应用程序的技术,它结合了Java编程语言、JSP、Servlet以及一系列相关的Java API。JSP是Java Web中的视图层技术,用于创建动态网页,而Servlet则处理HTTP请求并返回响应,扮演着...

    EasyJMBoard(EasyJForum的姊妹篇) v2.0.zip

    2. **JSP(JavaServer Pages)技术**:作为标签中的“Jsp源码”,EasyJMBoard 使用 JSP 进行视图层的展示,这是一种动态网页技术,允许开发者将HTML代码与Java代码相结合,以实现动态内容的生成。JSP 提供了模板元素...

    [聊天留言]EasyJMBoard(EasyJForum的姊妹篇) v2.0_ejmb.zip

    【标签】中的"Java"表明该源码是用Java语言编写的,这是一种广泛应用的后端编程语言,以其稳定性和跨平台特性著名。"源码"意味着你可以查看和修改底层代码,这对于学习和理解软件工作原理非常有帮助。"毕业设计"意味...

    聊天系统

    “jsp”(JavaServer Pages)是一种基于Java的服务器端脚本语言,常用于创建动态网页。这表明聊天系统的后端可能使用Java技术来处理用户请求、管理数据和提供服务。另一方面,“asp”(Active Server Pages)是微软...

    EasyJMBoard java 留言板

    EasyJMBord可能使用其中一种来处理数据库操作,实现高效的数据存取。 5. **JDBC**:即使使用了ORM框架,JDBC(Java Database Connectivity)作为数据库连接的标准接口,仍然会是底层与数据库通信的重要部分。 6. *...

Global site tag (gtag.js) - Google Analytics