SOCO
post요청 : 한글 입력 문제 본문
한글출력문제 : 서버에서 클라이언트로 응답할 때 한글이 깨지는 문제
https://ssooccoo.tistory.com/56
서블릿 출력 형식의 이해 : 문서형태지정&한글출력
1. ctrl + F11 2. server 뷰에서 우클릭 restart 후 웹에서 F5 서블릿은 어떻게 출력되고 클라이언트는 어떻게 이해하는가 문제점 1. 브라우저의 자의적 해석 웹은 html 마크업 언어를 통해 랜더링 되어야
ssooccoo.tistory.com
한글입력문제 : 클라이언트에서 서버로 요청할 때 한글이 깨지는 문제
멀티 바이트 문자 전송문제
UTF-8 : 멀티바이트
영문자는 1바이트면 충분
한글은 2바이트임
클라이언트가 UTF-8로 요청하더라도
서버(톰캣)는 ISO-8859-1이라는 인코딩 방식을 이용함
ISO-8859-1은 1바이트를 하나로 인식함
한글은 2바이트를 하나로 인식해야하는데 서버는 그렇게 인식하지 않는 문제가 발생
서버가 한글을 깨진 상태로 인식하게 됨
서버가 깨진 상태로 인식하므로 이를 다시 출력하게 되면 당연히 깨진 상태로 출력됨
해결방법
1. 서블릿 파일에서 설정하는 방법 : request.setCharacterEncoding("UTF-8")
@WebServlet("/notice-reg")
public class NoticeReg extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//request : 입력도구, response : 출력도구
response.setCharacterEncoding("UTF-8"); //출력 시 인코딩 방식 지정
response.setContentType("text/html; charset=UTF-8"); //출력 시 문제 해결
request.setCharacterEncoding("UTF-8"); //입력시 인코딩 방식 지정
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String content = request.getParameter("content");
out.println(title);
out.println(content);
}
}
2. 톰켓 서버 설정을 바꾸는 방법
'백 > Servlet,JSP(잠시 pause)' 카테고리의 다른 글
클래스, 서블릿 클래스 (0) | 2021.07.01 |
---|---|
서블릿 필터 (0) | 2021.07.01 |
입력(요청)할 내용이 많은 경우 : post 요청 (0) | 2021.07.01 |
get요청(쿼리스트링, 사용자 입력을 통한 get요청) (0) | 2021.07.01 |
서블릿 출력 형식의 이해 : 문서형태지정&한글출력 (0) | 2021.07.01 |