<< 학습 목표 >>
1. 클라이언트가 보낸 데이터를 서버에서 그대로 꺼낼 수 있다.
우리는 지금까지 서버로 데이터를 보낼 때 영문, 숫자만 보내봤음
클라이언트가 한글 데이터를 서버로 보냈고 서버가 한글 데이터를 꺼내려면 한가지 처리가 필요함
클라이언트가 한글 데이터를 보내도록 웹 페이지를 만들어보자
webapp 안에 chapter03 안에 join.html 을 만들고 아래 코드를 입력하자
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입 페이지</title>
</head>
<body>
<form action="http://localhost:8080/studyProject/chapter03/join" method="POST">
<fieldset>
아이디: <input type="text" name="id">
</fieldset>
<fieldset>
비밀번호: <input type="password" name="pw">
</fieldset>
<fieldset>
이름: <input type="text" name="name">
</fieldset>
<fieldset>
성별:
<label><input type="radio" name="gender" value="male">남자</label>
<label><input type="radio" name="gender" value="female">여자</label>
</fieldset>
<fieldset>
취미:
<label><input type="checkbox" name="fav" value="exercise">운동</label>
<label><input type="checkbox" name="fav" value="book">책읽기</label>
<label><input type="checkbox" name="fav" value="game">게임</label>
</fieldset>
<fieldset>
<input type="submit" value="회원가입">
</fieldset>
</form>
</body>
</html>
이 페이지는 회원 가입 페이지로 아이디, 비밀번호, 성별, 취미 데이터는 영문이지만 이름은 한글 데이터로 보낼 예정
우선 회원 가입 요청을 받을 서블릿을 추가하자
chapter03 패키지 내 join 서블릿을 추가하고 아래와 같이 코드 입력
package chapter03;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/chapter03/join")
public class Join extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String[] fav = request.getParameterValues("fav");
System.out.println("클라이언트가 보낸 id => " + id);
System.out.println("클라이언트가 보낸 pw => " + pw);
System.out.println("클라이언트가 보낸 name => " + name);
System.out.println("클라이언트가 보낸 gender => " + gender);
System.out.println("클라이언트가 보낸 fav => " + Arrays.toString(fav));
}
}
이제 회원 가입 페이지에서 아래와 같은 형식으로 데이터를 입력해 [ 회원 가입 ] 버튼을 눌러보자

다른 데이터들은 클라이언트가 보낸 그대로 꺼내졌지만 이름만 클라이언트가 보낸것과 다르게 꺼내졌음

클라이언트가 한글 데이터를 보냈을 때는 서버에서 데이터를 꺼내기 전 반드시 다음과 같은 코드(1)를 써줘야함

이는 클라이언트가 보낸 데이터를 UTF-8 방식으로 인코딩하겠다는 것
인코딩에 대해서 알아보고 이해하고 나면 더 머리만 복잡해지므로 클라이언트가 보내는 데이터에 한글이 하나라도 있다면 무조건 request.setCharacterEncoding("UTF-8") 로 하자 라고 생각하면 됨
여기까지! 서버가 한글 데이터를 받는 방법 끝!
728x90
LIST
'Servlet + JSP > Serlvet-Chapter03' 카테고리의 다른 글
| Chapter03. GET, POST 언제써야할까? (0) | 2023.02.28 |
|---|---|
| Chapter03. 웹 페이지의 URL을 조금이라도 줄여보자 (0) | 2023.02.28 |
| Chapter03. 클라이언트가 보낸 값이 없다면? ( 서버의 유효성 검증 ) (0) | 2023.02.27 |
| Chapter03. 클라이언트가 보낸 값 꺼내기 (0) | 2023.02.27 |
| Chapter03. 요청 방식에 따른 서블릿 호출 (0) | 2023.02.27 |