Springmvc中转发和重定向

文章目录
1.通过ModuleAndView实现转发和重定向
2.通过ServletAPI实现转发和重定向
3.通过Springmvc实现转发和重定向
1.通过ModuleAndView实现转发和重定向
设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .
页面 : {视图解析器前缀} + viewName +{视图解析器后缀}

1.视图解析器:



    
    
    
    

2.对应的controller类

public class ControllerTest1 implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        //返回一个模型视图对象
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","ControllerTest1");
        mv.setViewName("test");
        return mv;
    }
}

2.通过ServletAPI实现转发和重定向
不需要视图解析器:
1.通过HttpServletResponse进行输出
2.通过HttpServletResponse实现重定向
3.通过HttpServletRequest实现转发

@Controller
public class ModelAndViewTest {
   @RequestMapping("/result/t1")
    public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException, IOException {
        rsp.getWriter().println("Hello,Spring BY servlet API");
    }

    @RequestMapping("/result/t2")
    public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
       rsp.sendRedirect("/index.jsp");
    }

    @RequestMapping("/result/t3")
    public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {
        req.setAttribute("msg","/result/t3");
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp);
    }
}

3.通过Springmvc实现转发和重定向

springmvc.xml文件:




    
    

    
    

    
    
@Controller
public class ModelTest1 {
    @RequestMapping("/m1/t1")
    public String test(Model model){
        model.addAttribute("msg","modelTest1");
        //转发
        return "forward:/WEB-INF/jsp/test.jsp";
        //重定向
        //return "redirect:/index.jsp";
    }
}

你可能感兴趣的:(servlet,java,spring)