我的网络应用程序目录结构是
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 servlet。
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 中,我的 auth servlet 映射如下
<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中执行了这段代码,但都是徒劳的。我在这里想念什么?