• 网站首页
    • 关于我们
    • 程序开发
    • VI设计
    • 网站托管
    • 网站优化
    • 经典案例
    • 技术方案
    • 人才战略
    • 客服中心
  • 程序开发
    下一代的WEB开发框架
    发布者:admin     发布时间:2009-7-12 阅读次数:

    JSP曾经以编译的Servlet在速度上打败了asp, php. 但是JSP很久以来没有多大的革新. 代码和页面的混合, 使IDE很难兼顾. 在处理一些复杂的连动时, 更是手忙脚乱. 在结构上和JSP类似的ASP.net凭借其服务器端控件编程和数据绑定的概念, 让开发者就象用VB一样编程. 原来可以这样编写WEB程序!

    其实这只是从编程观念上的一个转变, 把浏览器上的事件告诉在Server上驻留在Session中的控件. 那么用Java怎样实现呢? 我曾经构想过两种方案来实现:

    1.      跟Asp.net一样, 采用Tag替换的方式工作.

    2.      发展JSP, 用TagLib实现服务器端控件.

    方案1需要很好的解析html. 优点是灵活, 可以利用现有的HTML编辑工具.

    方案2要求TagLib能允许任意属性, 这要期待jsp2.0. 优点是兼容目前的JSP, 而且可以利用Taglib的嵌套, 循环.

    我曾经试着写一些原型来实现方案1, 发现效果不错, 但是离实用还需要相当的工作量. 那么internet上的Java爱好者们也不甘寂寞吧? 让我们来看看:

    JSF(JavaServer Faces)  http://sourceforge.net/projects/tapestry/

    原来Sun的专家们早就忙活开了, 不过天才们仅仅又订出一个伟大的规范, 丢给厂商们去五花八门的实现. 不用猜了, 是利用JSP+TagLib. 以Sun的影响力, 应该有机会看到IDE, 希望不要太晚.

    Tapestry http://sourceforge.net/projects/tapestry/

    这个SourceForge上的开源项目看起来很活跃, 2.3beta1版 配置相对烦琐. 2.4alpha1简化了配置, 但目前还不算稳定, 看demo建议用2.3版. 从实现方式上看类似方案1, 不喜欢jsp和xsl的美工可能要兴高采烈. SourceForge上有很多它的辅助项目, 其中一个是Eclipse插件, 看来离实用不远了. 下面是一个显示当前时间的简单例子:

    Home.html:

    ==========================================

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>

    <head>

           <title>Simple</title>

    </head>

    <body>

    This application demonstrates some dynamic behavior using Tapestry components.

    <p>The current date and time is: <b><span jwcid="@Insert" value="[[ currentDate ]]">Current Date</span></b>

    <p>Click <a jwcid="@PageLink" page="Home" sometag=”test”>here</a> to refresh.

    </body>

    </html>

    Home.java:

    ==========================================

    package tutorial.simple;

    import java.util.Date;

    import net.sf.tapestry.html.BasePage;

    /**

     *  @version $Id: Home.java,v 1.9 2002/11/27 17:58:58 hship Exp $

     *  @author Howard Lewis Ship

     *

     **/

    public class Home extends BasePage

    {

           public Date getCurrentDate()

           {

                  return new Date();

           }

    }

    ==========================================

    Echo http://www.nextapp.com/products/echo/

    这个小东西才1.0Beta3版, 但是它的Demo让我流了一地口水. 操作浏览器上的窗口居然和写普通程序swing程序没什么两样, 而且能同时刷新. 如果前面两个框架里面还多少残留Struts的味道, 那么Echo让我们彻底回到了OO: 用swing的概念去写servlet. 目前还没看到IDE支持, 如果Borland如果愿意, 让Jbuilder支持它是易如反掌. SourceForge里面还有两个echo相关项目EchoPoint和Marsh提供了更多的让你馋涎欲滴的echo控件, 有兴趣的朋友可以去看看. 下面是一个HelloWorld的例子

    HelloWorldServlet:

    ==========================================

    import nextapp.echo.ContentPane;

    import nextapp.echo.EchoInstance;

    import nextapp.echo.Label;

    import nextapp.echo.Window;

    import nextapp.echoservlet.EchoServer;

    public class HelloWorldServlet extends EchoServer {

        // 为用户返回一个新的实例

        public EchoInstance newInstance() {

            return new HelloWorld();

        }

    }

    class HelloWorld extends EchoInstance {

        // 在用户首次访问时调用init方法. 返回的Window即用户浏览器看到的内容

        public Window init() {

            Window window = new Window();

            // Components 不能直接放到Window下, 必须加到content中

            ContentPane content = new ContentPane();

            window.setContent(content);

            Label label = new Label("Hello, World!");

            content.add(label);

            return window;

        }

    }

    ==========================================

    不搜不知道, 世界真奇妙. 想想以前在WEB上完成一些复杂功能有多辛苦, 后台的程序, 前台的脚本, 一个都不能少. Web Componets的出现让我们看到了希望, 复杂的操作都交给框架去完成, 让我们回到面向对象的OO世界. 但是要看到, 由于过分依赖Session和浏览器脚本, 过多的事件将导致服务器性能下降. 不过因为都是基于Servlet, 我们可以和传统的开发方式并用. 并且随着网络性能的提高和IDE的支持, 以后WEB开发也会变成高效, 愉快的事情.

  • 成都网站建设服务Service
    • 企业网站SEO优化
    • 成都酒店网站建设
    • 学校网站建设方案
    • 政府网站建设解决方案
    • 专业大型c2c多用户网店系统技
    • b2b大型商贸网站建设,仿阿里
    联系方式Connects
    电话:028-65869182(1-8)
    传真:028-65869182(8)
    移动电话:13438319830
    业务QQ:
    在线联系在线联系
    技术QQ:
    在线联系 在线联系
  • 客户案例
  • 成都旅游学院成都乔雅服饰有限公司成都鑫虎物流有限公司成都乡村酒店成都旅游职业教育集团成都青年国际旅行社西南正版软件流通成都光大国际旅行社成都开顺酒店用品有限公司星娱网络成都太煜暖通有限公司鑫怡家酒店管理有限公司
  • 友情链接
  • 成都网站建设成都网站优化成都网站制作成都程序开发成都网站维护成都白领婚恋交友网站成都网络优化michael jordan shoes万三科技louis vuitton bagschi flat ironnfl football jerseysvibram five fingersed hardyghd hair straightnerp90x dvdsmbt shoeschi hair straightenerhttp://www.u99bootssale.com/discount ugg bootsnfl jerseysed hardy
  • 网站关键字:成都网站建设 | 成都网站建设公司 | 成都网页设计公司 | 成都网站制作 | 成都网站设计 | 成都网页制作 | 星娱网络|
  • 公司总机:028-65869182(8线) 公司传真:028-65869182-808  移动电话:13438319830 咨询信箱:market@netceo.net
  • 版权所有:成都星娱网络(http://netceo.net)?2004-2009 All  Rights  Reserved.