①返回ModeAndView
※ModeAndView请求转发
说明:返回的modelAndView会返回到前端控制器进行处理,实际上进行了请求转发到返回的试图的面,ModeAndView里面的模型数据也被写进了request域中一同转发到了试图的这个页面,所以在试图的页面中可以request.getAttribute()或者el表达式,获取到被写进ModeAndView的模型数据。ModeAndView这个类有很多的构造方法用于初始化模型和试图。返回的试图是逻辑试图,要通过试图解析器加上前后缀形成真正的试图的url。
※ModeAndView重定向
说明:用ModeAndView进行重定向,需要指定的视图的url前面加上redirect:,如果需要传参的话,可以在url后面进行参数的拼接,通过request.getParameter()进行参数的获取。
②返回String
※请求转发
说明:加上forward的话,不会加上前后缀,所以必须把转发的url写全,加上forward可以重定向到其他方法中进行处理。不加forward,只需要写逻辑视图名,视图解析器会加上前后缀,一般重定向到前端jsp页面。如果需要传值的话,可以直接在方法里面进行参数绑定model对象,往model里面添加数据,实际上是写到了request域中,当然也可以绑定request对象,直接往request里面写数据。通过el表达式,或者request.getAttribute()获取。
※重定向
说明:给返回的url前面加上redirect进行重定向,可以通过url拼接传值。
③返回void
说明:返回值是void的时候,我们可以通过response输出流把数据写出去到请求页面,也可以用request和response进行请求转发和重定向。
总结: 客户端和服务器的交互,无非就是客户端发起请求,服务器接受请求,接下来三种情况:直接处理完后返回结果,在服务器内部进行请求转发然后返回处理结果,重定向返回。万变不离其宗,页面的跳转方式有很多种,无非就是对request,getRequestDispatcher("url").forward(requst.response)请求转发和response.sendRedirect("url");重定向的封装。
做为一个刚为行的菜鸟中的菜鸟,不会的太多太多,哈哈,但是千里之行始于足下,平生第一次写博客,希望可以坚持,加油加油加油!!!