首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用漂亮的脸庞重定向

用漂亮的脸庞重定向
EN

Stack Overflow用户
提问于 2012-10-29 14:57:10
回答 2查看 1.8K关注 0票数 1

我遇到了一个问题,在这个问题中,漂亮的面孔会导致无限循环,以我的浏览器结束:Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

问题的确切原因

文件结构

漂亮-config.xml片段

代码语言:javascript
复制
<url-mapping id="login">
    <pattern value="/login" />
    <view-id value="/login/login.xhtml" />
</url-mapping>

<url-mapping id="register">
    <pattern value="/register" />
    <view-id value="/login/register.xhtml" />
</url-mapping>

描述

导航到localhost:8080/register将导致我的网页。导航到localhost:8080/login将导致所描述的循环,注意导航将导致重定向到localhost:8080/login/ <-一个尾随斜杠。

我猜,localhost:8080/login是对文件夹login的请求。但是我不知道如何修复它,所以我对localhost:8080/login的请求将导致网页的出现。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-29 15:17:35

我唯一的猜测是,您的FacesServlet被映射到*.xhtml,所以在处理请求时,首先您的files过滤器将它转发给FacesServlet,但是,由于xhtml文件在路径中,所以files过滤器将再次无限地处理前向。

要解决这个问题,请将视图放在WEB文件夹中,并在pretty.config.xml中放置如下内容:

代码语言:javascript
复制
 <url-mapping id="login">
    <pattern value="/login/" />
    <view-id value="/WEB-INF/views/login.xhtml" />
 </url-mapping>

这样,过滤器截获的路径与servlet不同,因为客户端可以请求WEB-INF文件夹中的资源。

票数 3
EN

Stack Overflow用户

发布于 2012-10-29 15:54:20

我过去也有这个问题。问题在于您的Servlet容器。如果您请求像/login这样的URL,则容器检查,如果您的web应用程序中有一个名为login的目录。如果是这样的话,它将您重定向到/login/,因为容器认为您想要到达这个目录。如果也有删除尾随斜杠的重写规则,您将看到这样的行为。

我知道这很奇怪,但是tomcat用户列表上的一些人写到,这种行为是按照规范进行的。

因此,唯一的解决方案是要么在映射中将/login更改为/login/,要么将webapp中的登录文件夹重命名。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13124111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档