sha*_*unc 0 jsp servlets url-rewriting servlet-filters tuckey-urlrewrite-filter
我正在尝试驯服urlrewritefilter,看起来就像当一个带有重定向的规则与另一个带有forward的规则匹配时,我不会看到我在地址栏中重定向的URL,正如预期的那样.
这是一个配置片段:
<rule>
<from>/patha</from>
<to type="redirect">/pathb</to>
</rule>
<rule>
<from>/pathb</from>
<to type="forward">/pathc</to>
</rule>
Run Code Online (Sandbox Code Playgroud)
在我尝试访问时,我期望通过此规则完成的工作 patha
patha将浏览器重定向到的规则pathb,地址栏中的URL 正在更改.pathb也是一个很好的匹配,因此浏览器会转发到pathc,但是,因为这是转发,地址栏中的URL 仍然是pathb.但实际上发生的事情是我转发到pathc而没有任何地址栏的变化.
我的问题是:为什么会如此以及我如何才能真正实现我的目标?
UPD: 我已经通过jsp中的重定向测试了urlrewritefilter:
response.setStatus(302);
response.setHeader("Location", "pathb");
response.setHeader("Connection", "close");
Run Code Online (Sandbox Code Playgroud)
结果是相同的 - 不会重写URL.
你注意到的是预期的行为.随着forward你永远不会看到在浏览器的URL.请参阅下面的区别forward和redirect:
向前
重定向