2011-11-26 168 views
1

我已阅读了许多关于重写的帖子和博客,我知道内部服务器重写和重定向之间存在差异。我有兴趣了解内部重写如何工作,以及如何在Java中完成这些工作。我为我的Java web应用程序使用PrettyFaces,并且知道如何(在非常简单的课程中)能够在请求服务之前查看请求,这将非常棒。它是一种首先被调用的过滤器吗?URL重写如何工作?

最后,服务器上的URL重写是“程序”,它将重写规则中的URL转换为服务器上的实际资源?这一切都发生在内部,所以用户认为地址是“真实”的资源?

谢谢。

回答

2

我使用PrettyFaces为我的Java web应用,它将有 是伟大知道如何(在ofcourse简单来说)你能 看看它送达前的请求。首先调用 是否是一种过滤器?

是的,有一个Servlet Filter被注册为在任何ServletRequest中首先触发。该过滤器截获请求,要么重定向,转发,或链(什么都不做)。

而在去年,URL重写的服务器是“节目”,一个URL在 重写规则上转换为真正的资源服务器对不对?这所有 内部发生,所以用户认为该地址是“真实” 资源?

这取决于。如果您使用重定向,那么用户会知道他们已被移至其他资源。但是,使用PrettyFaces的默认映射功能,可以使用servlet Forward。这对外部用户是完全隐藏的。

PrettyFaces和OCPsoft Rewrite这样的工具还有一件事是外向URL重写,它只能通过“内部服务器”重写工具才能实现。这意味着他们也可以修改应用程序的HTML响应中的URL(这可以防止生成错误的链接并将其作为文本发送给用户)。

我希望这是一个有用的总结。

+0

嗨,林肯,你能否澄清一下在Prettyfaces或Rewrite中今天必须使用哪一个?我知道美貌不再处于积极的发展阶段,你写了重写库。 “使用入门”部分中的大部分内容仅使用重写库中的包..!? –

+1

PrettyFaces和Rewrite都在积极开发之中,可以根据您的需求使用。最新版本的PrettyFaces实际上是基于Rewrite的。 – Lincoln

+0

非常感谢您的澄清! –