EL表達式 與 servlvet3.0的新規範

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)

相關文章
相關標籤/搜索