liftweb作者David关于SiteMap,URL Rewriting, URL Dispatching的讲解
Folks,
lift services HTTP requests in a "render pipeline".
lift is implemented as a Filter (thanks to the excellent suggestion from
Viktor).
When a request comes in, any functions defined in LiftRules.early (see
LiftRules.appendEarly) as executed. This can be used to set Tomcat to UTF-8(jetty也可以)
for parameter parsing (although this is dangerous if lift is one of many
Filters and the other Filters expect different behavior).
When a request comes in, the request re-writing is repeatedly applied to the
request until there are no more matches in the request re-writer partial
function.
The re-written request is then used to create a RequestState instance.
Next, the filter tests the request against LiftRules.isLiftRequest_? to see
if there's a specific rule about the request being handled by lift.
If the request should be handled by lift, the request is passed to an
instance of LiftServlet.
The request is matched against LiftRules.statelessDispatchTable and serviced
if there's a match (this is useful for REST requests that are truly
stateless and there's no desire to create a new Servlet Session for each
request.)
All of the subsequent handlers are done inside the "S" context (thus, they
have access to session state):
If the request matches LiftRules.dispatchTable, then the request is handled
by dispatchTable.
If the request is a Comet request, it's handled by the Comet handler.
If the request is an Ajax request, it's handled by the Ajax handler.
Otherwise, the request is handed off the the LiftSession for further
processing.
In the LiftSession, the request is tested against session specific
dispatchers (see S.highlevelSessionDispatcher) and dispatched if there's a
match.
Next, the request is tested against SiteMap (if SiteMap is defined). If the
page is guarded by SiteMap and the guard fails, then the appropriate
response is sent to the browser.
Otherwise, the template for the incoming request is located.
First, the LiftRules.templateTable is consulted (this is a method which
combines session specific template lookup with LiftRules-based template
lookup.) If the template is located, it's returned.
Otherwise, the parts of the path that start with '.', '_' or contain
'-hidden' are removed and the resource is looked up in
LiftSession.findAnyTemplate.
findAnyTemplate looks for a given named resource (given suffixes and
locales). If the resource cannot be located, a class and method are
searched for in the "valid packages".view packages.
Once the template is located, it is processed by processSurroundAndInclude.
Questions?
Thanks,
David
分享到:
相关推荐
标题中的“Programmatically Setting Control Adapters for URL Rewriting and AJAX”指的是在编程环境中设置用于URL重写和AJAX的控件适配器的技术。URL重写是改变URL结构以优化SEO(搜索引擎优化)和提高用户体验的...
URL重写(URLRewriting)是一种在Web开发中常见的技术,主要用于优化网站的URL结构,使其更加用户友好和搜索引擎友好。这项技术的核心是通过修改HTTP请求的URL,使其看起来像是在访问静态页面,但实际上可能是在处理...
ASP.NET中的URL重写是一种强大的技术,用于改进网站的可访问性和SEO(搜索引擎优化)。它涉及到将不友好的、复杂的URL转换为更简洁、更具描述性的格式,从而提高用户体验和搜索引擎的理解。在ASP.NET框架中,有多种...
URLRewriting是一个强大的工具,主要用于优化网站的URL结构,使其更友好、更易于理解和记忆,同时也提升了搜索引擎优化(SEO)的效果。在这个主题中,我们将深入探讨URL重写的基本概念、工作原理以及如何在实际应用...
UrlRewriting组件是一种在Web应用程序中广泛使用的工具,主要用于优化和管理URL,使其更符合用户友好和搜索引擎优化的标准。这个组件通常与ASP.NET框架结合使用,可以极大地改善网站的架构和功能。 首先,我们来...
URL重写是ASP.NET开发中的一个重要技术,尤其在ASP.NET 1.1版本中,它为网站提供了优化和增强功能的机会。URL重写允许开发者隐藏实际的页面路径,创建更友好的、搜索引擎优化(SEO)的URL,以及实现更加灵活的路由...
URL重写(URLRewriting)是ASP.NET框架中一种重要的技术,它主要用于优化网站的URL结构,提升用户体验,以及在SEO(搜索引擎优化)方面发挥关键作用。URL重写技术允许我们将复杂的服务器端处理隐藏在简洁、友好的URL...
在ASP.NET中实现Url Rewriting是一项重要的技术,它允许开发者将复杂的、动态生成的URL转换为简洁、易于理解和搜索引擎友好的格式。这篇文章主要探讨了如何在ASP.NET环境中使用HttpModule和HttpHandler来实现这一...
在ASP.NET中实现Url Rewriting是一项重要的技术,它允许开发者将复杂的、动态生成的URL转换为简洁、易于理解和搜索引擎友好的格式。这篇文章主要探讨了如何在ASP.NET环境中使用HttpModule和HttpHandler来实现这一...
在ASP.NET中,URL重写是一项重要的技术,它允许开发者隐藏实际的服务器路径,提供更加用户友好和SEO优化的URL。这项技术的核心在于通过修改HTTP请求的URL,使其符合我们期望的格式,而不改变实际处理请求的逻辑。...
### 在ASP.NET中实现Url Rewriting(五) #### 概述 本文主要聚焦于ASP.NET框架内实现URL重写技术的细节与实践方法。URL重写是一种常见的网站优化技术,它能够帮助改善用户体验、增强网站的安全性以及提高搜索引擎...
尝试依葫芦画瓢写了自己的一个UrlRewriting。本人资源分比较低,就希望各位支持了。 一、参数 1、Enabled:bool值,设置是否应用Url重写功能; 2、IsUseCache:bool,设置是否启用Cache功能;(写该功能...
ASP.NET中的URL重写是一种强大的技术,用于优化和管理网站的动态URL,使其更符合用户的友好体验和搜索引擎优化(SEO)需求。在本篇中,我们将深入探讨如何使用ASP.NET来实现URL重写,以及这一过程涉及到的关键概念和...
ASP.NET中的URL重写是一种强大的技术,用于改变网站的URL结构,从而提高SEO(搜索引擎优化)、用户体验和可维护性。本文主要关注如何在ASP.NET环境中实现URL重写,特别是通过ISAPI过滤器和HttpModules。 首先,理解...
**URL重写技术详解** URL重写是一种网页优化技术,它允许我们更改实际请求的URL,而不会影响页面内容的显示。在ASP.NET环境中,URL重写是提升用户体验、优化SEO(搜索引擎优化)以及实现更加友好的URL结构的重要...
DotBBS 开源论坛 由ASP.NET+Access架构而成,当然也可以和MSSQL搭配,程序中使用有第三方的组件,像CuteEditor以及URL重写组件UrlRewriting.dll等。这个论坛界面挺清新,如上图示,功能可以满足中小型网站使用,Ajax...
***中URL Routing和IIS上URL Rewriting的区别主要体现在以下几个方面: 首先,URL Routing和URL Rewriting虽然都用于生成更加友好和搜索引擎优化的URL,但它们的实现原理和适用场景存在差异。URL Routing是*** MVC...
UrlRewriting Filter 是一个 servlet 过滤器,它自动将 request.encodeURL() 应用于 servlet 响应正文中的 url。 这允许用户不必担心手动将 request.encodeURL() 应用于这些 url 以进行会话传播。