[Web] HttpServletRequest / HttpServletResponse주요 기능

2024. 8. 24. 09:13자바 웹 개발/서블릿 기초

HttpServletRequest

 

HttpServletRequest는 HTTP 메시지 형태로 들어오는 요청에 대한 정보를  파악하기 위해 제공되는데 기능은 다음과 같다. 

 

기능 메서드 설명
HTTP 헤더 관련 getHeaderNames()
getHeader(이름)
Http 헤더 내용을 찾아내는 기능
사용자 관련 getRemoteAddress() 접속한 사용자의 IP주소
요청관련 getMethod()
getRequestURL()
getRequestURI()
getServletPath()
get/post 정보, 사용자가 호출에 사용한 URL 정보 등
쿼리스트링관련 getParameter()
getParameterValues()
getParameterNames()
쿼리 스트링 등으로 전달되는 데이터를 추출하는 용도
쿠키 관련 getCookies() 브라우저가 전송한 쿠키 정보
전달 관련 getRequestDispatcher() 요청을 다른 자원(서블릿 혹은 JSP)로 전달하는 용도
데이터 저장 setAttribute() 전달하기 전에 필요한 데이터를 저장하는 경우에 사용

 

getParameter()

 

키를 이용해서 값을 얻는 역할을 하기 위해 사용한다. 주의할 점은 결과가 항상 String이라는 점이다. 만일 해당 파라미터가 존재하지 않으면 null을 반환한다. (따라서 null 체크가 필수이다) 

 

getParameterValues()

 

동일한 이름의 파라미터가 여러개 있는 경우에 사용한다. String[] 타입으로 반환된다. 

 

setAttribute()

 

JSP로 전달할 데이터를 추가할 때 사용한다. 키와 값 형태로 데이터를 저장할 수 있다. 키는 문자열이고, 값은 모든 객체 타입이다. 

 

RequestDispatcher

 

forward() 메서드를 주로 사용한다. 현재까지의 모든 응답 내용을 무시하고 JSP가 작성하는 내용만을 브라우저로 전달한다. 

 

HttpServletResponse

HttpServletResponse는 쓰는 기능을 주로 담당한다. 

기능 메서드 설명
MIME 타입 setContentType() 응답 데이터의 종류를 지정
헤더 관련 setHeader() 특정 이름의 HTTP 헤더 지정
상태 관련 setStatus() 404,200,500 등 응답 상태 코드 지정
출력 관련 getWriter() PrintWriter를 이용해서 응답 메시지 작성
쿠키 관련  addCookie() 응답 시에 특정 쿠키 추가
전달 관련 sendRedirect() 브라우저에 이동을 지시

 

sendRedirect()

Locationdl이 응답을 받으면 화면을 처리하는 대신에 주소창에 지정된 주소로 이동하고 다시 호출하게 된다. 브라우저의 주소가 아예 변경되기 때문에 '새로고침' 요청을 미리 방지할 수 있다.