Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AJAX登录后重定向到JSP页面_Ajax_Jsp_Jquery - Fatal编程技术网

使用AJAX登录后重定向到JSP页面

使用AJAX登录后重定向到JSP页面,ajax,jsp,jquery,Ajax,Jsp,Jquery,我有一个login.jsp页面,用户在其中键入用户名和密码。用户名和密码使用ajax($.post)发送到服务器。身份验证完成后,我想将用户重定向到index.jsp页面 js: Servlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ....

我有一个login.jsp页面,用户在其中键入用户名和密码。用户名和密码使用ajax($.post)发送到服务器。身份验证完成后,我想将用户重定向到index.jsp页面

js:

Servlet

     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              ....
              login(request, response);
              ....
     }       
   private void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String name = request.getParameter(PARAMETER_NAME);
        String pass = request.getParameter(PARAMETER_PASS);
        traderBean.login(name, pass);

        response.sendRedirect("index.jsp");
    }
我尝试使用response.sendRedirect(),但它不起作用。我应该使用jQuery使用ajaxCallback重定向用户吗


谢谢。

一般来说,如果您只是想重定向,那么使用AJAX是没有意义的,因为您可以通过直接从表单获得servlet句柄来实现这一点

对于您的问题,首先检查servlet的url模式。确保它确实被调用。如果是,那么如果它有一个url模式

/TraderServlet

然后它希望
index.jsp
也位于
Web
下的根文件夹中。这可能是因为你根本没有重定向到你期望去的地方


检查的一种方法是(如果您使用的是Chrome)使用调试器工具(Windows/Nix上的F12,Mac上的Ctrl-Shift-I),查看它给出了什么错误

是的,我认为您应该尝试在ajax回调中使用客户端重定向。如果要使用ajax请求,请确保将响应内容更改为文本,并使用响应内容编写JSON字符串,以便在客户端处理结果。您可以有一个简单的结构,如
{“resultCode”:“0”、“errorMessage”:“}
或类似结构,但这取决于您的功能需求。
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              ....
              login(request, response);
              ....
     }       
   private void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String name = request.getParameter(PARAMETER_NAME);
        String pass = request.getParameter(PARAMETER_PASS);
        traderBean.login(name, pass);

        response.sendRedirect("index.jsp");
    }