Tapestry(转载)

本文探讨了Tapestry的面向组件开发方式及其相对于传统面向元素开发方式的优势。介绍了Servlet容器的工作原理及如何处理复杂的URL映射问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 什么是面向组件开发方式

Tapestry最大的特点是其颠覆性的开发方式。所谓颠覆,是指Tapestry的开发方式不光与传统的开发方式截然不同,而且还是在逐渐取代传统的开发方式。在web表现层框架中有两大开发方式,一种是传统的面向元素开发方式,这种开发方式也是最早出现的开发方式。绝大多数框架都是使用面向元素开发方式,比如 Structs,WebWork,SpringMVC等。在面向组件开发方式出现的原因正是为了弥补面向元素开发方式中种种不足之处。因此,我们可以认为面向组件的开发方式比面向元素的开发方式更加先进。目前,面向组件的Web表现层框架有三种:Tapestry,JSF,Wicket。

2.传统的面向元素开发方式

在Java语言中,我们都是使用Java Servlet API来创建Web应用程序。Java Servlet API是SUN公司制定的标准。Servlet是一个Java类,它的作用是接收客户端发送过来的请求,然后返回一个响应,最后通过客户端浏览器显示出一个HTML页面。Java Servlet API为Servlet定义了一些基础类,例如 HttpServletRequest,该对象装载了客户端发送过来的请求,并允许Servlet获取URL中携带的质询参数。

Servlet在Servlet容器中运行,Servlet容器是HTTP协议与Java Servlet API 之间的桥梁。Servlet容器负责创建Servlet实例并对其进行初始化。很多软件都提供了Servlet容器,其中有些软件的全部功能只是为了提供Servlet容器,例如,Apache Tomcat,Resin,Jetty等,而在有些软件中,Servlet容器可能只是一个庞大应用程序服务器中的一部分,例如,BEA WebLogic,IBM WebSphere 或开源的JBoss应用程序服务器。

Servlet容器根据URL来选择合适的Servlet响应请求,一个简单的Web应用程序可能包含许多Servlet。那么在Web应用程序的部署描述文件(应用程序中的一个XML文件通常命名为web.xml,放置在应用程序中的WEB/WEB-INF/目录下)中,我们就必须对每一个Servlet的名称和Java类全路经进行配置,并且配置URL和Servlet的映射关系。例如:

<servlet>

<description>This is the description of my J2EE component</description>

<display-name>This is the display name of my J2EE component</display-name>

<servlet-name>MyServlet</servlet-name>

<servlet-class>com.wanjin.MyServlet</servlet-class>

</servlet>


<servlet-mapping>

<servlet-name>MyServlet</servlet-name>

<url-pattern>/servlet/MyServlet</url-pattern>

</servlet-mapping>

那么当客户端请求URL中包含“/servlet/MyServlet”字符串的时候,Servlet容器将会查找名称为“myServlet”的Servlet,然后根据名称为“myServlet”的Servlet的Java类群路径“com.wanjin.MyServlet”创建Servlet实例,并对其进行初始化。MyServlet类在接受到客户端返回相应。相应的结果以一个HTML,页面的形式在客户端浏览器出现,该叶面向是勒我们希望客户端得到的应用程序业务信息。

整个过程是很简单的。但是当我们面对一个庞大Web应用程序的时候,该用程序就可能包含大量的Servlet。这就意味着我们必须定义大量的URL与Servlet映射关系。那么,应用程序的URL结构将变得越来越复杂,也越来越容易发生混淆。于是,在应用程序开发阶段,我们不得不将绝大部分精力用于处理数量众多且易于混淆的URL。

在传统的开放方式中,例如,JavaServer Page (JSP),SpringMVC,Struts,WebWork中,我们必须关注叶面中每一个元素的href属性,以及form元素的action属性,因为这些属性装载了向服务器发送请求的URL.大多数情况下,我们对这些HTML元素属性的关注甚至超过了我们对应用程序业务逻辑的关注。我们将这种开发方式称为面向元素(标签)开发方式。
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值