程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> springmvc session和model解析,springmvcmodel

springmvc session和model解析,springmvcmodel

編輯:JAVA綜合教程

springmvc session和model解析,springmvcmodel


關於springMVC中的session,有2種使用方法,第一種是直接傳遞httpsession,第二種是使用@SessionAttributes("userId") 注解

這裡附帶一個帖子,別人寫的特別好,是我看過的覺得最好的:http://www.cnblogs.com/waytofall/p/3460533.html

他裡面詳細的解析了這個注解的作用,httpsession的就不多說了,這裡主要解釋這個注解的原理

按照原文的解釋,也試了原文的例子,確實效果是那樣

也就是說這個注解會在把model中對應的的屬性名自動保存在session中

而且,下次的請求到別的業務類時,如果這個業務類也標記了這個session注解,他會自動去找session中這個屬性名並且填充到model對象中去

可以在地址中的例子的基礎上添加一個業務類,嘗試著不標記這個注解能不能拿到,和標記了之後在model中就可以拿到了

關於清除的,就只能從httpsession對象的remove的方法去清除了

model以下時個人看法和理解

model的作用跟request的setAttribute(arg0, arg1) 是一樣的,都是把值或是對象進行一個保存,然後可以在視圖上進行取值,同樣都可以使用ognl表達式取值

那問題來了,為什麼springmvc框架要使用model這個對象呢?

我個人的理解就是

request他只是一個請求,他的作用就是從客戶端發起一個請求,並且攜帶客戶端發起的這個請求所帶的參數,在業務層中進行參數的獲取並且做出相對應的處理,到這裡這個request請求對象的工作就應該結束了,剩下的就是客戶端對這個請求和參數做出處理結果並且生成響應response返回客戶端。

所以不應該用request進行存值,來達到模型層和視圖層的一個連接,所以才使用model或是modelandview這個專門的對象來進行模型層的存在和視圖層的取值

model會在模型層進行存值,在視圖層中,他會去檢查model對象中是否用這個屬性,有他就會渲染出來,request請求結束後就會自動清除model的數據

以上是個人對model和request的理解,快1點了,收拾收拾睡覺了

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved