상세 컨텐츠

본문 제목

[Spring] HttpServletRequest , HttpServletResponse란? / 주요 기능과 자주 사용하는 메서드

Backend/Spring

by hyeminyy 2023. 12. 11. 21:10

본문

728x90

https://steady-developer-hyemin.tistory.com/48

 

[Spring] HttpServlet 란? / HttpServlet 과정

HttpServlet - HttpSerlvet은 GET/POST 등에 맞게 doGet(), doPost() 등을 제공하므로, 개발자들은 본인에게 필요한 메소드를 오버라이드하는 것만으로 GET/POST 방식 처리를 나누어서 처리할 수 있다. - HttpServlet

steady-developer-hyemin.tistory.com

HttpServletRequest의 주요기능

 - 서블릿 객체에서 최종적으로 요청을 처리하는 doGet()/doPost() 등은 HttpServletRequest와 HttpServletResponse를 파라미터로 전달받는다.

 - 주로 읽는 기능을 제공

 

getParameter()

 - '?name=AAA&age=20'과 같이 쿼리 스트링에서 'name'이나 'age'라는 키를 이용해 값을 얻는 역할을 위해 사용한다.

 - 항상 String이라는 점 , 해당 파라미터가 존재하지 않으면 null 반환

 - 문자열로 반환되기 때문에 숫자를 처리할 때는 예외가 발생할 수 있다.

 

getParameterValues()

 - 동일한 이름의 파라미터가 여러 개 있는 경우에 사용한다. 

 - 예를 들어 name이라는 이름의 파라미터가 여러 개 존재한다면 getParameterValues()를 이용해 String[]타입으로 반환된다.

 

setAttribute()

 - JSP로 전달할 데이터를 추가할 때 사용한다.

 - setAttribute()는 키와 값의 형테로 데이터를 저장할 수 있다. 키는 문자열로 지정하고, 값은 모든 객체 타입을 이용할 수 있다.

 - JSP에는 서블릿에서 setAttribute()로 전달된 데이터를 화면에 출력한다.

 

 

RequestDisspatcher

 - 웹 MVC 구조에서는 HttpServletRequest의 getRequestDispatcher()를 이용해서 RequestDisptacher 타입의 객체를 구할 수 있다.

 - 현재의 요청을 다른 서버의 자원(서블릿/JSP)에게 전달하는 용도로 사용

 - 2개의 메소드가 존재한다. 실제 개발에서는 거의 forward()만 이용된다.

forward() 현재까지의 모든 응답 내용은 무시하고 JSP가 작성하는 내용만을 브라우저로 전달
include() 지금까지 만들어진 응답 내용 + JSP가 만든 내용을 브라우저로 전달

 

 

HttpServletResponse 주요 기능

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

전달 관련 sendRedirect() 브라우저에 이동을 지시

 

HttpServletResponse는 JSP에서 주로 처리되기 ㄸ ㅐ문에 서블릿 내에서 직접 사용되는 일은 많지 않고 주로 sendRedirect()를 이용하는 경우가 많다.

 

sendRedirect()

 - 가장 많이 사용되는 메소드로 브라우저에게 다른 곳으로 가라 는 응답 메시지를 전달한다.

 - HTTP에서 'Location' 이름의 HTTP 헤더로 전달되는데 브라우저는 'Location'이 있는 응답을 받으면 화면을 처리하는 대신에 주소창에 지정된 주소로 이동하고 다시 호출하게 된다.

 - 브라우저의 주소가 아예 변경되기 때문에 사용자의 '새로고침'과 같은 요청을 미리 방지할 수 있고, 특정한 작업이 완전히 끄탄고 새로 시작하는 흐름을 만들 수 있다.

 

 

728x90

관련글 더보기