HttpServletRequest 객체에서 Parameter와 Attribute의 차이점

신정범·2026년 4월 14일

JSP

목록 보기
3/3

HttpServletRequest 객체에서 ParameterAttribute는 서로 다른 용도로 사용되며, 요청(request) 처리 시 다양한 데이터를 저장하고 전달하는 방식입니다. 이 두 개념은 저장 목적, 데이터의 생명 주기, 사용 방식에서 차이가 있습니다.


Parameter와 Attribute의 차이

구분ParameterAttribute
저장 목적클라이언트가 요청 시 전송한 파라미터 데이터를 담음서버에서 요청 처리 중 추가한 데이터를 담음
데이터 소스주로 쿼리 문자열, 폼 데이터, URL 파라미터서버에서 코드로 추가된 객체
데이터 유형문자열(String)객체(Object)
생명 주기요청이 시작될 때부터 클라이언트 요청 내에서 유지요청 객체 내에서 유지되며, 필요 시 추가 및 수정 가능
사용 메서드getParameter(), getParameterValues()setAttribute(), getAttribute(), removeAttribute()

1. Parameter (파라미터)

Parameter클라이언트가 서버로 보낸 요청의 데이터를 포함하는 값입니다. 예를 들어, HTML 폼 데이터, 쿼리 문자열, URL 매개변수 등이 이에 해당합니다. 주로 String 타입으로 다루며, 사용자가 입력한 값을 서버에서 읽어올 때 사용합니다.

  • 저장 위치: 클라이언트가 요청 시 보내는 데이터로, 주로 URL 쿼리 문자열이나 POST 폼 데이터로 전달됩니다.
  • 주요 메서드:
    • getParameter(String name): 지정한 이름의 요청 파라미터 값을 String으로 반환합니다.
    • getParameterValues(String name): 동일한 이름을 가진 여러 요청 파라미터의 값을 String[] 배열로 반환합니다. (예: 체크박스)

예시

클라이언트가 login.jsp?username=johndoe&password=1234 같은 URL로 요청할 때, usernamepassword는 요청 파라미터가 됩니다.

String username = request.getParameter("username");
String password = request.getParameter("password");
  • 여기서 usernamepassword는 클라이언트가 보낸 값이며, request.getParameter()를 통해 String으로 읽어올 수 있습니다.

2. Attribute (속성)

Attribute서버에서 요청(request) 객체에 추가하는 데이터입니다. 주로 서블릿과 JSP 간의 데이터 전달에 사용됩니다. Attribute는 객체(Object) 형태로 저장되며, 서버에서 요청 처리 중 필요한 데이터를 공유하는 용도로 사용됩니다. 클라이언트가 직접 접근하거나 변경할 수 없고, 서버 내에서만 유효합니다.

  • 저장 위치: 서버에서 설정하는 값으로, 주로 서블릿에서 JSP로 데이터를 전달할 때 사용합니다.
  • 주요 메서드:
    • setAttribute(String name, Object value): 지정한 이름으로 객체를 속성으로 저장합니다.
    • getAttribute(String name): 지정한 이름의 속성 값을 반환합니다.
    • removeAttribute(String name): 지정한 이름의 속성을 제거합니다.

예시

서블릿에서 데이터를 JSP로 전달할 때 Attribute를 사용합니다. 예를 들어, 사용자의 이름과 같은 데이터를 JSP로 넘겨야 할 때 Attribute에 저장하여 전달합니다.

// 서블릿에서 설정
request.setAttribute("username", "John Doe");

// JSP에서 접근
String username = (String) request.getAttribute("username");

이 경우, username이라는 속성은 서블릿에서 JSP로 전달되어 JSP에서 사용할 수 있습니다. 클라이언트는 이 데이터를 직접 변경할 수 없으며, 서버 측에서만 유지됩니다.


Parameter와 Attribute의 용도 비교

  1. Parameter는 클라이언트가 전송한 데이터를 읽는 데 사용됩니다.
    • 예: 로그인 폼의 사용자명과 비밀번호를 읽어와 인증 처리
  2. Attribute는 서버 내부에서 데이터를 공유하거나 전달하는 데 사용됩니다.
    • 예: 서블릿에서 처리한 결과 데이터를 JSP로 전달하여 클라이언트에게 표시

요약

  • Parameter: 클라이언트 요청 시 보내는 데이터. getParameter()로 문자열 값을 읽습니다.
  • Attribute: 서버에서 추가한 데이터로, 요청 처리 중 서버 내에서 데이터 전달에 사용. setAttribute()getAttribute()로 객체를 저장하고 읽어옵니다.

이처럼 Parameter는 클라이언트가 보낸 값을 읽을 때, Attribute는 서버에서 요청 처리 중 데이터를 전달할 때 사용하여 요청의 성격에 맞게 데이터를 다루는 것이 중요합니다.

profile
성장하는 개발자가 되겠습니다

0개의 댓글