개발 (81) 썸네일형 리스트형 톰켓 한글 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=ko4가지 언어로 지원해 주는데 파이선,자바,php,go로 지원해준다.홈페이지에 가면 영어로 설명이 아주 잘 나와있다.그래도 이걸 감수하고 쓸만큼 장점들이 있었다.쓰기 전에는 모르고 쓰다보니깐 톰켓과의 비교점이 있었다.1. 컴퓨터를 켜놓고 있지 않아도 된다.- 컴퓨터를 켜놓고 있지 않아도 구글에서 알아서 서버를 돌려줘서, 서버를 올려 놓기만 한다면 컴퓨터를 꺼도 접근이 .. prepareStatement를 사용하는 이유 3가지,prepareStatement 사용법 2014.04.23. 01:09prepareStatement를 사용하는 이유 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.. 서블릿으로 Dispatchservlet 역할 구현하기-3 (reflection, method, invoke) 요구) 메소드나 클래스 값이 어떤값이 오든 설정파일에 있으면 실시간으로 받아들여서 처리하는 코드와 설정파일 작성. 역할 구현하기-2는 if method.equals('~~~') 이렇게 되있어서 메소드가 추가 될때마다 if문이 들어가야함. 팩토리 패턴을 사용해서 if를 제거할수 있다고 생각 if문을 패턴지향적으로 없앤다면 클래스가 늘어나고 모든 요구사항을 반영하는데 있어서 수정이 불가피함. 디자인 패턴을 사용하는 이유는 얼마나 유연하게 갈것인가 인데 단순히 메소드 하나 호출시켜주고 싶은데 클래스가 많이 늘어나야 할 필요가 없음.두가지의 해결 방법이 있음.1. xml설정해서 매핑으로 해결. (문제점 : 메소드는 자동으로 갈라지게 할수 없음)2. 힌트를 이용해서 해결.(힌트) reflection, met.. 이전 1 ··· 6 7 8 9 10 11 다음