SpringMVC---请求与响应的处理(实战二)

本篇文章讲述响应的处理,关于请求的处理可以看我第一篇文章
链接地址:https://segmentfault.com/a/11...

前期准备

使用环境

  • JDK:1.8
  • Tomcat:9.0.3
  • Spring:5.2.8
  • Maven:3.6.3
  • 编译器:IntelliJ IDEA 2019

web.xml配置



     
      
        mvc
        org.springframework.web.servlet.DispatcherServlet
         
            contextConfigLocation
        classpath:ApplicationContext.xml
         
    
     
        mvc
        *.do
     

ApplicationContext.xml配置(Spring核心配置文件)




    
     
    
     

响应处理

原生的Servlet处理有直接采用response获取输出流直接响应会给浏览器,通过request转发或者重定向三种方式,现在使用spring-mvc进行响应的处理

返回String

  • "forward:资源路径名":转发到冒号后面的资源路径
  • "redirect:资源路径名":重定向到冒号后面的资源路径名
  • "":如果返回的是空串,则会找index.jsp资源
  • 示例代码如下:
@Controller
public class UserController {
    
    //方法中传入实体对象:对象里面有list集合
    @RequestMapping("test.do")
    public String testFive(User user){
        System.out.println(user);
        return "redirect:welcome.jsp";
    }
}

ModelAndView

  • Model、ModelMap和ModelAndView的区别

    • Model和ModelMap只能存储返回的参数(key-value)
    • ModelAndView既能存储返回的参数,也能存储资源路径
  • ModelAndView中有两个重要的属性:

    • Object view:存储资源路径
    • ModelMap model:存储返回的参数,mvc框架会将存储的Key-value数据存入request作用域
  • 代码如下:

    • index.jsp:
    <%@ page contentType="text/html; charset=UTF-8" language="java" %>
    
    
     
     
     cai jin hong
    
    
     
    account:
    password:
    balance:
    address1:
    address2:
    • welcome.jsp:(这时候,Jsp就能从requestScope作用域里面提取到我们存进去的account)
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
     Title
    
    
     param:welcome,${param.account}
    requestScope:welcome,${requestScope.account}
    • Java:
    @Controller
    public class UserController {
         //方法中传入实体对象:对象里面有list集合
         @RequestMapping("test.do")
         public ModelAndView testFive(User user){
             //创建ModelAndView对象
             ModelAndView mv = new ModelAndView();
             //设置返回的参数
             mv.addObject("account", user.getAccount());
             mv.addObject("password", user.getBalance());
             //设置返回路径
             mv.setViewName("welcome.jsp");
             return mv;
         }
    }

存入Session作用域

  • 首先,需要将参数(Key-value)存入request作用域
  • 然后通过@SessionAttributes({"key",""})注解存入Session作用域
  • 代码如下:(此时,welcome.jsp就能从SessionScope作用域里获取到account的值)
@Controller
@SessionAttributes("account")
public class UserController {
    //方法中传入实体对象:对象里面有list集合
     @RequestMapping("test.do")
     public ModelAndView testFive(User user){
         //创建ModelAndView对象
         ModelAndView mv = new ModelAndView();
         //设置返回的参数
         mv.addObject("account", user.getAccount());
         mv.addObject("password", user.getBalance());
         //设置返回路径
         mv.setViewName("welcome.jsp");
         return mv;
     }
}

你可能感兴趣的:(spring,spring-mvc)