私のWebアプリのディレクトリ構造は
myApp
-src
- filtersPackage(all my filters lie in this package)
- servletsPackage(all my controllers and models lie in this package)
- web-content
- web
- views(all my jsp files lie in this dir)
- js(all my javascript files lie in this dir)
login.jsp で、ユーザーが FB ログイン ボタンをクリックし、js/FBAUth.js 内でログインの詳細を収集し、jquery ajax POST メソッドを使用して auth.do サーブレットに送信します。
SessionFilter は、リクエストが AuthServlet の doPost メソッドに送られるようにします。AuthServlet で資格情報が正しい場合は、次の手順を実行します
url = "dashboard.jsp"
request.getSession().setAttribute("uid", id);
view = request.getRequestDispatcher(url);
view.forward(request, response);
return;
デバッグ モードでこれらの行が実行されることを確認しましたが、ブラウザはログイン ページで停止したままです。view.requestURI -> /myApp/web/views/dashboard.jsp および view.servletPath -> /web/views/dashboardTmp.jsp の値。response.sendRedirect(url) も試しましたが、それでもブラウザはログイン ページで動かなくなります。これらの行の後は何も実行されません。
web.xml では、私の認証サーブレットは次のようにマッピングされます
<servlet>
<servlet-name>Auth</servlet-name>
<servlet-class>servletsPackage.AuthServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Auth</servlet-name>
<url-pattern>/web/views/auth.do</url-pattern>
</servlet-mapping>
また、doPost 内で doGet を呼び出してみて、このコードを doGet で実行しましたが、すべて無駄でした。ここで何が欠けていますか?