[Web] HttpServletResponse를 이용하기

2024. 8. 6. 15:19자바 웹 개발/서블릿 기초

아래는 기존의 로그인창이다. action="login2"만 변경하였다. 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>로그인 창</title>
</head>
<body>
    <form name="frmLogin" method="get" action="login2" enctype="UTF-8">
        아이디 : <input type="text" name="user_id"><br>
        비밀번호 : <input type="password" name="user_pw"><br>
        <input type="submit" value="로그인"><input type="reset" value="다시입력">
    </form>
</body>
</html>

서블릿이 클라이언트에게 응답하기 위해서는 다음 과정을 거친다. 

 

1. setContentType()을 이용해서 MIME-TYPE을 지정한다. 

2. 데이터를 출력할 PrintWriter 객체를 생성한다. 

3. 출력 데이터를 HTML 형식으로 만든다. 

4. PrintWriter의 print()와 println()을 이용하여 데이터를 출력한다. 

 

@WebServlet("/login2")
public class LoginServlet2 extends HttpServlet {
  @Override
  public void init() throws ServletException {
    System.out.println("init 메서드 호출");
  }

  @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    String id = request.getParameter("user_id");
    String pw = request.getParameter("user_pw");

    String data = "<html>";
    data += "<body>";
    data += "<p>아이디 : " + id;
    data += "</p>";
    data += "<p>패스워드 : " + pw;
    data += "</p>";
    data += "</body>";
    data += "</html>";

    out.print(data);
  }

  @Override
  public void destroy() {
    System.out.println("destroy 메서드 호출");
  }
}

 

-HttpServletResonse response

응답은 HttpServletResponse 객체를 이용한다. 

 

-request.setCharacterEncoding("utf-8")

웹 브라우저에서 전송된 데이터의 인코딩을 설정한다. 

 

-response.setContentType("text/html;charset=utf-8")

setContentType()을 이용해 응답할 데이터 종류가 HTML임을 설정한다. 

 

-PrintWriter out = response.getWriter()

HttpServletResponse 객체의 getWriter()을 이용하여 출력 스트림 PrintWriter 객체를 받아온다. 

 

입력 시 HTML에 따라 다음과 같이 출력된다.