转发和重定向是Web开发中常用的两种跳转方式。

区别:

  1. 转发是服务器内部的跳转,重定向是客户端的跳转。

  2. 转发只发生在服务器端,客户端浏览器不知道服务器发生了转发;重定向是客户端浏览器发生跳转,服务器端并不知道客户端发生了跳转。

  3. 转发传递的是请求和响应,重定向传递的是新的请求和响应。

联系:

  1. 二者都可以实现页面跳转的功能。

  2. 在某些情况下,两者都可以使用,但使用的效果不同。

下面是一个实例,分别使用转发和重定向实现页面跳转:

转发实例:

@RequestMapping("/login")
public String login(String username, String password, Model model) {
    if (username.equals("admin") && password.equals("123456")) {
        model.addAttribute("username", username);
        return "success";
    } else {
        model.addAttribute("msg", "用户名或密码错误");
        return "login";
    }
}

重定向实例:

@RequestMapping("/login")
public String login(String username, String password, Model model) {
    if (username.equals("admin") && password.equals("123456")) {
        model.addAttribute("username", username);
        return "redirect:/success";
    } else {
        model.addAttribute("msg", "用户名或密码错误");
        return "login";
    }
}

@RequestMapping("/success")
public String success() {
    return "success";
}

以上代码中,login方法会根据用户名和密码进行判断,如果正确则使用转发跳转到success页面,否则回到login页面并提示错误信息。使用重定向时,如果用户名和密码正确,则直接跳转到success页面,否则重定向到login页面并提示错误信息

转发和重定向有什么区别和联系?并举实例含代码

原文地址: https://www.cveoy.top/t/topic/g1bM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录