Glassfish サーバーで Java EE を使用してエンタープライズ アプリケーションを実装しています。URL の特定のサブセットに対して適切な出力を表示するロジックをアプリケーションで実行する必要があります。
問題の説明:
私の Web ページ フォルダの構造は次のとおりです。
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 が入力されたら、いくつかのロジックを実行し、このロジックの結果に応じて、目に見える URL の変更 (リダイレクト) なしで A.xhtml または B.xhtml を表示したいと考えています。
これまでに試した解決策:
/Protected/*.xhtml にマップされたサーブレットを使用することを考えましたが、Faces サーブレットはアプリケーション内の他の 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ファイルを印刷する方法がわかりませんが、式言語の評価も含まれています。
結論
どんな助けでも大歓迎です。それが私が提案した構造の何かを変えることを意味するとしても。当然、サーブレットの作成が私の問題の正しい解決策でない場合は、そのトラックを残します。
ユーザーが経験する結果だけに興味があります。
前もって感謝します