EL表達式 java
EL表達式 是一種簡化的數據訪問方式,是對jsp腳本的簡化 。web
如咱們在一個頁面中須要輸出session的保存的一個值:tomcat
<% out.println(session.getAttribute("name")) %> 咱們可使用jsp中內置的out對象 和session對象 輸出安全
<%=session.getgetAttribute("name") %> 做爲上面的替代品 咱們可使用輸出表達式輸出 cookie
可是上面兩者的都是jsp腳本 爲了避免用jsp腳本 EL表達式應用而生 session
EL表達式不只支持算術運算符 還支持邏輯運算符 而且其中內置的幾個對象,和jsp頁面中內置的對象相互對應 ,方便輸出 app
支持算術表達符 ${ 1+2 } 顯示 3框架
支持邏輯運算符 ${ 2 > 1 } 顯示 true異步
內置對象 jsp
pageContext 對應於 jsp的內置對象pageContext
pageScope 對應於 jsp的內置對象page
requestScope 對應於 jsp的內置對象request
sessionScope 對應於 jsp的內置對象session
applicationScope 對應於 jsp的內置對象application
cookie jsp中並沒有對應內置對象
param paramValues header initParam 這四大對象 感受用到會不多
回到該文章開始 咱們可使用EL表達式代替jsp腳本
${sessionScope.name } 或 ${ sessionScope["name"]}
${requestScope.apple.color} 或 ${apple.color} 若是輸出的是requestScope中值 能夠省略requestScope ,應該是默認會取request對象中的值
EL表達式 最多仍是用來進行值的輸出 ,因此不要在裏面寫太多的邏輯判斷,雖然它支持算術運算符和邏輯運算符等 ,這些仍是交給jsp腳本比較好 。
還能夠經過自定義函數 來擴展EL表達式的功能。
Servlet3.0的新規範
Servlet3.0是Servlet規範歷史上的比較重要的更新 ,主要有:
1.Servlet3.0的註解Annotation
開發人員在配置servlet,filter,listener的時候,除了能夠在web.xml中配置 ,有了一種新的選擇
涉及的javax.servlet.annotation包下提供了以下annotation
@WebServlet ------------用於修飾servlet類 ,來配置servlet
@WebFilter ------------用於修飾Filter類 ,來配置Filter
@WebListener ----------用來修飾Listener類 ,來配置Listener
@WebInitParam ---------搭配@WebServlet與@WebFilter使用 來爲servlet和Filter配置參數
@MultipartConfig ------用來修飾servlet類 ,指定該servlet會處理multipart/form-data類型的請求(主要用於文件上傳)
@ServletSecurity @HttpConstraint @HttpMethodConstraint 這三個主要與安全與受權相關
2.Servlet3.0的Web模塊配置支持
想來看一下未引入模塊配置,全部的servlet,Filter,Listener都配置在一個web.xml文件中(假設咱們沒有使用框架) ,項目規模不大還好 ,項目規模大了的話,web.xml文件一定很龐大。
java目錄通常是把相關聯的servlet,Filter.Listener放在同一個包(目錄)下,咱們在不一樣的包下新建WEB-INF目錄,其中新建web-fragement.xml文件,來把項目分紅不一樣的模塊。
引入模塊化配置,把相關聯的servlet,Filter,Listener放在一個web—fragment.xml文件中配置 ,這樣能夠產生若干個web—fragment.xml ,爲每一個模塊的web-fragment.xml文件在其中配置名稱,
和該web-fragment.xml相對於其餘web—fragment.xml的加載順序。
固然咱們能夠在web.xml指定每一個web-fragment.xml的加載順序 ,它的優先級大於web-fragment.xml中指定的加載順序。
這是咱們發現web.xml不是這個項目本身必須寫的文件,能夠沒有(可是其實還有有的,由於tomcat的config目錄下爲每一個web應用指定了公用的web.xml文件)。
3.Servlet3.0提供的異步處理
4.Servlet3.0改進了Servlet API
主要修改的有兩個類
HttpServletRequest類 增長了對文件上傳的支持
新加的兩個方法:
Part getPart(String name) ----根據名稱來獲取文件的上傳域
Collection<Part> getParts() -----獲取全部的文件上傳域
關於文件上傳的詳細細節:
還修改了ServletContext類 提供動態註冊servlet,Filter的功能,還容許動態設置web應用的初始化參數
addServlet()
addFilter()
addListener()
setInitParameter(String name ,String value)