请求转发:浏览器将请求发送给servlet,servlet处理完成后,运行req.getRequestDispatcher(“/page/error.jsp”).forward(req, resp);会将request和response对象传递给jsp,这个过程被称为一次请求转发,这个过程只涉及一次请求和转发,只有一次请求和响应,返回给jsp的request和response与浏览器发送的request和response相同。转发只能在同一应用中使用。
重定向:浏览器将请求发送给servlet,servlet处理完成后,运行resp.sendRedirect(“page/success.jsp”); 重定向方法,要求浏览器重新发送一个请求去访问success.jsp页面。这样就产生一个新的请求和响应,重定向的特点,产生两次全新的请求和响应。
请求转发和重定向之间的不同
- 重定向的地址能够访问到其他应用。比如resp.sendRedirect(“http://www.baidu.com“); 是能够实现的
- 请求转发,共享同一个request和response对象。在java后台中req.getParameter(“password”),获取的属性同样也能在前台获得。