본문 바로가기

개발

(82)
웹페이지 한글 출력,servlet 한글 출력,물음표 표시 해결, 웹 브라우져에 따른 파라미터 처리,오라클 케릭터셋-2 2014.04.27. 22:52 장장 4일에 걸쳐서 안되던게 이제서 해결이 됬다.. 웹 프로그래밍을 하면 참 할게 많구나 하는 생각이 든다. 내가 맡은 역활은 서버단을 구축하는건데 데이터 - 서버(가공) - 디비(추출) - 서버(가공) - 웹 여기서 (서버-디비-서버)를 맡았다. 하다보니 안되는 부분이 있었는데 한글로 출력하는 부분이었다. 일단 데이터를 받는 부분 부터 웹브라우져의 인코딩, 서블릿 소스의 인코딩, ​​디비와 인코딩 등 여러 인코딩 상황에 있었는데 하나만 해결해자라는​생각 때문에 나중보니 어디서 부터 수정해야할지 감이 안잡혀서​다시 이걸 다 고치는데 힘들었다............​ 일단 브라우져마다 인코딩이 다른것은 1편에서 언급했고, 톰켓은 두가지​방법을 이용해서 get방식으로 전달된 파..
톰켓 한글 setCharacterEncoding 안되는 이유, jsp,servlet 한글 인코딩 문제, 웹 브라우져에 따른 파라미터 처리방식-1 2014.04.27. 03:48이전에 한글이 콘솔창에 출력이 안되서 글을 썻는데 그것도 안되는 문제가 발생해서 자세하게 공부하고 해결 방법을 찾으려함. String name = request.getParameter("name");request.setCharacterEncoding("euc-kr");String address = rquest.getParameter("address"); 이런 코드가 있을때 파라미터로 name을 받고 케릭터 셋을 euc-kr로 하는것이 아니라 케리터 셋을 지정하기 전에 파라미터 값이 사용되면 모든 파라미터값이 기본 캐릭터 셋을 이용해서 디코딩된다. 따라서 위 코드는 name파라미터와 address파라미터 모두 기본 인코딩 설정인 iso-8859-1을 이용해서 디코딩 된다. s..
Google app engine 사용하기,log4j gae 사용. 2014.04.26. 20:21 얼마전 오픈소스로 멀 만들어 보기 위해서 개발환경을 설정하려고 하는데​친구가 구글에서 나온 google app engine을 써보라고 추천해줬다.​gae는 죄다 영어다... 영어 울렁증...​​공식홈페이지 - https://developers.google.com/appengine/?hl=ko​​4가지 언어로 지원해 주는데 파이선,자바,php,go로 지원해준다.​홈페이지에 가면 영어로 설명이 아주 잘 나와있다.​​​​그래도 이걸 감수하고 쓸만큼 장점들이 있었다.​쓰기 전에는 모르고 쓰다보니깐 톰켓과의 비교점이 있었다.​​1. 컴퓨터를 켜놓고 있지 않아도 된다.​- 컴퓨터를 켜놓고 있지 않아도 구글에서 알아서 서버를 돌려줘서, 서버를 올려 놓기만 한다면 컴퓨터를 꺼도 접근이 ..
​prepareStatement를 사용하는 이유 3가지,​prepareStatement 사용법 2014.04.23. 01:09​prepareStatement를 사용하는 이유 3가지​1. 반복해서 실행되는 동일 퀴리의 속도를 증가시키기 위해​prepareStatement() 메소드를 호출하면 DBMS는 미리 SQL 쿼리를 분석해 놓는다 그래서 메서드를 실행할 때에는 곧바로 쿼리를 실행하게 된다. prepareStatement를 사용할때 똑같은 쿼리에서 값만 바꿔준다면 한번의 퀴리 분석과 3번의 실행이 발생한다. 분석을 반복하지 않아서 쿼리 실행 속도가 빠르다.​​​2. 간결한 코드를 위해​statment를 사용하면 따옴표가 복잡하게 얽혀 있는 퀴리를 보낼시 오류가 발생할 가능성이 있지만 prepareStatement를 사용하면 비교적 쉽게 수정할수 있고 가독성이 좋아진다.​​3. 값 변환을 자동으로..
jsp,servlet 한글 인코딩 문제,request.getCharacterEncoding, uri 한글 깨질때 해결법 2014.04.23. 00:40 uri 파라미터를 한글로 받고 싶을때 안받아진다.​톰켓 서버에서 URIEncoding을 한글로 바꿔도 안된다.​request.setCharacterEncoding("euc-kr");로 해서 request.getCharacterEncoding으로 하면한글로 설정됬다고 나오는데 정작 uri에서 파라미터로 입력한 한글은 깨짐.​찾아보니 new String(request.getParameter(파라미터).getBytes("8859_1"),"euc-kr");​이걸로 하니깐 된다. 봤더니 깨져서 넘어오건 멀쩡하게 넘어오건 일단 byte형태로 받고 그걸 euc-kr로 다시 인코딩 한다. json을 파싱할때도 그렇고 자료구조형으로 둘러 싸여서 일일히 받기 힘들거나 이번처럼 케릭터셋이 안..
서블릿으로 Dispatchservlet 역할 구현하기-6 NameInfo.xml- - - ---------------------------------------------------------​DispatcherServlet.java 소스의 일부 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String controllerName; String method; String check; check = request.getRequestURI(); check = getClassDoName(check); mMap = getXMLClassNameMap(mRot.getMappings(),check); contro..
서블릿으로 Dispatchservlet 역할 구현하기-5 요구) 어떤 개발자는 member.do를 호출하면 MemberController가 아니고 UserController라고 네이밍함. 메소드는 이름이 다르지만 url규칙은 바뀔수 없음.​이때 if else로 ​하려고 생각했으나 클래스가 많을때 그것을 다 if else로 바꿀수 없음.​​해결 방법 : 문서를 만들어서 저기에 알맞는 설정을 한 후 파서를 사용한다.​​~~~~~~~~~~~~~~~~~~~~~~~~~~~~​HashMap CheckName(String controllerName,String method,String check){ HashMap map = new HashMap(); HashMap result = new HashMap(); String name; name = check.substring(c..
서블릿으로 Dispatchservlet 역할 구현하기-4(reflection) Servlet.java~~~~~ String method = request.getParameter("method"); String check = request.getRequestURI(); //Reflection RF = new Reflection(method); try { Class cls = Class.forName("choice"); //리플렉션 할 클래스 choice c = new choice(check,method); // Field fld = cls.getField("method"); //불러오고 싶은값 System.out.println(c.method + "메소드 호출됨"); }~~~~~ choice.java import java.io.PrintWriter; public class choic..