页面跳转方式
1 - 转发
用户需要显示一个页面,用户输入了一个url,然后这个url又内部调用了另一个url的到了这个页面,但url地址栏并不会发生改变,即用户不会发现内部得到变化,用户就认为就是这个url返回的这个页面,用户不会知道内部得到变化
用户只发起了一次请求,地址不变,不能跨域(只能在本网站内部跳转)
request.getRequestDispatcher("跳转地址").forward(request,response);
因只发送一次请求,故后续的跳转不会在重新请求,也就不会在获取新的request、response,故必须要继承第一次请求的request,response,即必须要有forward(request,response)
request.getRequestDispatcher("/abc.jsp").forward(request,response);
//只能在本网站内部跳转,无法跳转到百度
//request.getRequestDispatcher(https://www.baidu.com).forward(request,response);
2 - 重定向
用户需要显示一个页面,用户输入了一个url,然后这个url又调用了另一个url得到了用户想要的页面,同时将调用的url在地址栏显示出来,用户能够知道整个页面得到变化情况
用户发起了两次请求,地址改变,可以跨域
response.sendRedirect("重定向地址");
因请求会获得新的request、response,故不需要使用原来的request、response,同时也可以对非本网站的页面进行跳转
response.sendRedirect("/abc.jsp");
// response.sendRedirect("https://www.baidu.com"); // 可以实现跳转