백엔드/웹개발

[이클립스/웹개발] 서블릿 응답 처리

김곰댕 2022. 2. 18. 17:00
728x90

서블릿이 처리한 결과를 클라이언트에게 응답하는 기능에 대해 실습해보자.

서블릿에서 응답을 처리하는 방법은 다음과 같다.

  1. doGet()이나 doPost() 메서드 안에서 처리한다.
  2. javax.servlet.http/HttpServletResponse 객체를 이용한다.
  3. setContentType()을 이용해 클라이언트에게 전송할 데이터 종류(MIME-TYPE)를 지정한다.
  4. 클라이언트(웹 브라우저)와 서블릿의 통신은 자바 I/O의 스트림을 이용한다.

1. New -> Package로 패키지 생성

2. 패키지의 이름을 설정한 후 Finish

3. 아래와 같이 패키지가 생성된 것을 확인가능

4. New -> Servlet으로 패키지안에 서블릿 생성

5. Class이름 설정 후 Next

6. 매핑 진행 후 Next

7. Get방식을 사용할 것이기 때문에 아래와 같이 체크 후 Finish

8. login.html에 아래와 같은 코드 입력

<!DOCTYPE html>
<html>
<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>
9. 만들어둔 서블릿클래스에 아래와 같은 내용 입력

package sec02.ex01;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/login2")
public class LoginServlet2 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void init(ServletConfig config) throws ServletException {
		System.out.println("init 메서드 호출");
	}

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

	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 += "아이디 : " + id;
		data += "<br>";
		data += "비밀번호 : " + pw;
		data += "</body>";
		data += "</html>";
		out.print(data);
	}
}
10. 홈페이지 주소창에 IP주소:포트번호/프로젝트이름/매핑이름 입력 후 엔터
아래의 텍스트 박스에 값을 넣은 후 로그인 클릭

11. 서블릿이 ID와 비밀번호를 전달받아 다시 브라우저로 출력

728x90