보통 request.getParameter()로 반환된 값의 캐릭터셋은 8859_1이다. 만약 한글이라면 페이지에 표시해 줄때 깨진 글자 가 나올것이다. 이때 (1) request의 캐릿터셋을 EUC-KR로 변환해 주거나 (2) request.getParameter()로 반환된 String 을 getBytes("8859_1")로 변환후 새로운 String 객체를 만드면 된다.(단, 반환된 값이 null 이 아닌경우.) (1)의 예 : request.setCharacterEncoding("EUC-KR") (2)의 예 : new String( request.getParameter("name").getBytes("8859_1"), "EUC-KR") 하지만 이렇게 해도 한글은 제대로 표시가 안될 것이다. 왜나면..
응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(Method Area, 호출스택, Heap)에 대해서 알아보도록 하자. [참고] cv는 클래스변수, lv는 지역변수, iv는 인스턴스변수를 뜻한다. 1. 메소드영역(Method Area)- 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이타)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(Heap)- 인스턴스가 생성되는 공간. 프로그램 실행 중 ..
◆ Stack top bottom stack 은 주로 배열을 이용하여 구현하며 , top에서 모든 입출력 즉 put 과 pop 등이 일어나는 구조이죠. put은 자료를 집어넣는 것이고 pop은 자료를 가져오고 그걸 지워주는 역할인 것 아시죠? 흔히들 스택을 가지고 후입선출(LIFO:Last Input First Output)방식이라고 하는데.. 나중에 들어온 값을 먼저 꺼낸다.? 뭔가 상식적으로는 맞지 않죠? 맞습니다. 하지만 특별한 경우에 이 방식을 이용하면 아주 쉽게 문제를 해결할수 있습니다. 그 예로는 공학계산기 인데.. 단순한 사칙연산 계산기가 아니라. 43^3-5+64*6+34 와 같이 사용자가 수식을 쭉 적은다음에 ‘계산’이라는 버튼을 눌렀을 경우 프로그램이 알아서 연산자 우선순위를 따져서 계..