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