1. 程式人生 > >EL表示式及其11個使用物件(尤其提到了jsp中的物件)

EL表示式及其11個使用物件(尤其提到了jsp中的物件)

轉摘文章

一、page 物件
    page物件代表JSP本身,更準確地說它代表JSP被轉譯後的Servlet,它可以呼叫Servlet類所定義的方法。
        
 二、config 物件
    config 物件裡存放著一些Servlet 初始的資料結構。
    config 物件實現於javax.servlet.ServletConfig 介面,它共有下列四種方法:
        public String getInitParameter(name)
        public java.util.Enumeration getInitParameterNames( )
        public ServletContext getServletContext( )
        public Sring getServletName( )

三、request 物件
    request 物件包含所有請求的資訊,如:請求的來源、標頭、cookies和請求相關的引數值等等。
    request 物件實現javax.servlet.http.HttpServletRequest介面的,所提供的方法可以將它分為四大類:
    1.儲存和取得屬性方法;
        void setAttribute(String name, Object value)    設定name屬性的值為value
        Enumeration getAttributeNamesInScope(int scope)    取得所有scope 範圍的屬性
        Object getAttribute(String name)                取得name 屬性的值
        void removeAttribute(String name)                移除name 屬性的值
    2.取得請求引數的方法
        String getParameter(String name)                取得name 的引數值
        Enumeration getParameterNames( )                取得所有的引數名稱
        String [] getParameterValues(String name)         取得所有name 的引數值
        Map getParameterMap( )                             取得一個要求引數的Map
    3.能夠取得請求HTTP 標頭的方法
        String getHeader(String name)                     取得name 的標頭
        Enumeration getHeaderNames()                     取得所有的標頭名稱
        Enumeration getHeaders(String name)             取得所有name 的標頭
        int getIntHeader(String name)                     取得整數型別name 的標頭
        long getDateHeader(String name)                 取得日期型別name 的標頭
        Cookie [] getCookies( )                         取得與請求有關的cookies
    4.其他的方法
        String getContextPath( )                         取得Context 路徑(即站臺名稱)
        String getMethod( )                             取得HTTP 的方法(GET、POST)
        String getProtocol( )                             取得使用的協議 (HTTP/1.1、HTTP/1.0 )
        String getQueryString( )                        取得請求的引數字串,不過,HTTP的方法必須為GET
        String getRequestedSessionId( )                 取得使用者端的Session ID
        String getRequestURI( )                            取得請求的URL,但是不包括請求的引數字串
        String getRemoteAddr( )                            取得使用者的IP 地址
        String getRemoteHost( )                            取得使用者的主機名稱
        int getRemotePort( )                            取得使用者的主機埠
        String getRemoteUser( )                         取得使用者的名稱
        void etCharacterEncoding(String    encoding)        設定編碼格式,用來解決窗體傳遞中文的問題

四、response 物件
    response 物件主要將JSP 處理資料後的結果傳回到客戶端。
    response 物件是實現javax.servlet.http.HttpServletResponse 介面。response物件所提供的方法。
    1.設定表頭的方法
        void addCookie(Cookie cookie)                     新增cookie
        void addDateHeader(String name, long date)        新增long型別的值到name標頭
        void addHeader(String name, String value)        新增String型別的值到name標頭
        void addIntHeader(String name, int value)         新增int型別的值到name標頭
        void setDateHeader(String name, long date)        指定long型別的值到name標頭
        void setHeader(String name, String value)        指定String型別的值到name標頭
        void setIntHeader(String name, int value)         指定int型別的值到name標頭
    2.設定響應狀態碼的方法
        void sendError(int sc)                             傳送狀態碼(status code)
        void sendError(int sc, String msg)                傳送狀態碼和錯誤資訊
        void setStatus(int sc)                             設定狀態碼
    3.用來URL 重寫(rewriting)的方法    
        String encodeRedirectURL(String    url)            對使用sendRedirect( )方法的URL予以編碼

五、out 物件
    out 物件能把結果輸出到網頁上。
    out主要是用來控制管理輸出的緩衝區(buffer)和輸出流(output stream)。
        void clear( )                                     清除輸出緩衝區的內容
        void clearBuffer( )                             清除輸出緩衝區的內容
        void close( )                                     關閉輸出流,清除所有的內容
        int getBufferSize( )                             取得目前緩衝區的大小(KB)
        int getRemaining( )                             取得目前使用後還剩下的緩衝區大小(KB)
        boolean isAutoFlush( )                            回傳true表示緩衝區滿時會自動清除;false表示不會自動清除並且產生異常處理
        
 六、session 物件
    session物件表示目前個別使用者的會話(session)狀況。
    session物件實現javax.servlet.http.HttpSession介面,HttpSession介面所提供的方法
        long getCreationTime()                            取得session產生的時間,單位是毫秒
        String getId()                                     取得session 的ID
        long getLastAccessedTime()                        取得使用者最後通過這個session送出請求的時間
        long getMaxInactiveInterval()                    取得最大session不活動的時間,若超過這時間,session 將會失效
        void invalidate()                                取消session 物件,並將物件存放的內容完全拋棄
        boolean isNew()                                    判斷session 是否為"新"的
        void setMaxInactiveInterval(int    interval)        設定最大session不活動的時間,若超過這時間,session 將會失效

七、application物件
    application物件最常被使用在存取環境的資訊。
    因為環境的資訊通常都儲存在ServletContext中,所以常利用application物件來存取ServletContext中的資訊。
    application 物件實現javax.servlet.ServletContext 介面,ServletContext介面容器所提供的方法
        int getMajorVersion( )                             取得Container主要的Servlet API版本
        int getMinorVersion( )                             取得Container次要的Servlet API 版本
        String getServerInfo( )                         取得Container的名稱和版本
        String getMimeType(String file)                 取得指定檔案的MIME 型別
        ServletContext getContext(String uripath)        取得指定Local URL的Application context
        String getRealPath(String path)                 取得本地端path的絕對路徑
        void log(String message)                         將資訊寫入log檔案中
        void log(String message, Throwable throwable)    將stack trace 所產生的異常資訊寫入log檔案中

  八、pageContext物件
    pageContext物件能夠存取其他隱含物件。
    1.pageContext物件存取其他隱含物件屬性的方法,此時需要指定範圍的引數。
        Object getAttribute(String name, int scope)
        Enumeration getAttributeNamesInScope(int scope)
        void removeAttribute(String name, int scope)
        void setAttribute(String name, Object value, int scope)
    範圍引數有四個,分別代表四種範圍:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
    2.PageContext物件取得其他隱含物件的方法
        Exception getException( )                        回傳目前網頁的異常,不過此網頁要為error page,
        JspWriter getOut( )                             回傳目前網頁的輸出流,例如:out 
        Object getPage( )                                回傳目前網頁的Servlet 實體(instance),例如:page
        ServletRequest getRequest( )                    回傳目前網頁的請求,例如:request
        ServletResponse getResponse( )                    回傳目前網頁的響應,例如:response
        ServletConfig getServletConfig( )                回傳目前此網頁的ServletConfig 物件,例如:config
        ServletContext getServletContext( )                回傳目前此網頁的執行環境(context),例如:application
        HttpSession getSession( )                        回傳和目前網頁有聯絡的會話(session),例如:session
    3.PageContext物件提供取得屬性的方法
        Object getAttribute(String name, int scope)        回傳name 屬性,範圍為scope的屬性物件,回傳型別為Object
        Enumeration getAttributeNamesInScope(int scope)    回傳所有屬性範圍為scope 的屬性名稱,回傳型別為Enumeration
        int getAttributesScope(String name)             回傳屬性名稱為name 的屬性範圍
        void removeAttribute(String name)                 移除屬性名稱為name 的屬性物件
        void removeAttribute(String name, int scope)    移除屬性名稱為name,範圍為scope 的屬性物件
        void setAttribute(String name, Object value, int scope)        指定屬性物件的名稱為name、值為value、範圍為scope
        Object findAttribute(String name)                尋找在所有範圍中屬性名稱為name 的屬性物件

    九、exception物件
    若要使用exception 物件時,必須在page 指令中設定。<%@ page isErrorPage="true" %>才能使用。
    exception提供的三個方法:
        getMessage( )
        getLocalizedMessage( )、
        printStackTrace(new java.io.PrintWriter(out))

EL表示式中的11個隱含物件

pageContext, pageScope, requestScope, sessionScope, applicationScope, param, paramValues, header, headerValues, cookies, initParam

這裡的資料都是以map方式存放的,獲取可用如:param.name, header.User_Agent, cookie.userinfo得到相應的資料。

${requestScope.origin_uri} 獲取當前URI

與輸入有關的隱含物件有兩個:param和paramValues,它們是EL中比較特別的隱含物件。
例如我們要取得使用者的請求引數時,可以利用下列方法:
      request.getParameter(String name)
      request.getParameterValues(String name)
在EL中則可以使用param和paramValues兩者來取得資料。
      ${param.name}
      ${paramValues.name}

 JSP的6個基本動作:

jsp:include         在頁面被請求的時候引入一個檔案

jsp:forward        把請求轉到一個新的頁面

jsp:plugin          根據瀏覽器型別為java外掛生成object或embed標記

jsp:useBean     尋找或例項化一個JavaBean

jsp:getProperty    輸出JavaBean的某個屬性

jsp:setProperty     設定JavaBean的某個屬性

相關推薦

EL表示式及其11使用物件尤其提到jsp物件

轉摘文章一、page 物件    page物件代表JSP本身,更準確地說它代表JSP被轉譯後的Servlet,它可以呼叫Servlet類所定義的方法。         二、config 物件    config 物件裡存放著一些Servlet 初始的資料結構。    conf

轉:EL表示式11內建物件

原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998 EL是JSP內建的表示式語言 JSP2.0開始,不讓再使用Java指令碼,而是使用EL表示式和動態標籤來代替Java指令碼 ############EL替代的是<%=..

一次替換多詞,批量替換多字串使用不的解決辦法

三天前上CSDN,發現有人回覆批量替換多個詞的工具使用不了。下載下來試用了一下,確實報錯,這兩天打算做個網頁版本的,排版佈局還沒弄好。 上貼回覆以前工具使用不了的解決辦法:下載32位的jre,然後配置JAVA_HOME。 2、下載完畢解壓後,假如路徑(自

EL表示式及其定義和使用

簡介 EL(Expression Language)表示式語言實在JSP2.0版本中引入的新特性,它用於JSP檔案中的資料訪問。這種表示式語言能簡化JSP檔案中資料訪問的程式碼,可用來代替傳統的基於”<%=”和”%>”形式的Java表示式,以及部分基於“<

Gradle 編譯多project包括多Library庫project依賴指導

pil 出現 基於 viewpage eclips support class 什麽 cor Gradle Android最新自己主動化編譯腳本教程(提供demo源代碼)這篇文章我簡單寫了基於Gradle2.1 進行的android project和android lib

mybatis傳多引數不使用@param註解情況下,3.4.2版本之後出現#{0}-#{n}引數繫結異常

解決方案:        在mybatis配置檔案中宣告setting屬性的useActualParamName 引數值為false                   **

11.26python筆記進階1.1-1.3

打印 == () 第一個 問題 命名規則 導入 參數 形參 1.1 函數定義函數就是完成特定功能的一個語句組,這組語句可以作為一個單位使用,並且給它取一個名字。可以通過函數名在程序的不同地方多次執行(這通常叫函數調用)。預定義函數可以直接使用自定義函數用戶自己編寫 為什麽使

Web滲透測試3要點資訊收集→漏洞發現→漏洞利用

現在,隨著企業資訊化建設的開展,越來越多的重要資料會以電子媒介的形式存放,這在方便企業辦公的同時,也造成了極大的安全隱患。近年來,隨著APT攻擊的蔓延,使得越來越多的企業遭受不可挽回的重大損失。一個偶然的機會,有幸邀請到了一家國外專門做web安全的公司來對自己的web系統做安全測試。4周下來,我與幾位安全專家

jspel表示式獲取後臺傳來的值,或者獲取session的值

<script type="text/javascript"> var usernameC = ${sessionScope.SESSION_USER_PROFILE.accountId}; var caseId = "${caseId}"; var taskId =

【計算機基礎】Java學習篇 認識類與物件打包器、陣列和字串

介紹完基本型別,下面介紹類型別。 瞭解物件與參考的關係,認識打包器,以及陣列物件、字串物件。 一、類與物件       1.建立類          編寫程式需要使用物件(Object),產生物件必須先定義類(Class),類就像是設計圖,而物件是類

400. 第N數字沒看懂題目...未完

這道題的題目意思...emmm....; 1,2,3,4,5,6,7,8,9,10 只有這10種而已。(21也是0) 別人的解題思路  解題參考的:(這真的是簡單題嗎??懷疑人生) https://blog.csdn.net/hy971216/article/d

邏輯表示式 -- 對蘊含的理解舉例更清晰、明白哦

A蘊含B,即為“若A則B”。 其定義的真值表如下: 對於表中的前兩項,我們可以理解。 但是很多人都不理解第三、四項,為什麼A為真,則無論B是真是假,整個表示式都為真,首先需要說明的是這就是定義。 但是還是需要舉個例子來更好的理解。如下: 假設A => B :如果今

收集網上資料,總結得出如何同時執行多tomcat模擬在不同域執行網頁

當第一個tomcat啟動後,後面tomcat的server.xml中的埠不管怎麼改,仍然會報埠衝突。後來在dos下執行才發現所有的tomcat都會去找CATALINA_HOME  ,可以開啟startup.bat進行檢視,可以發現,都是預設找環境變數中配置的CATALINA

【C語言】用結構體陣列完成:有5學生包括學號,姓名,成績,要求按照成績高低輸出學生資訊.

//用結構體陣列完成:有5個學生(包括學號,姓名,成績),要求按照成績高低輸出學生資訊 #include <stdio.h> struct Stu { int num; char na

java把物件轉化成流,和把流轉化成物件包含clone機制+序列化機制

類如下,這裡為了測試 僅僅用了內部類class Book implements Serializable { int i = 1; }物件轉化成位元組Book b = new Book(); B

Hibernate學習筆記---通過load和get方法來查詢物件只能根據主鍵來查詢

下面的例子是說明如何來查詢一個物件。 get方法(get方法一經呼叫,會立即發出get方法) package com.ahuzl.hibernate; import java.util.Date;import org.hibernate.Session;import org

Java 7:類和物件域、引數、初始化

面向物件程式設計:每個物件包含對使用者公開的特定功能部分和隱藏的實現部分,在OOP中不必關心物件的具體實現,OOP更看重資料(結構),而不是具體演算法。 封裝(資料隱藏):將資料和行為組合在一個包裡,並對物件的使用者隱藏資料的實現方式,封裝的關鍵是絕不能讓其他類直接訪問例項

推薦幾天氣Api介面 可在小程式使用

國內的地圖軟體基本是支援查詢天氣的唯獨騰訊地圖不支援天氣查詢,當然其他天氣平臺提供的介面也是夠個人使用的 1、高德地圖(高德地圖開發者平臺) 支援獲取實時天氣資料 2、百度地圖(百度地圖開放平臺)

遞迴解析json物件獲取某個key對應的value

最近補充需求需要對json格式的資料進行處理,在網上搜尋了一些前輩們的心血,感覺不合適,就自己寫了一個, 廢話不說,直接上程式碼: package mlstudy.json; import java.io.FileInputStream; import java.io.

關於多執行緒的幾問題面試小問題,Java篇

面試官想考考我多執行緒方面的問題。 1、請說下執行緒與程序的關係。 答:《作業系統》中是這樣說的 (1)一個執行緒只能屬於一個程序,而一個程序可以有多個執行緒,但至少有一個執行緒。執行緒是作業系統可識別的最小執行和排程單位。 (2)資源分配給程序,同一程序的所有執行緒共享