web應用servlet中Attribute、Parameter、InitParameter的區別

matthew_leung發表於2018-11-06

區別: 

來源不同:   引數(parameter)是從客戶端(瀏覽器)中由使用者提供的,若是GET方法是從URL中 

提供的,若是POST方法是從請求體(request body)中提供的; 

  屬性(attribute)是伺服器端的元件(JSP或者Servlet)利用requst.setAttribute()設定的

操作不同:   引數(parameter)的值只能讀取不能修改,讀取可以使用request.getParameter()讀取; 

  屬性(attribute)的值既可以讀取亦可以修改,讀取可以使用request.setAttribute(),設定可使用request.getAttribute()

資料型別不同:   引數(parameter)不管前臺傳來的值語義是什麼,在伺服器獲取時都以String型別看待,並且客戶端的引數值只能是簡單型別的值,不能是複雜型別,比如一個物件。 

   屬性(attribute)的值可以是任意一個Object型別。 

ServletConfig:  initParameter是用來獲取配置檔案web.xml中<servlet>標籤下的子標籤<init-param>配置的是初始化引數,其作用域是本servlet

 

    ServletContext:  attribute相關方法是用來操作web應用上下文中的屬性,setAttribute()/getAttribute()/removeAttribute()

                              initParameter相關方法是獲取web.xml配置檔案中<context-param>標籤配置的初始化引數,其作用域是整個web應用。

 

    ServletRequest:  attribute相關方法是用來操作轉發請求的引數,直接在服務端設定,可由jsp或其他servlet進行操作

                                parameter相關方法是用來獲取本次請求所攜帶的引數,是客戶端傳遞過來的

Attribute 是屬性 一般是域的概念就會與相應的概念 比如ServletContext  一般又在域內資料共享傳輸的

Parameter 是引數  一般是也是域有, 但是一般是網頁中的表單資料或超連結,網址上的引數傳輸

InitParameter 是初始化引數, 一般用在獲取配置檔案的初始化資料

 

對於表單的編寫 :

對於我們要錄入的資訊,可以不能寫value的值  比如文字框,文字域,密碼框

但對於不需要錄入的資訊,我們手動選擇的按鈕等:比如 單選框,核取方塊,下拉框等我們只需要選擇資訊的,因為你選擇的資訊,伺服器並不知道你選擇的資訊的內容,就要寫value的值,作為資訊傳輸到後臺。

 
 
 

相關文章