SpringMvc-向域中共享数据的方法-以及向session和apilication共享数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、什么是向域中共享数据

向域对象共享数据;
解释一下什么是在域对象中共享数据(主要是我有点忘记了有点忘了);
在SpringMVC中常用的域有以下三个:
request:数据在当前请求有效,请求转发后有效,重定向无效
session:数据在关闭浏览器前有效,中途关闭服务器,数据钝化(还在),重启浏览器数据又会活化(还能用)----这里如果想关闭服务器数据还在的话需要在idea中自行设置
application:数据在关闭服务器前有效(关闭浏览器数据还在)
所以,往域对象中共享数据也就是在上面的三个范围内共享数据

二、通过ModelAndView向请求域共享数据

index页面传入参数的代码

<a th:href="@{/test/mav}">测试ModelAndView</a><br>

控制层代码

 @RequestMapping("/test/mav")
    public ModelAndView testMAV(){
        /*
        ModelAndVies包含Model和view功能
        Model;向请求域中共享数据
        View;设置逻辑视图实现页面跳转
        * */
        ModelAndView modelAndView = new ModelAndView();
        /*
        * 向请求域共享数据
        * modelAndView.addObject("testRquestScope","hello,ModelAndView");
        * 中testRquestScope是键,hello,ModelAndView是值
        * 也就是说,我们在页面上需要获取hello,ModelAndView时需要得到testRquestScope(详细键success.html中的设置方式)
        * */
        modelAndView.addObject("testRquestScope","hello,ModelAndView");
        //设置逻辑视图
        modelAndView.setViewName("success");
        return modelAndView;
    }

success页面获取参数代码

<p th:text="${testRquestScope}"></p>

三、使用Model向请求域共享数据

index页面传入参数的代码

<a th:href="@{/test/Model}">测试Model</a><br>

控制层代码

//注意这里Model是一个接口,直接使用也是因为DispatcherServlet
    @RequestMapping("/test/Model")
    public String TestMAVbyModel(Model model){
        System.out.println(model.getClass().getName());
        //输出org.springframework.validation.support.BindingAwareModelMap
        model.addAttribute("testModel","hello,Model");
        return "success";
    }

success页面获取参数代码

<p th:text="${testModel}"></p>

四、使用ModelMap向请求域共享数据

index页面传入参数的代码

<a th:href="@{/test/ModelMap}">测试ModelMap</a><br>

控制层代码

 @RequestMapping("/test/ModelMap")
    public String TestMAVbyModelMap(ModelMap modelMap){
        System.out.println(modelMap.getClass().getName());
        //输出org.springframework.validation.support.BindingAwareModelMap
        modelMap.addAttribute("testModelMap","hello,ModelMap");
        return "success";
    }

success页面获取参数代码

<p th:text="${testModelMap}"></p>

五、使用map向请求域共享数据

index页面传入参数的代码

<a th:href="@{/test/Map}">测试Map</a><br>

控制层代码

 //注意这里map是一个接口,直接使用也是因为DispatcherServlet
    @RequestMapping("/test/Map")
    public String TestMAVbyMap(Map map){
        System.out.println(map.getClass().getName());
        //输出org.springframework.validation.support.BindingAwareModelMap
        map.put("testmap","hello,map");
        return "success";
    }

success页面获取参数代码

<p th:text="${testmap}"></p>

六、向session域中共享数据

index页面传入参数的代码

<a th:href="@{/test/session}">测试session</a><br>

控制层代码

@RequestMapping("/test/session")
    public String TestSessionScope(HttpSession session){
        session.setAttribute("TestSession","heloo,Session");
        //session网页关闭会话消失
        //注意在success中得到数据的方式和request、不一样(见success.html)
        //获取方式;session.TestSession
        return "success";
    }

success页面获取参数代码

<p th:text="${session.TestSession}"></p>

七、向application域中共享数据

index页面传入参数的代码

<a th:href="@{/test/application}">测试application</a><br>

控制层代码

@RequestMapping("/test/application")
    public String TestAplicationScope(HttpSession session){
        //注意apilication可以使用session对象或者request对象调用返回得到
        ServletContext application = session.getServletContext();
        application.setAttribute("Testapplication","hello,application");
        //application;服务器关闭数据消失
        //注意在success中得到数据的方式和request、不一样(见success.html)
        //获取方式;setAttribute.Testapplication
        return "success";
    }

success页面获取参数代码

<p th:text="${application.Testapplication}"></p>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值