Servlet/Jsp에서 요청 파라미터값을 읽는 방법일반적으로 클라이언트가 HTTP 요청시 넘긴 데이터는 다음과 같이 HttpServletRequest의 request.getParameter(String name) 메서드를 통해 얻습니다. HTTP GET방식 요청이든 POST 방식의 요청이든 param이라는 key에 해당하는 값을 넘겼다면 다음과 같이 값을 읽어올것입니다.String param = request.getParameter("param");톰캣에서의 요청 파라미터 인코딩 설정WAS의 사양이나 버전에 따라서는 getParameter() 사용시 데이터를 읽어오는 인코딩 설정이 달라지게 되는데, 톰캣7을 기준으로 보자면 기본적인 인코딩 설정값으로 ISO-8859-1를 사용하게 됩니다. 따라서 보통 ..
툴 [Tool]
2018. 11. 1. 03:30
[IntelliJ] 인텔리J 한글 인코딩(Encoding) 설정
IntelliJ 한글 인코딩(Encoding) 설정학생이나 초급 개발자일수록 가장 많이 헤매는(일명 삽질) 부분이 인코딩 설정이 아닌가 싶습니다. 특히 웹 어플리케이션을 개발하다 보면 한글이 깨졌을때 IDE(개발 툴) 설정 문제인지 서버(웹 또는 DB서버) 설정 문제인지 등 문제의 원인이 되는 변수들이 많기 때문에 더욱 헤매게 됩니다.그래도 가장 초기에 해야하고 중요하기도 한 개발툴. 그중에서도 IntelliJ의 한글 인코딩 설정을 하는 방법을 써보고자 합니다. IDE 세팅은 개발 장비를 바꾸거나 포맷했을 때 등 정말 가끔씩만 설정을 하기 때문에 기록해두는것이 좋을것 같습니다.1. IntelliJ VM 설정IntelliJ가 실행시 사용할 가상머신의 인코딩 설정을 지정해줍니다. 자신이 IntelliJ를 설..
툴 [Tool]
2018. 10. 31. 23:26
[IntelliJ] 인텔리J 톰캣 한글 깨질 때 한글 인코딩(Encoding) 설정.
IntelliJ에서 Tomcat Encoding 설정인텔리J에서 톰캣 서버의 catalina log에 출력되는 한글이 깨지는것을 발견했습니다.이럴때는 IntelliJ에 설정된 톰캣 서버의 인코딩 설정을 VM 파라미터를 통해 지정할 수 있습니다. 아참! 그 이전에 기본적인 IntelliJ 인코딩 설정들이 되어있는지 확인하시기 바랍니다.→ [IntelliJ] 인텔리J 한글 인코딩(Encoding) 설정방법은 두 가지인데, Run > Edit Configurations...를 통해 접근하거나.Application Servers 탭에서 설정해둔 톰캣서버를 마우스 우클릭하여 Edit Configuration을 선택할수도 있습니다.설정에 들어오면 톰캣을 선택하고 VM options에 -Dfile.encoding=U..
Servlet&Jsp
2018. 9. 11. 10:20
[서블릿/JSP] 쿠키(Cookie)에 한글 데이터 저장하고 가져오기
참고글[서블릿/JSP] Servlet/JSP 환경에서 쿠키(Cookie) 사용 방법[Java] URLEncoder URLDecoder 클래스[서블릿/JSP] 톰캣 쿠키(Cookie)에 한글 저장시 Control character in cookie value or attribute 오류쿠키(Cookie)에 한글 데이터 저장하기쿠키는 ,(콤마), ;(세미콜론), 공백문자를 제외한 ASCII 코드로 구성되기 때문에 값을 저장할시에 한글 사용이 불가능합니다. 만약 한글을 쿠키값으로 생성 후 저장하려고 하면 톰캣의 경우 IllegalArgumentException 예외가 발생하게 됩니다.(쿠키 생성시에는 오류가 발생하지 않습니다. response.addCookie(cookie)를 했을 경우 예외가 발생합니다.)따..
Python
2018. 3. 23. 11:34
[Python] 파이썬 URL Encoding 하는 방법. 한글 인코딩 하기
이전글2018/03/23 - [Root] - [Python] 파이썬 URL 다루는 법 (Python urllib)Python URL 한글 인코딩 방법GET 방식을 통해 HTTP 요청을 하게 되는 파라미터 정보는 경우 URL 뒤에 붙어 전송됩니다.이때 URL은 ASCII 코드값만 사용되는데, 한글은 ASCII 코드로 표현할 수 없으므로 인코딩 해주어야 합니다.urlencode()쿼리스트링 파라미터를 Encoding 하기 위해서는 urlencode() 메서드를 사용합니다.urlparse()에 대해서는 글 위의 이전글 링크를 참고해 주시기 바랍니다.인코딩된 쿼리스트링은 문자열로 반환됩니다. 단 파라미터간의 앞 뒤 순서는 중요하지 않으므로 보장되지 않습니다.from urllib import parseurl = ..
Servlet&Jsp
2018. 2. 11. 16:32
[서블릿/JSP] 웹 환경에서 데이터 인코딩 규칙 및 톰캣 한글 처리
이전글[서블릿/JSP] 한글 깨지는 경우, 한글 인코딩 처리HTTP 요청 방식에 따른 GET과 POST 방식 차이웹 환경에서는 브라우저에서 서버로 요청 파라미터를 전송할 때 크게 GET 방식과 POST 방식 두 가지로 데이터를 전송하게 됩니다.GET 방식의 경우에는 HTTP 메시지 BODY가 없기 때문에 URL 뒤에 ?를 붙이고 그 뒤에 요청 파라미터를 전송하며, POST 방식의 경우 HTTP 메시지 BODY에 요청 데이터를 넣어 전송합니다.URL에는 길이 제한이 있기 때문에 GET 방식의 경우 데이터 전송 시 데이터 길이에 제한이 있으며, (브라우저나 웹 서버에 따라 제한이 없는 경우도 있음) 브라우저 URL 창에 요청 데이터가 노출되는 등의 단점이 있습니다.따라서 중요한 데이터들은 POST 방식으로 ..
Servlet&Jsp
2018. 2. 6. 21:12
[서블릿/JSP] page 디렉티브 사용법 및 속성 설명
page 디렉티브page 디렉티브는 JSP 페이지에 대한 정보를 설정하기 위해 사용됩니다. JSP 인코딩 방식이나 응답 데이터의 인코딩 방식 설정, 출력 버퍼 크기 설정, 에러 페이지 지정 여부 설정 등의 기능이 있습니다. JSP 컨테이너는 JSP 페이지를 Servlet으로 파싱할 때 이러한 page 디렉티브 정보를 참조하게 됩니다.page 디렉티브의 사용 형식은 다음과 같습니다.page 디렉티브 속성 및 설명속성설명기본값importJSP 페이지에서 사용할 클래스를 import할 때 사용합니다.sessionJSP 페이지에서 세션을 사용할지 여부를 결정합니다.truecontentTypeJSP 페이지가 실행된 후 출력될 문서의 MIME-Type과 캐릭터 인코딩을 지정합니다.MIME - text/html / ..
Servlet&Jsp
2018. 2. 6. 08:00
[서블릿/JSP] JSP pageEncoding 속성에 대하여
pageEncoding 속성JSP page 디렉티브의 속성 중 pageEncoding 속성이 있습니다.이 속성은 JSP 소스 파일이 저장될 시 사용될 인코딩을 지정하며 JSP 컨테이너는 JSP를 Servlet으로 파싱하는 과정에서 분석을 하게 되는데, 이 때 어떤 인코딩을 통해 작성했는지 검사하고 해당 캐릭터 셋을 이용하여 JSP 페이지의 소스를 읽어 들여 파싱합니다.당연히 잘못된 pageEncoding 값이 사용되는 경우 JSP 페이지에서 사용되는 일부 문자열들이 깨질 수 있습니다.JSP 스펙에는 컨테이너가 JSP 페이지를 읽어들이는 과정을 다음과 같이 설명하고 있습니다.파일이 BOM으로 시작하는 경우파일의 BOM을 이용해서 인코딩을 판단하고, 해당 인코딩을 이용하여 JSP 페이지를 읽어 들입니다.이후..
Servlet&Jsp
2018. 2. 6. 02:30
[서블릿/JSP] 이클립스 JSP 페이지 소스 저장시 인코딩 설정으로 인해 저장 안되는 문제
JSP 페이지 인코딩 문제로 저장 안되는 오류JSP 페이지 작성시 다음과 같은 오류를 마주할 때가 있습니다. 다음의 오류는 간단히 설명해서 JSP 페이지에 한글이 입력된 경우 page 인코딩 설정을 한글이 지원되지 않는 ISO-8859-1 방식으로 저장할 수 없다는 뜻입니다. 이러한 겨우 한글을 페이지에서 빼주든지 pageEncoding 값을 EUC-KR 또는 UTF-8 등의 한글이 지원되는 인코딩으로 바꿔 주어야 합니다.Save could not be completed. Try File > Save As... if the problem persists.Reason:Some characters cannot be mapped using "ISO-8859-1" character encoding.Either ..
Spring Framework
2018. 1. 22. 21:11
[스프링 프레임워크] CharacterEncodingFilter를 통한 UTF-8 한글 인코딩 처리
스프링 인코딩 처리스프링은 웹 요청과 응답에 대한 인코딩 처리를 위해 CharacterEncodingFilter를 제공합니다. 인코딩 필터의 경우 모든 프로젝트에서 사용 가능한 공통적인 기능이므로 스프링프레임워크 측에서 번거로움을 피하기 위해 제공하는 것 같습니다.CharacterEncodingFilter 클래스는 Servlet 표준 스펙인 javax.servlet.Filter 인터페이스를 구현한 클래스이기 때문에 기존의 Servlet, JSP에서 사용하던 필터와 똑같이 사용 가능합니다.web.xml을 통해 필터를 설정하는 경우다음과 같이 사용 가능합니다. CharacterEncodingFilter를 필터로 등록해두고 의 encoding 속성을 통해 인코딩 방식을 설정해줄 수 있습니다.또한 을 통해 어느..