HttpServletRequst와 HttpServletResponse

2020. 11. 1. 21:49·Web

HttpServletRequest는 URL정보, 쿠키, 헤더, GET/POST로 전송한 값을 가져오는데 사용됩니다.

 

클라이언트로부터 요청이 들어오면 WAS (Web Application Server)는 HttpServletRequest, HttpServletResponse 객체를 생성하고, 요청정보에 있는 패스로 매핑된 서블릿에게 전달합니다.

이렇게 전달받은 내용들을 파라미터로 doGet, doPost등에 전달됩니다.

 

<form action="login" method="post">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" value="login">
    <span class="error">${error}</span>
</form>
@WebServlet("/login")
public class LoginServlet extends HttpServlet {

    @EJB
    private UserService userService;

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = userService.find(username, password);

        if (user != null) {
            request.getSession().setAttribute("user", user);
            response.sendRedirect("home");
        }
        else {
            request.setAttribute("error", "Unknown user, please try again");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
    }

}

 

WAS는 웹 브라우저로부터 Servlet요청을 받으면 요청할 때 가지고 있는 정보를 HttpServletRequest객체를 생성하여 저장합니다. 또한 웹 브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServletResponse객체를 생성합니다.

생성된 HttpServletRequest와 HttpServletResponse객체를 서블릿에게 전달합니다.

 

HttpServletRequest

- http프로토콜의 request정보를 서블릿에게 전달하기 위한 목적으로 사용합니다.

- 헤더정보, 파라미터, 쿠키, url 또는 uri 등의 정보를 가지고있습니다.

- Spring에서는 @RequestBody를 통해 쉽게읽을 수 있지만 getBody를 통해 body의 스트림을 읽어 올 수 있습니다.

 

HttpServletResponse

- WAS는 요청한 클라이언트에게 응답을 보내기 위한 HttpServletResponse객체를 생성하여 서블릿에게 전달합니다.

- 서블릿은 해당 객체를 이용하여 content type, 응답코드, 응답 메시지 등을 전송합니다.

 

'Web' 카테고리의 다른 글

JPA 기본키 생성 전략  (0) 2021.10.31
아파치와 톰캣의 차이  (0) 2020.11.01
프록시x게이트웨이x터널  (0) 2020.09.25
상태코드 간략한 정리  (0) 2020.09.24
Request와 Response의 구성  (0) 2020.09.23
'Web' 카테고리의 다른 글
  • JPA 기본키 생성 전략
  • 아파치와 톰캣의 차이
  • 프록시x게이트웨이x터널
  • 상태코드 간략한 정리
마술사의 수습생
마술사의 수습생
언젠간 당신처럼 되고 싶어요.
  • 마술사의 수습생
    개발 기록 블로그
    마술사의 수습생
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Web (50)
      • 일기 (2)
      • 잡담 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
마술사의 수습생
HttpServletRequst와 HttpServletResponse
상단으로

티스토리툴바