這也是屬於JSP範圍內的知識,使用EL表示式,能更好的使用JSP中的各種內建物件和作用域,說點閒話,馬上要出去實習了,有點恐慌,可能這是馬上要出去工作的學生的通病,繼續努力把,兵來將擋水來土掩,
--WH
一、EL表示式
JSP中可以使用EL表示式,EL表示式是用"${}"括起來的指令碼,用來更方便地讀取物件,EL表示式寫在JSP的HTML程式碼中,而不能寫在"<%%>"引起的JSP指令碼中,現在就來了解一下,EL表示式是如何來替代JSP指令碼或者JSP行為的。
EL表示式有11個內建物件。
pageScope、requestScope、sessionScope、applicationScope、pageContext、param、paramValues、header、headerValues、cookie、initParam
pageScope、requestScope、sessionScope、applicationScope代表四個作用域物件
pageContext 表示的是JSP中內建物件pageContext,能獲取request等其他JSP八大內建物件
param 表示一個請求引數 ${param.username} 等效 request.getParameter("username");
paramValues 表示一組請求引數 ${paramValues.loves} 等效request.getParameterValues("loves"); 提交喜愛這種多選框
header 表示一個請求頭 ${header.referer} 等效request.getHeader("referer");
headerValues 表示一組請求頭 ${header.cookie} 等效 request.getHeaders("cookie"); 獲取的請求頭引數中的內容是一組內容,比如cookie就有可以是多個cookie一起傳過來
cookie 獲得cookie物件
initPatam web專案初始化引數,servletContext.getInitParameter("xxx");
還有一種特殊的用法,直接獲取物件變數,
${user.username}
user為User的一個例項物件,並且存放在page作用域中,上面這句程式碼的意思是,依次從page、request、session、application作用域查詢user物件,直到找到為止,底層使用的是pageContext.findAttribute(); 是一樣的效果。
例項講解:
總結:
EL表示式比較簡單,使用它的目的是為了減少JSP指令碼,儘量不要在HTML中嵌入Java程式碼,顯的很混亂,而在HTML中使用EL表示式,就比較好來獲取JSP中各種物件,獲取四大作用域中的值,
如果要獲取四大作用域中的資料,則可以使用${}、${pageScope.xxx}
如果想要獲取請求引數,則使用param或paramValues
如果想要獲取請求頭中的一些資訊,獲取想要獲取Servlet的一些物件,比如request、session等,可以使用pageContext來獲取request物件,然後在獲取所需要的資訊,或者直接使用header物件來獲取頭資訊
如果想獲取web初始化引數,則使用initPatam
el表示式的運算就不講解了,很簡單,基本上能用的都可以用。
最主要的是要記得EL中有哪11個內建物件,知道了他們就知道了EL可以獲取哪些資訊。