我正在 Glassfish 服务器上使用 Java EE 实现企业应用程序。我需要我的应用程序执行一些逻辑来显示特定 URL 子集的正确输出。
问题描述:
我的网页文件夹具有以下结构:
Web Pages
Protected
- CorrectPage.xhtml
- A.xhtml
- B.xhtml
- Index.xhtml
我希望用户访问 URL:
/Protected/CorrectPage.xhtml
但用户不得访问以下 URL:
/Protected/A.xhtml
/Protected/B.xhtml
当输入 URL /Protected/CorrectPage.xhtml 时,我想执行一些逻辑,根据这个逻辑的结果,我想显示 A.xhtml 或 B.xhtml,而不显示任何可见的 URL 更改(重定向)。
到目前为止尝试的解决方案:
我考虑过使用映射到 /Protected/*.xhtml 的 servlet,同时让 Faces Servlet 处理我的应用程序中的任何其他 URL。
并拥有:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if(*Requested URL is /Protected/CorrectPage.xhtml*) {
if(logic())
*Show A.xhtml*
else
*Show B.xhtml*
} else
*Show 404*
我的问题是我不知道如何实现Show A.xhtml。我基本上想向客户端打印我的 xhtml 页面。
我还考虑过使用响应 PrintWriter 来解决最后一个问题。
PrintWriter pw = response.getWriter();
但是,这并不能解决我的问题,因为我不知道如何打印 xhtml 文件,同时还要评估其中包含的表达式语言。
结论
非常感谢任何帮助。即使这意味着改变我提议的结构中的某些内容。自然,如果 servlet 的创建不是我的问题的正确解决方案,我将离开那个轨道。
我只对用户将体验到的结果感兴趣。
提前致谢