Java Web jsp中有关页面跳转和转发与重定向的区别

响应头

通过设置响应头实现页面跳转,并且在面试中也会问及是否是重定向还是转发

最后给大家简单介绍转发和重定向的区别

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>");

转发和重定向

  • 相同:转达和重定向都可以进行页面跳转
  • 区别:以转发说明
  1. 地址栏:显示上一个地址
  2. 请求次数:一次
  3. 请求域中的数据:数据保留,因为是同一次(如果在记录第几次登陆,一直刷新那么数据也就跟着变化,因为登陆账号数据还存在)
  4. 转发的根目录:http://localhost:8080/项目地址/   (重定向:http://localhost:8080/)

猜你喜欢

转载自blog.csdn.net/JzCm__/article/details/82954355