javascript
【Spring】SpringMVC 作用域传值的 4 种方式
一、四大作用域復習
2.1 page
2.1.1 在當前頁面不會重新實例化.
2.2 request
2.2.1 在一次請求中同一個對象,下次請求重新實例化一個request 對象.
2.3 session
2.3.1 一次會話.
2.3.2 只要客戶端Cookie 中傳遞的Jsessionid 不變,Session 不會重新實力化(不超過默認時間.)
2.3.3 實際有效時間:
2.3.3.1 瀏覽器關閉.Cookie 失效.
2.3.3.2 默認時間.在時間范圍內無任何交互.在tomcat 的web.xml 中配置
2.4 application
2.4.1 只有在tomcat 啟動項目時菜實例化.關閉 tomcat 時銷毀application
二、SpringMVC 作用域傳值的幾種方式
1. 使用原生 Servlet
1.1 在 HanlderMethod 參數中添加作用域對象
Java示例
@Controller public class DemoHttpRequest {@RequestMapping("request")public String demo1(HttpServletRequest request, HttpSession httpSession) {// request 作用域request.setAttribute("req", "req的值");// session 作用域HttpSession session = request.getSession();session.setAttribute("session", "session的值");httpSession.setAttribute("httpSession", "httpSession的值");// application 作用域ServletContext application = request.getServletContext();application.setAttribute("application", "application的值");return "requestpage.jsp";} }JSP示例
<h3>全名稱調用方式:</h3> request:${requestScope.req}<br/> session:${sessionScope.session}<br/> httpSession:${sessionScope.httpSession}<br/> application:${applicationScope.application}<br/><hr> <h3>簡化名稱調用方式:</h3> request:${req}<br/> session:${session}<br/> httpSession:${httpSession}<br/> application:${application}<br/>2. 使用 Map 集合
2.1 把map 中內容放在 request 作用域中
2.2 spring 會對 map 集合通過 BindingAwareModelMap 進行實例化
Java示例
@RequestMapping(value = "demo2")public String demo2(@RequestParam(value = "name", defaultValue = "游客") String name1,@RequestParam(value = "age", defaultValue = "66") int age1) {// 此處使用注解添加默認值,避免因int類型無法賦值為 Null 導致的異常;// 或者還有一種方式是使用 Integer 對象,可以賦值為 Null// required: true 和 defaultValue 不要一起使用,否則始終具有默認值,required 檢驗恒通過,沒有意義。System.out.println("In DemoController demo2, name1 = " + name1 + ", age1 = " + age1);return "main2.jsp";}JSP示例
map:${map}3. 使用 SpringMVC 中 Model 接口
3.1 把內容最終放入到 request 作用域中.
Java示例
// 使用model,把內容最終放入到request作用域中。好處是不用寫request。@RequestMapping("request2")public String demo3(Model model) {model.addAttribute("model", "model的值");return "requestpage.jsp";}JSP示例
model:${model}4.使用 SpringMVC 中 ModelAndView 類
Java示例
@RequestMapping("request3")public ModelAndView demo4() {// 參數,跳轉視圖ModelAndView modelAndView = new ModelAndView("requestpage.jsp");modelAndView.addObject("modelAndView", "modelAndView的值");return modelAndView;}JSP示例
ModelAndView:${modelAndView}總結
以上是生活随笔為你收集整理的【Spring】SpringMVC 作用域传值的 4 种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【SQLAlchemy】is not b
- 下一篇: 【Spring MVC】文件上传、文件下