响应头
通过设置响应头实现页面跳转,并且在面试中也会问及是否是重定向还是转发
最后给大家简单介绍转发和重定向的区别
Location
- Location需要与状态码302配合使用,完成页面重定向
- Location: http://www.banma.com
- 指定页面要跳转到的下一个页面
//设置一个响应头
response.setHeader("location", "01-form.html");
// 设置它的状态码为302
response.setStatus(302);
System.out.println("使用重定向");
Refresh
- 设置响应状态码200(不是必须的)
- Refresh: 1;url=/day35/hello.html
- 过多少秒以后访问指定的URL地址
//设置响应头
response.setHeader("refresh", "3;url=http://www.banma.com");
response.setHeader("refresh", "3;url=01-form.html");
//设置响应码
response.setStatus(200);
Response对象方法
response.sendRedirect("url")
Request对象方法
- 转发:实现页面跳转
request.getRequestDispatcher("/url").forward(request, response)
JS
location对象
out.print("<script>");
out.print("alert('用户名或密码不正确');");
out.print("location.href='login.html';");
out.print("</script>");
转发和重定向
- 相同:转达和重定向都可以进行页面跳转
- 区别:以转发说明
- 地址栏:显示上一个地址
- 请求次数:一次
- 请求域中的数据:数据保留,因为是同一次(如果在记录第几次登陆,一直刷新那么数据也就跟着变化,因为登陆账号数据还存在)
- 转发的根目录:http://localhost:8080/项目地址/ (重定向:http://localhost:8080/)