728x90
톰캣서버의 default 문자 처리 방식은 ISO-8859-1 방식이다. [유니코드를 지원하는 방식]
request로 받을때 값을 euc-kr로 받으면 안된다. 별도의 작업이 필요
개발자는 별도의 한글인코딩을 하지 않으면 한글이 깨질 수 있음
get 방식 post 방식 한글처리가 다르다.
get 방식 - Server/톰켓서버 폴더내의 server.xml에서 <connector> URIEncoding ="EUC-KR" 삽입해야함
post 방식 - 한글처리는 doPost메소드 내에서 설정한다.
request.setCharacterEncoding("EUC-KR");
[한글처리까지 완료]
[ 한글받아와서 화면에 출력까지의 과정 ]
입력된 데이터를
폼에서 입력된 데이터값을 서블릿 이 resquest를 통해 인코딩을해옴 euc-kr형태로 데이터 값을 받아와서
받아온 값을 response 객체를 통해서, PrintWriter (출력스트림)을 통해 --> HTML 에 뿌려줌 그 값이 브라우저에 보임
클라이언트가 요청 서블릿
resquest
Web ----------> 서블릿
Browscr <----------
response
package com.test.ex;
import java.io.IOException;
import java.io.PrintWriter;
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;
/**
* Servlet implementation class FormDemo_01
*/
@WebServlet("/FormD_01")
public class FormDemo_01 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FormDemo_01() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost");
request.setCharacterEncoding("EUC-KR");
String name = request.getParameter("name");
String id = request.getParameter("id");
String pass = request.getParameter("pw");
String[] hobbys = request.getParameterValues("hobby");
String sex = request.getParameter("gender");
String local = request.getParameter("local");
response.setContentType("text/html; charset=euc-kr");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head></head>");
out.println("<body>");
out.println("이름: " +name+ "<br/>");
out.println("아이디: " +id+ "<br/>");
out.println("비밀번호: " +pass+ "<br/>");
out.println("취미: " +Arrays.toString(hobbys)+ "<br/>");
out.println("성별: " +sex+ "<br/>");
out.println("지역: " +local+ "<br/>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>서블릿폼</title>
</head>
<body>
<form action="FormD_01" method="post">
Name : <input type = "text" name="name" size ="15"/><br/>
ID : <input type = "text" name="id" size ="15"/><br/>
Password : <input type = "password" name="pw" size="15"/><br/>
취미 <input type="checkbox" name="hobby" value = "sports" />스포츠
<input type="checkbox" name="hobby" value = "tour" />여행
<input type="checkbox" name="hobby" value = "movie" />영화
<input type="checkbox" name="hobby" value = "hiking" />등산<br/>
성별 :<input type="radio" name="gender" value = "man" />남성
<input type="radio" name="gender" value = "woman" />여성<br/>
<select name ="local">
<option value="seoul">서울</option>
<option value="Kwang">광주</option>
<option value="busan">부산</option>
<option value="kang">강릉</option>
</select><br/>
<br/><br/><br/>
<input type="submit" value="전송"/><input type="reset" value="초기화">
</form>
</body>
</html>
728x90
'Web > Spring , Springboot , JPA' 카테고리의 다른 글
[JSP. Servlet] JSP 지시자 종류 [page, include, taglib ] (0) | 2019.12.22 |
---|---|
[JSP. Servlet] #8 (0) | 2019.12.05 |
[JSP. Servlet] #6 servlet 선 ,후처리 init() - service() - destroy() (0) | 2019.12.05 |
[JSP. Servlet] #5 Sevlet의 동작순서 (0) | 2019.12.05 |
[JSP. Servlet] #4 Get , Post (0) | 2019.12.05 |