gpt4 book ai didi

java - 处理 JSF 中的部分 URL

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:27 24 4
gpt4 key购买 nike

我正在使用 JSF 2.0.5、Tomcat 7.0.12 和 beautifulfaces。

我的 web.xml 文件是:

<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>

我漂亮的文件配置:

<url-mapping>
<pattern>/</pattern>
<view-id>/jsp/index.jsf</view-id>
</url-mapping>

我的index.jsp 文件是空的。

我的问题是,当我在 url 'foo.com' 中写入时,他最终会重定向 (301) 到 http://www.foo.com/jsp/index.jsf .

意味着在我的 Phase 监听器中:

HttpServletRequest req = (HttpServletRequest)context.getExternalContext().getRequest(); 
StringBuffer requestUrl = req.getRequestURL(); // i get http://www.foo.com/jsp/index.jsf

有人可以解释一下为什么他要点击 jsp/index.jsf 吗?

因为我想识别何时有人点击 foo.comwww.foo.com

最佳答案

如果有人使用您的配置访问 http://foo.com/http://www.foo.com/,PrettyFaces 会拦截该请求并在内部将其转发到 /jsp/index.jsf。您的 PhaseListener 将只能看到此转发的请求,因此只能看到 /jsp/index.jsf

如果你想获取原始URL,可以使用PrettyContext.getCurrentInstance().getRequestURL().toURL()

但是,在您的情况下有点奇怪的一件事是您写道,当用户访问根路径时,用户会被重定向(301)。这可能会导致我上面的建议不起作用,因为重定向后您会丢失原始请求中的所有信息。

也许您可以尝试从 web.xml 中删除 welcome-file 条目,并确保 pretty-config.xml 中没有任何其他可能导致此重定向的重写规则。

关于java - 处理 JSF 中的部分 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10516816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com