<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            java語言

            JSP內置對象及EL表達式使用

            時間:2025-01-24 09:27:52 java語言 我要投稿
            • 相關推薦

            JSP內置對象及EL表達式使用

              在JSP內置對象及EL表達式時我們通常會遇到一些棘手的問題,下面小編給大家提供了JSP內置對象及EL表達式使用,大家可以參考閱讀,更多詳情請關注應屆畢業生考試網。

              JSP 的內置對象是為了方便, 開發 JSP 的時候,把一些對象設置為內置對象,開發者在 JSP 頁面編程的時候不必聲明這些對象就能直接使用。

              本文我們具體講解一下Jsp內置對象及EL表達式的使用。

              一、JSP的內置對象(9個JSP內置對象)

              JSP的內置對象引用名稱   對應的類型

              request      HttpServletRequest

              response         HttpServletResponse

              session      HttpSession(有開關的:page指令的session屬性的取值)

              application    ServletContext

              config       ServletConfig

              page        this(當前Servlet對象)

              exception     java.lang.Throwable(有開關:page指令的isErrorPage屬性改為true)

              out        JspWriter

              pageContext    javax.servlet.jsp.PageContext非常重要

              pageContext對象有三大作用:

              1、本身是一個域對象,表示的域范圍是本頁面。

              同時還能操作其他三個域對象(PageContext ,ServletRequest, HttpSession,ServletContext)

              設置屬性:

              void setAttribute(String name,Object value)

              void removeAttribute(String name)

              Object getAttribute(String name)

              操作其他的三個域對象,設置屬性:

              void setAttribute(String name,Object value,int scope)

              void removeAttribute(String name,int scope)

              Object getAttribute(String name,int scope)

              參數int scope是由PageContext類提供的靜態變量規定的。

              PageContext.PAGE_SCOPE:頁面范圍(是PageContext本身中的那個Map,代號page)

              PageContext.REQUEST_SCOPE:請求范圍(是ServletRequest中的那個Map,代號request)

              PageContext.SESSION_SCOPE:請求范圍(是HttpSession中的那個Map,代號session)

              PageContext.APPLICATION_SCOPE:請求范圍(是ServletContext中的那個Map,代號application)

              Object findAttribute(String name):依次按照page,request, session ,application范圍搜索指定名稱的對象,找到為止。

              EL表達式便是調用了此方法(非常有用)

              2、獲取其他8個隱式對象

              3、提供了轉發和包含的方便方法

              若不用pageContext對象:

              RequestDispatcher rd = request.getRequestDispatcher("/url");

              rd.forward(request,response);

              用pageContext對象:

              pageContext.forward("url");

              pageContext.include("url");

              四大域對象(兩個資源之間互傳數據)

              JSP中隱式對象的名稱  范圍名稱  具體的類型

              pageContext    page    javax.servlet.jsp.PageContext

              request      request  javax.servlet.ServletRequest

              session     session  javax.servlet.http.HttpSession

              application    application  javax.servlet.ServletContext (如果使用,必須同步處理)

              二、EL表達式

              它只是JSP中的表達式,不是一種開發語言。

              基本語法:${EL表達式}

              1. 獲取數據

              EL表達式只能獲取四大域中的數據。

              EL表達式獲取的對象如果是null,頁面不會顯示數據。因此,EL表達式中永遠不會出現空指針異常

              "."運算符:

              ${p.name}:調用域中名稱為p對象的getName方法,點運算符是用于獲取屬性的取值的。

              []運算符:

              (.運算符能做的,[]也能做。[]能做的,.不一定能做)

              比如${p.name}===${p['name']}==${p["name"]}

              優秀在可以取不符合Java命名規范的東東。

              2. 數學邏輯運算:

              empty運算符:

              如果判斷的對象是null或者空字符串,都返回true。

              對于集合,即使集合對象本身不是null,沒有任何元素,也返回true。

              EL表達式不支持字符串連接操作。

              三、EL內置對象(11大EL內置對象)

              獲取JSP的內置對象(11大EL內置對象):難點,不要與JSP的內置對象和范圍名稱搞混

              11大EL隱式對象中,其中一個是表示自身對象外,其余都是表示的Map結構

              EL隱式對象名稱     Java類型              備注

              pageContext    javax.servlet.jsp.PageContext   與JSP中的內置對象完全相同

              剩余的都是代表的Map集合

              pageScope    java.util.Map   代表著PageContext頁面范圍域那個Map

              requestScope    java.util.Map   代表著ServletRequest請求范圍域那個Map

              sessionScope   java.util.Map   代表著HttpSession會話范圍域那個Map

              applicationScope    java.util.Map   代表著ServletContext應用范圍域那個Map

              param       java.util.Map   代表著請求參數。key:請求參數的名稱。value:請求參數的值,它是一個字符串。

              paramValues   java.util.Map   代表著請求參數。key:請求參數的名稱。value:請求參數的值,它是一個字符串數組。

              header      java.util.Map  代表著請求消息頭。key:頭名稱。value:頭值,它是一個字符串。

              headerValues   java.util.Map   代表著請求消息頭。key:頭名稱。value:頭值,它是一個字符串數組。

              cookie     java.util.Map  代表客戶端提交的Cookie的Map。key:cookie的name。value:cookie對象本身

              initParam   java.util.Map   代表著全局初始化參數(web.xml中context-param).key:參數名稱。value:參數值

              EL表達式與JSP內置對象問題

              問:

              ${pageContex.request}和${request}有區別嗎?這里的request都是HttpServletRequest類嗎?

              我在Action中有request.setAttribute("key",key);

              key變量是集合時在jsp用${key}能拿到,但是key是個字符串時${key}就是null,為什么呢?

              還有Attribute和Parameter有什么區別?可以分別有同名的嗎?(比如Parameter中有個"key",Attribute也有個"key")

              可以的話,EL中區分嗎?先找哪個?

              回復一:

              有區別吧

              request對象有若干個內部信息,其中一個是attribute(key, value)隊列。

              ${pageContex.request}表示的是request對象本身,能取得request的所有信息。

              ${request}表示的是request對象內部的attribute(key, value)隊列,只能取得該隊列內的信息

              回復二:

              key變量是集合時在jsp用${key}能拿到,但是key是個字符串時${key}就是null,為什么呢?

              你在頁面<%request.getparameter(‘key’)>可以取到!

              Attribute和Parameter有什么區別:

              getParameter(String name)獲得客戶端傳送給服務器的參數值,該參數是由name指定的,通常是表單中的參數.

              getAttribute(String name):返回有name 指定的屬性值,如果指定的屬性值不存在,則會返回一個null值.

            【JSP內置對象及EL表達式使用】相關文章:

            JSP中九大內置對象06-03

            JSP中9個隱含對象09-10

            如何使用JSP來發送郵件07-04

            Word 2013如何使用內置的主題和樣式集08-05

            java對象持久化的使用技巧09-23

            在PHP中使用正則表達式進行查找替換11-05

            jsp試題及答案05-07

            JSP的基礎原理05-30

            PHP內置函數有哪些11-04

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看