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)에서 만들어진 정보이다.
출처
'Spring > Model1 _2(MVC)' 카테고리의 다른 글
0829 JSP - 분리 , throws ~ 회원 정보 수정 페이지 만들기 memberDAO (0) | 2022.08.29 |
---|---|
0829 JSP - 데이터 처리 - 로그인 여부 (0) | 2022.08.29 |
0825 JSP - MySQL - DELETE ~ 객체, 자바빈 (0) | 2022.08.25 |
0822 JSP - MySQL WorkBench, Connector/J (0) | 2022.08.22 |
0822 JSP - mySQL 설치 ~ (0) | 2022.08.22 |