SpringMVC学习(4)—— 域对象(作用域)

SpringMVC学习(4)—— 域对象(作用域),第1张

域对象有4个:

①page(PageContextImpl):当前jsp页面范围内有效

②request(HttpServletRequest):一次请求响应范围有效,同一客户端的不同请求,无法获取域对象中的值

③session(HttpSession):一次会话范围有效,同一客户端在一次会话内的多个请求,都可以获取到session保存作用域内的值;可以看成一次浏览器关闭

④application(ServletContext):一次应用程序范围;可以看成一次服务器关闭

一.  向request域对象共享数据 1. 通过ServletAPI向request域对象共享数据
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/requestByServletAPI")
    public String testRequestByServletAPI(HttpServletRequest request){
        request.setAttribute("requestScope","hello");
        return "test";
    }
}



    
    Title


    index页面

    通过servletAPI向request域对象共享数据




    
    Title


    test页面

    

2. 使用ModelAndView向request域对象共享数据(建议使用)
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/requestByModelAndView")
    public ModelAndView testRequestByModelAndView(){
        ModelAndView mav = new ModelAndView();
        //向request域中存数据
        mav.addObject("requestScope","hello,ModelAndView");
        //设置视图名称
        mav.setViewName("test");

        return mav;
    }
}



    
    Title


    index页面

    通过ModelAndView向request域对象共享数据




    
    Title


    test页面

    

3. 使用Model向request域对象共享数据
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/requestByModel")
    public String testRequestByModel(Model model){
        model.addAttribute("requestScope", "hello,Model");
        return "test";
    }
}



    
    Title


    index页面

    通过Model向request域对象共享数据




    
    Title


    test页面

    

4. 使用map向request域对象共享数据
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/requestByMap")
    public String testRequestByMap(Map map){
        map.put("requestScope", "hello,Map");
        return "test";
    }
}



    
    Title


    index页面

    通过Map向request域对象共享数据




    
    Title


    test页面

    

5. 使用ModelMap向request域对象共享数据
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/requestByModelMap")
    public String testRequestByModelMap(ModelMap modelMap){
        modelMap.addAttribute("requestScope", "hello,ModelMap");
        return "test";
    }
}



    
    Title


    index页面

    通过ModelMap向request域对象共享数据




    
    Title


    test页面

    

二.  向session域对象共享数据 1. 通过ServletAPI向session域对象共享数据(建议使用)
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/testSession")
    public String testSession(HttpSession session){
        session.setAttribute("sessionScope", "hello,session");
        return "test";
    }
}



    
    Title


    index页面

    p向session域对象共享数据




    
    Title


    test页面

    

三.  向application域对象共享数据 1. 通过ServletAPI向application域对象共享数据(建议使用)
package com.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;

@Controller
public class ScopeController {
    @RequestMapping("/")   //必须要有该映射路径,这样启动Tomcat服务器时才能找到index.html页面
    public String index(){
        return "index";
    }

    @RequestMapping("/testApplication")
    public String testApplication(HttpSession session){
        ServletContext application = session.getServletContext();
        application.setAttribute("applicationScope", "hello,application");
        return "test";
    }
}



    
    Title


    index页面

    向application域对象共享数据




    
    Title


    test页面

    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/730368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存