SpringMVC实现页面的转发与重定向

1、Servlet实现页面跳转

Servlet实现页面的跳转有2种方式:转发与重定向。

1.1 转发

转发是在服务器端起作用的,当使用 forward() 方法时,Servlet 容器传递HTTP请求,从当前的 Servlet 或 JSP,此过程仍然在 request 的作用范围内。转发后,浏览器的地址栏内容不变。

转发使用 HttpServletRequest 对象的 forward() 方法实现,对应的 Servlet 语法格式如下:

request.getRequestDispatcher(String path).forward(ServletRequest request, ServletResponse response)

1.2 重定向

重定向是在用户的浏览器端工作的,是 Servlet 对浏览器做出响应后,浏览器再次发送一个新的请求。重定向后,浏览器的地址栏内容发生变化。

重定向使用 HttpServletResponse 对象的 sendRedirect() 方法实现,对应的 Servlet 和 JSP 语法格式如下:

response.sendRedirect(String location)

2、SpringMVC实现页面的跳转

转发:在返回的字符串前面加上 “forward:/路径地址”。

重定向:在返回字符串的前面加上 “redirect:/路径地址”。

2.1 转发

【示例】在Controller控制器方法中,使用转发方式实现跳转至成功页面。

转发方式一:

/**
 * 跳转至成功页面(转发)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public String toSuccessView()
{
    return "/success.jsp";
}

转发方式二:

/**
 * 跳转至成功页面(转发)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public ModelAndView toSuccessView()
{
    //创建返回结果ModelAndView对象
    ModelAndView modelAndView = new ModelAndView();
    //指定视图
    modelAndView.setViewName("/success.jsp");
    //返回结果
    return modelAndView;
}

转发方式三:

/**
 * 跳转至成功页面(转发)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public void toSuccessView(HttpServletRequest request, HttpServletResponse response) throws Exception
{
    //使用request对象实现页面转发
    request.getRequestDispatcher("/success.jsp").forward(request, response);
}

2.2 重定向

【示例】在Controller控制器方法中,使用重定向方式实现跳转至成功页面。

重定向方式一:

/**
 * 跳转至成功页面(重定向)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public String toSuccessView()
{
    return "redirect:/success.jsp";
}

重定向​​​​​​​方式二:

/**
 * 跳转至成功页面(重定向)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public ModelAndView toSuccessView()
{
    //创建返回结果ModelAndView对象
    ModelAndView modelAndView = new ModelAndView();
    //指定视图
    modelAndView.setViewName("redirect:/success.jsp");
    //返回结果
    return modelAndView;
}

重定向​​​​​​​方式三:

/**
 * 跳转至成功页面(重定向)
 */
@RequestMapping(value = "/toSuccessView", method = RequestMethod.GET)
public void toSuccessView(HttpServletRequest request, HttpServletResponse response) throws Exception
{
    //使用response对象实现页面重定向
    response.sendRedirect(request.getContextPath() + "/success.jsp");
}
发布了354 篇原创文章 · 获赞 208 · 访问量 165万+

猜你喜欢

转载自blog.csdn.net/pan_junbiao/article/details/104185446