프로그래밍을 하다 보면 영어로 만드는 경우는 문제가 없는데, 한글로 데이터가 전송 되거나 하는 과정에서 한글이 자주 깨지는 현상이 발생한다.
이런 경우에는 아래와 같이 처리하면 된다.
1. 파일의 인코딩 속성을 "UTF-8"으로 변경
2. response.setContentType("text/html;charset=UTF-8");
예시를 통해 세팅하는 방법을 보면 쉽게 한글 깨짐을 해결 할 수 있다.
영어로 hello 서블릿으로 출력( 한글 깨짐 )
- 만약 아래 코드 hello 라는 문자열을 한글 안녕으로 바꾸면 아래와 같이 깨져서 보여진다.
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 HelloWorld
*/
@WebServlet("/hello.do")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloWorld() {
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
// 사용자 브라우저에 출력하기 위한 stream을 가져온다.
PrintWriter out = response.getWriter();
//<h1>태그를 이용한 hello를 오픈한다.
out.print("<h1>");
out.print("hello");
out.print("</h1>");
//stream은 닫아 준다.
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
서블릿 한글 깨짐 해결 방법
- 그럴 때는 해당 파일의 인코딩 속성을 변경해 주고, response 세팅을 해주면 된다.
- response.setContentType("text/html;charset=UTF-8");
ㅇ 해당 java 파일에서 properties 클릭
ㅇ Resource에서 encoding을 default가 아닌 Other 클릭 후 "UTF-8"으로 변경
서블릿 한글 깨짐 해결
- response로 값을 받기 전에 아래와 같이 세팅 문장 추가 하기
- response.setContentType("text/html;charset=UTF-8");
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 HelloWorld
*/
@WebServlet("/hello.do")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloWorld() {
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.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("<h1>");
out.print("안녕하세요!");
out.print("</h1>");
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
반응형
'Java | spring > JSP | MVC 패턴' 카테고리의 다른 글
모든 요청을 파악하는 front Controller (0) | 2019.05.18 |
---|---|
JSP, MVC 패턴이 무엇인가? (0) | 2019.05.18 |
JSP filter 흐름제어( + 로그인 유지 ex ) (0) | 2019.05.18 |
JSP session, 사용자 상태유지( 로그인 유지 ) (0) | 2019.05.18 |
JSP 문장 구성요소( 지시자, 스크립트릿, 표현식 등) (0) | 2019.05.18 |
댓글