Web/JSP&Servlet

[JSP&Servlet] parameter 와 attribute 차이

프로호구래머 2020. 9. 19. 15:54

parameter와 attribute를 구분하지 못하고 그저 사용가능한 것을 쓰고있다가 문득 차이가 궁금해서 정리해보았다.

 

ServletRequest의 api를 확인해 보자.

 

우선, parameter에 관한 method를 찾아보면 알겠지만 setter는 없고 getter만 존재한다. 반면에, attribute는 setter, getter 둘 다 존재한다. 

 

Api에서는 request parameter를 request와 함께 보내어지는 여분의 정보라고 한다. 또한 이 parameter들은 쿼리스트링이나 폼 데이터에 포함되어 있다고 한다. 즉, 우리가 servlet에서 사용하는 parameter들은 브라우저에서 사용자가 작성한 데이터들(ex, id, pwd 등)인 것이다. 그러므로 servlet에서는 parameter를 set할 수 없고 get만 가능하며, getParameter()가 반환하는 값 또한 String이다(우리가 입력하거나 입력된 값이므로).

 

반면 request attribute가 설정되는 방법에는 두 가지가 존재하는데, 하나는 servlet container가 request에 대한 정보를 이용할 수 있게 설정하는 것이고, 다른 방법은 setAttribute()를 이용해서 requestDispatcher가 호출되기 전에 request에 정보를 삽입할 수 있게 해주는 것이다. 그리고 getAttribute()의 반환값은 Object이다. 

 

결론,

parameter는 브라우저(client)에서 만들어진 정보이고,

attribute는 servlet(server)에서 만들어진 정보이다.


출처

docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getAttribute(java.lang.String)

 

ServletRequest (Java EE 6 )

Stores an attribute in this request. Attributes are reset between requests. This method is most often used in conjunction with RequestDispatcher. Attribute names should follow the same conventions as package names. Names beginning with java.*, javax.*, and

docs.oracle.com

 

'Web > JSP&Servlet' 카테고리의 다른 글

JSP와 Servlet  (0) 2020.08.14