getParameter(String)和getAttribute()這兩個方法都是從request對象中得到參數的方法。但實際上他們之間有着本質的區別。web
1. getParameter()是指客戶端和server端之間的數據傳遞。咱們在從瀏覽器端發出一個請求到server端時(不管是GET和POST方式),全部的參數都是被包裝成了String的形式以後才被傳遞到server端的。因此,咱們在server端的代碼中就能夠經過request.getPapameter(String)的方式來取得。瀏覽器
2. getAttribute()一貫是和setAttribute()一塊兒使用的,只有先用setAttribute()設置以後,纔可以經過getAttribute()來得到值,它們傳遞的是Object類型的數據。並且必須在同一個request對象中使用纔有效。spa
何謂同一個request呢?例如,在同一個servelet中,同一個Action中(Struts),同一個JSP中等等;或者是同一個request被forward了屢次,那麼每個處理這個request對象的web組件都是使用的同一個request對象;或者include的方式也是同樣的。orm
從以上分析,這二者之間的區別就很明確了。getParameter()是在數據從客戶端到server端以後纔有效的,而getAttribute()則是server端內部的事情,只有在server端調用了setAttribute()以後,而且沒有redirect,沒有到客戶端以前,getAttribute()纔有效。server
同理,getParameterNames()和getParameterValues(String)跟getParameter(String)是同樣的道理。對象