1

我已经阅读了许多关于重写的文章和博客,并且我知道内部服务器重写和重定向之间存在差异。我有兴趣了解内部重写是如何工作的,以及这是如何在 Java 中完成的。我正在为我的 Java web 应用程序使用 PrettyFaces,如果知道(当然用非常简单的术语)您能够在请求被提供之前如何查看请求,那就太好了。它是一种首先被调用的过滤器吗?

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

谢谢你。

4

1 回答 1

2

我正在为我的 Java web 应用程序使用 PrettyFaces,如果知道(当然用非常简单的术语)您能够在请求被提供之前如何查看请求,那就太好了。它是一种首先被调用的过滤器吗?

是的,有一个 Servlet 过滤器注册为在任何 ServletRequest 中首先触发。此过滤器拦截请求并重定向、转发或链接(什么都不做。)

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

那要看。如果您使用重定向,那么用户会知道他们已被移动到不同的资源。但是,使用 PrettyFaces 的默认映射功能时,将使用 servlet Forward。这对外部用户完全隐藏。

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

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

于 2011-11-26T15:47:26.537 回答