get방식으로 script에서 loaction.replace나 location.href를 해주면 한글이 깨질 수 있다. 아래와 같이 해결해보도록 하자!
GET 의 경우
1. Server 에서의 server.xml파일 설정하여 해결하기
Tomcat의 server.xml에 URIEncoding 옵션을 추가해 준다.
아파치를 연동하여 AJP를 사용할 경우 AJP connector에도 해당 옵션을 추가해 준다.
1 2 |
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" /> |
<Connector /> 탭안에 URIEncoding="UTF-8" 코드를 추가해준다.
이 역할은 URI가 넘어갈 때 기본인코딩을 설정해준다. 위와 같이 설정하면 따로 인코딩과 디코딩을하지 않아도 된다. (아직까지는..
)
2. 인코딩해서 보내고 디코딩해서 받기
<javaScript> 인코딩
1 2 3 4 5 6 7 |
$(document).on('click', ".b", function() {
var disease= $(this).attr('value'); var ds = encodeURI(disease); location.replace('diseaseForm.ys?'+'disease='+encodeURI(ds,"UTF-8"));
}); |
먼저, 값을 encodeURI(값) 해주고 보낼 때 한번더 그 값을 encodeURI (ds,"UTF-8")해주어야 디코딩에서 잘 받을 수 있다.. 두번을 해줘야함 왜그러는지는 나중에 찾아보도록 하자.
<JAVA> 디코딩 받을 때
1 2 |
String name = java.net.URLDecoder.decode (request.getParameter("disease"), "UTF-8"); |
디코딩해서 받아주면 됨
POST 의 경우
JSP 페이지 상단에 request.setCharacterEncoding 을 명시한다.
1 2 3 4 5 6 7 8 |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="java.util.*"%> <%
request.setCharacterEncoding("UTF-8");
%> |
'Java > JSP' 카테고리의 다른 글
JSTL 사용하기와-주의사항 (0) | 2019.09.10 |
---|---|
[JSP] 서블릿(Servlet)이란? (0) | 2019.09.09 |
ajax 200에러 뜰 때 해결 방법 (0) | 2019.09.06 |
[JSP]for input String 에러 처리 방법 (0) | 2019.09.06 |
jsp form post 전송 시 한글 깨지는 현상 해결법 (0) | 2019.09.06 |