我已经阅读了很多关于重写的帖子和博客,我知道内部服务器重写和重定向之间存在差异。我有兴趣知道内部重写是如何工作的,以及如何在Java中完成。我正在使用PrettyFaces进行Java Web应用程序,知道如何(在非常简单的条件下)你能够在服务请求之前查看请求会很棒。它是一种首先被调用的过滤器吗?
最后,在服务器上重写url是“程序”,它将重写规则中的URL转换为服务器上的真实资源吗?这一切都在内部发生,因此用户认为该地址是用于“真实”资源的?
谢谢。
答案 0 :(得分:2)
我正在使用PrettyFaces进行Java Web应用程序,它会有 我很高兴你能够知道(以非常简单的方式) 在请求提供之前查看请求。它是一种过滤器吗? 首先被调用?
是的,已经注册了一个Servlet过滤器,可以在任何ServletRequest中首先触发。此过滤器拦截请求并重定向,转发或链(不执行任何操作。)
最后,服务器上的URL重写是转换URL的“程序” 重写规则到服务器上的真实资源吧?这一切 内部发生,因此用户认为该地址是“真实的” 资源?
这取决于。如果您使用重定向,则用户会知道他们已被移动到其他资源。但是,使用PrettyFaces的默认映射功能,将使用servlet Forward。这对外部用户完全隐藏。
PrettyFaces和OCPsoft Rewrite等工具的另一件事是出站URL重写,这只能通过“内部服务器”重写工具实现。这意味着他们也可以修改应用程序的HTML响应中的URL(这可以防止生成错误的链接并将其作为文本发送给用户。)
我希望这是一个有用的总结。