out.print("<script language='javascript'>alert('用户名或者密码有误!');</script>");
response.sendRedirect("admin.jsp");out.print("<script language='javascript'>alert('用户名或者密码有误!');location='index.jsp'</script>");以上两句代码都是用来做页面跳转,我一直在用,但不知道他们的区别,用哪个更有逻辑,不太清楚,求助

解决方案 »

  1.   

    重定向和转发楼主应该知道吧
    上面是重定向下面是普通的跳转
     第一个不能共享request里面的数据
     第二个可以
      

  2.   


    response.sendRedirect()是重新定向,前后页面不是一个request。
    request.getRequestDispather();返回的是一个RequestDispatcher对象。response.sendRedirect(url)跳转到指定的URL地址,产生一个新的request,所以要传递参数只有在url后加参数,如: url?id=1. 
    request.getRequestDispatcher(url).forward(request,response)是直接将请求转发到指定URL,所以该请求能够直接获得上一个请求的数据,也就是说采用请求转发,request对象始终存在,不会重新创建。而
    sendRedirect()会新建request对象,所以上一个request中的数据会丢失。 总体来说,你要是没有数据提交,也没有参数的传递,前后页面各成独立的逻辑,你用怎样的跳转方式都是没有影响的。