私はこれに固執し混乱しています。 WEB-INF/pages /の中に私のすべての.JSPファイルがあり、それらにアクセスしたい。WEB-INF内のJSPに正しくリダイレクトされます
私はこれは素晴らしい作品と私は私が読んだもの、しかし、/forward/pages/index.jspを使用して、私のJSPファイルにアクセスすることができ、この
@WebServlet("/forward/*")
public class ForwardController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF" + req.getPathInfo()).forward(req, resp);
}
}
のように*//前方でのrequestDispatcherを行っていますこれはユーザーにとってアクセス可能ではないはずですが、今は明らかにそうです。これは正しい方法で行われていますか?また
、今私たちは、そのリンクにリダイレクトhttp://localhost/forward/pages/index.jsp とログアウトしたいたので、私は/ログアウトのボタンを使用していますが、今の前のリンクは次のように沿って、次の、http://localhost/forward/pages/logout
私はどのように克服することができますこれらの2つのこと?
敬具
WEB-INF内のファイルは一般にアクセスできませんが、内部でアクセスできます。これは 'req.getRequestDispatcher("/WEB-INF "+ req.getPathInfo()).forward(req、resp); 'そうです。つまり、 '/ WEB-INF/... 'の下の新しいリソースへのアクセス要求をユーザーに送信するのではなく、* current *要求の応答を内部(非公開でアクセス可能な)JSPスクリプトで処理することを内部的に決定します。私が覚えていることは、ビュー層を表すJSPファイルをWEB-INFに配置して、コントローラ経由でしかアクセスできないようにすることをお勧めします。 – Pshemo
はい、あなたは正しいですが、これが適用されているので、たとえばフォームを使用すると、forward/pages/index.jspのようにforwardの前に自動的にリンクを使用し、