`

tapestry url 解析

阅读更多
Engine service是实现了IEngineService接口的对象,他包含很多创建和服务应用URL的方法;其主要方法public void service(WebRequest request, WebResponse response)
    cycle = _infrastructure.getRequestCycleFactory().newRequestCycle(this); 获得RequestCycle
     service = cycle.getService();
                // Let the service handle the rest of the request.
      service.service(cycle);


其中newRequestCycle(this) 就是对url 路径的解析处理

public IRequestCycle newRequestCycle(IEngine engine)
    {
        WebRequest request = _infrastructure.getRequest();

        QueryParameterMap parameters = extractParameters(request);//常规处理request参数

        decodeParameters(request.getActivationPath(), request.getPathInfo(), parameters);//调用encoders 来解析路径,例如DirectServiceEncoder,就解析出PAGE,extension,COMPONENT等信息
        //对于DirectServiceEncoder    encoding.setParameterValue(ServiceConstants.SERVICE,
                Tapestry.DIRECT_SERVICE); DIRECT_SERVICE名称在此类是固定值
        String serviceName = findService(parameters);

        IRequestCycle cycle = new RequestCycle(engine, parameters, serviceName, _environment);

        _requestGlobals.store(cycle);

        try {

            _requestGlobals.store(_responseDelegateFactory.getResponseBuilder(cycle));

            cycle.setResponseBuilder(_requestGlobals.getResponseBuilder());

        } catch (IOException e) {
            throw new ApplicationRuntimeException("Error creating response builder.", e);
        }

        return cycle;
    }


从而得出Direct路径格式  /PageName,componetIdPath.ext?otherParam
PageServiceEncoder: /PageName.ext
AssetEncoder: String fullPath = _path + ((digest != null) ? "/" + digest : "/" + DIGEST_STATIC) + path;  即  /static/path

ServiceExtensionEncoder: encoding.setServletPath("/" + service + "." + _extension);

分享到:
评论

相关推荐

    tapestry3开发指南,带tapestry3所有jar包

    3. **请求处理**:当用户发送HTTP请求时,Tapestry会解析URL,确定要调用的页面和方法,然后执行相应的业务逻辑并生成响应。 **三、Tapestry 3 的关键特性** 1. **状态管理**:Tapestry 3自动管理组件的状态,支持...

    tapestry 实例

    1. **请求处理**:当用户发起HTTP请求时,Tapestry会解析请求参数,确定目标页面和组件。 2. **组件实例化**:根据页面和组件定义,Tapestry 创建必要的组件实例。 3. **状态管理**:Tapestry 自动处理组件状态的...

    Tapestry API

    **Tapestry API 深度解析** Tapestry,作为一个强大的MVC(Model-View-Controller)结合模板技术的Web开发框架,为Java开发者提供了一种高效且灵活的构建Web应用程序的方式。它通过组件化的设计,使得代码更加模块...

    Tapestry4开发指南

    框架自动处理URL到页面组件的映射,使得开发者可以轻松地创建链接和表单提交,而无需编写复杂的URL解析代码。同时,Tapestry4支持页面级和应用程序级的事件处理,允许组件之间进行通信和协作。 此外,Tapestry4具有...

    tapestry开发技术文档

    1. **简单性**:Tapestry通过对象、方法和属性来替代URL和查询参数,减少了开发过程中常见的繁琐任务,如解析参数、处理HttpSession。这使得开发者可以专注于核心业务逻辑,而不是底层的连接代码。 2. **一致性**:...

    apache-tapestry-5.3.8-bin.zip

    它提供了页面、组件、事件处理、URL映射等功能,是构建Tapestry应用的基础。 3. **Plastic**:`plastic-5.3.8.jar`是Tapestry的一个子项目,负责在运行时动态地创建和修改类。它使得Tapestry能够实现一些高级特性,...

    tapestry3文档

    每个用户请求都会经过一系列的服务,包括URL解析、页面加载、事件处理和响应生成。 ### 七、Designing Tapestry Applications 设计Tapestry应用涉及多个步骤,包括确定存储策略、页面流、共享逻辑、引擎服务和常用...

    Tapestry开发

    - **URL映射:**Tapestry通过URL映射将请求路由到正确的组件。 - **参数解析:**从请求URL中提取参数并传递给组件。 **2. 组件处理:** - **组件实例化:**根据请求创建组件实例。 - **组件状态管理:**维护组件的...

    tapestry quick start

    - **参数解析**: Tapestry 能够自动解析 URL 中的参数,并映射到相应的组件或页面。 **3.5 增加更多的连接** - **多个 DirectLink**: 在一个页面中可以放置多个 DirectLink,以提供更多的导航选项。 **3.6 连接里...

    Tapestry5 使用教程

    Tapestry 采用了 RESTful 的设计原则,允许开发人员定义清晰、简洁的 URL 结构。此外,框架还提供了自动的参数映射功能,使得处理 URL 参数变得非常简单。 #### 三、Apache Tapestry5 应用开发流程 ##### 3.1 准备...

    Tapestry开发指南9.0

    《Tapestry开发指南9.0》是一本深入解析Tapestry框架的权威教程,针对的是版本9.0。Tapestry是Apache软件基金会开发的一个Java Web应用框架,旨在提高开发效率,提供高度模块化和可维护性的Web应用。本指南详细介绍...

    Tapestry5开发文档.doc

    【Tapestry5开发文档】深入解析 Apache Tapestry 是一个强大的Java Web应用程序框架,它以组件为中心,为开发者提供了一种高效、易用且高度模块化的开发方式。Tapestry5版本带来了许多改进和增强,包括更好的性能、...

    Tapestry开发指南

    ### Tapestry开发指南知识点解析 #### 一、Tapestry框架概述 Tapestry是一种用于构建高度可扩展、模块化且易于维护的Web应用程序的Java框架。它采用组件导向编程模型,将页面分解为可复用的组件,使得开发者可以...

    Tapestry入门

    它消除了许多与查询参数解析、HTTPSession 处理、URL 构建等相关的重复任务。 2. **一致性**:Tapestry 提供了一致的方式来开发 Web 应用程序的页面。所有的页面都由相同的可重用组件构成,这有助于降低学习成本和...

    Tapestry用户手册

    《Tapestry用户手册》深度解析 一、Tapestry概览与核心概念 Tapestry是一款基于Java的Web框架,旨在简化复杂Web应用的开发流程。它通过将UI组件和业务逻辑分离,实现了高度模块化的开发模式。在Tapestry的世界里,...

    Tapestry开源框架的详细讲解doc文档(经典)

    通过消除繁琐的“衔接”代码,如解析查询参数、管理HttpSession等,Tapestry帮助开发者专注于业务逻辑,从而降低了代码量,提升了开发效率。 3. **一致性与可复用性**: Tapestry提供了统一的方式来构建Web应用...

    Enjoying Web Development with Tapestry下载

    描述中的“博文链接:https://yongganzhe.iteye.com/blog/41176”虽然没有提供具体的信息,但通常博客文章会包含作者的经验分享、技术解析或者教程,可能是对Tapestry框架的深入探讨或实际应用案例。在阅读这篇博客...

Global site tag (gtag.js) - Google Analytics