본문 바로가기

Dev.../플밍 관련 자료

[펌] 자바 관련 여러가지...

April 28, 2004

Spring FrameWork

요즘 Spring Framework이 뜨는지 여기저기서 Spring + Hibernate , Struts + Spring + Hibernate의 기사를 보게 된다.

스트러츠를 사용하는 사람들은 한번쯤 고민해 봤을꺼 같은데 비지니스 로직을 구현하기가 쪼끔 애매하다.( 물론 개인적인 내공 부족이 원인이겠지만... ) Action 클래스에 넣자니 그렇고 그렇다고 로직 클래스를 따로 만들자니 왠지 귀찮고.. 여태는 주로 Action에서 바로 DAO를 호출해버렸다. 고민만 하고 해결방법은 생각지도 않던 찰나 OnJava.net에 뜬 아티클 Wiring Your Web Application with Open Source Java
이걸 본 순간 "그래 내가 원하던게 바로 이거야!" 라는 느낌이 들었다.
특히 다음 그림을 본다면 더욱 쉽게 감이 올 것이다.

스트러츠와 하이버네이트 사이에서 스프링이 로직을 담당하는 형태이다.

그래서 스프링을 공부하려고 일단 프린트 해 놓고... 잠시 뒤로 미뤄두고 있던 중
IBM 사이트에 제목 : Object-relation mapping without the container
부제 : Develop a transactional persistence layer using Hibernate and Spring 아티클 등장.. 스프링의 대세인건가...

프린트 해서 공부를 시작했더니 당장 막히는게 IoC 가 어쩌고 저쩌고..
IoC가 먼데.. 하고 찾아봤더니 마틴파울러 홈에 있는 기사 Inversion of Control Containers and the Dependency Injection pattern 또 다시 즐겨찾기 추가..

순서대로 봐야 할텐데.. 흠..
휴가도 받았고.. 천천히 즐기면서 공부해 봅시다.

Posted by redwolf at 12:11 AM | Comments (0) | TrackBack

January 06, 2004

Hello Your Name

Jania 님 홈피에서 본 내용
간단히 한 라인을 입력으로 받아 이를 출력해주는 프로그램을 각 언어별로 구현 비교

이름을 입력 받아서 인사를 하는 프로그램을 출력할 것
예:
 Enter your name: Jania  Hello, Jania! 

Java
 import java.io.BufferedReader;  import java.io.IOException;  import java.io.InputStreamReader;   public class Main {    public static void main(String[] args) throws IOException {      System.out.print("Enter your name: ");      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));      System.out.println("Hello, " + br.readLine() + "!");    }  } 

Haskell
 putStr "Enter your name: "  name <- getLine  putStrLn ("Hello, " ++ name ++ "!") 

Ruby
 puts "Enter your name: "  puts "Hello, #{gets}!" 

Python
 import sys   print "Enter your name: "  name = sys.stdin.readline()  print "Hello, " + name + "!" 
Posted by redwolf at 10:28 PM | Comments (4) | TrackBack

Oracle CLOB TEXT 검색

많은 사람들이 사용하는 오라클이지만
가장 짜증나는건 varchar2 가 4000 바이트 밖에 지원되지 않아
많은 양의 텍스트를 넣으려면 CLOB 타입을 사용할 수 밖에 없다는 점이다.

CLOB을 읽거나 쓸려면 특별한 처리를 해줘야 하고
검색 조차도 특별한 쿼리를 사용해야 한다.

그러나 이제 9iR2(9.2.x) 부터는 CLOB 컬럼에 대해 like 검색이 가능하다

기뿌다 ㅠ.ㅠ
다들 테스트 해 보시라...

Posted by redwolf at 05:05 PM | Comments (3) | TrackBack

December 13, 2003

Weblogic 에서 Transaction 사용하기

현재 진행중인 프로젝트에 하이버네이트를 포기하면서 곽아저씨가 만든 DB 프레임웍을 다시 사용하기로 마음 먹었다. 그러나 곽 아저씨 프레임웍의 문제는 EJB를 기반으로 했기 때문에 트랜잭션 처리가 되지 않는다. 그래서 어쩔까 고민하던 중...

WAS가 웹로직 이므로 웹로직이 제공해주는 트랜잭션을 이용하기로 했다. 간단히 테스트 해 봤는데 아무 문제가 없는거 같다. 제대로 롤백이 된다.

다음은 웹로직에서 UserTransaction 사용하기 코드이다.

// 트랜잭션 얻어오기InitialContext ctx = new InitialContext();UserTransaction tx =     (UserTransaction)ctx.lookup("javax.transaction.UserTransaction");// 트랜잭션 시작tx.begin();

// 성공이면
tx.commit();
// 익셉션이 발생한다면
tx.rollback();

이런식으로 사용해도 아무 문제가 없는건가? --;;

Posted by redwolf at 07:21 PM | Comments (2) | TrackBack

December 12, 2003

Hibernate 2.1 Final Release

하이버네이트 2.1이 릴리즈 됐습니다.
자세한 사항은 웹페이지로...

Posted by redwolf at 12:04 PM | Comments (0) | TrackBack

December 10, 2003

MT Template Tag 메뉴얼

MT Template Tag 를 번역해 놓으신 분이 계시네요
여자친구를 위해 번역했다는데...
남자를 움직이는건 여자인건가요 -.-;;
어쨋든 잘 쓰겠습니다.. 스페셜 땡스~

Posted by redwolf at 11:10 AM | Comments (1) | TrackBack

December 07, 2003

Hibernate Tip #1

Hibernate를 프로젝트에서 사용하려고 하는 중이다.
당장 게시판을 만들어야 하는데 update를 하이버네이트로 어떻게 처리해야 할까 생각중이었다.
검색을 통해 알아본 바로는
1. session.connection() 하면 직접 Connection을 얻을 수 있다.
이 커넥션을 이용해서 직접 JDBC 프로그래밍을 하는 방법이 있다.
2. Batcher를 이용해서 배치를 돌리는 방법
2번은 확실히는 잘 모르겠지만 써 먹을 수 있지 않을까 싶다.

PS - 내가 하이버네이트를 너무 우습게 보고 준비없이 적용하려고 하는거 같아 두렵다.

Posted by redwolf at 11:03 PM | Comments (2) | TrackBack

November 26, 2003

답변형 게시판 구현 원리

요기를 누르세요

출처 수리바다닷컴

Posted by redwolf at 04:01 PM | Comments (2) | TrackBack

November 24, 2003

Struts 사용시 서버 재시작 줄이기

스트러츠를 사용해서 웹어플리케이션을 개발하는 경우 한가지 귀찮은 점은 Action 클래스나 ActionForm 클래스를 새로 작성해서 struts-config.xml 파일이 변경된 경우 WAS를 재시작해야 한다는 점이다. struts-config.xml은 서버가 시작할 때 읽어 들인 후 메모리에 저장해두고 사용하기 때문에 서버를 새로 시작하지 않는다면 변경사항이 반영되지 않는다.
스트러츠 프레임워크 워크북이라는 자바지기 사이트 주인 박재성씨가 쓰신 책에 이 내용이 나오길래 여기에 올려둔다. ( 올려도 될려나 --;; 음 )

소스코드를 다 올리긴 그렇고 간단히 적어 보자면
1. 우선 ActionServlet을 상속받은 서블릿을 하나 만든다.
2. 특정 URL을 호출한 경우 struts-config.xml을 새로 읽어들이도록 한다.
여기서는 reload.do를 호출한 경우 xml 파일을 새로 읽어들이도록 했다.
struts-config.xml을 리로드 하려면 다음 순서대로 함수를 호출한다.

RequestUtils.selectModule( request , getServletContext() );
ModuleConfig config = getModuleConfig( request );
getRequestProcessor( config ).init( this , config );

3. web.xml 에서 ActionServlet 맵핑을 방금 만든 서블릿 클래스로 수정한다.
4. struts-config.xml 에서 reload.do에 해당하는 Action 클래스를 맵핑하고 생성해둔다.

책에서 박재성씨는 reload Action은 그냥 아무 일도 안하고 null을 리턴하도록 했고 ActionServlet을 상속받아 만든 서블릿에서 직접 페이지 이동을 했다. 아무 일도 안하는 클래스이고 실제 실행도 안되는 클래스이지만 return null 을 쓴 것은 조금 아쉽다. ( 어차피 실행 안될테니 상관은 없지만서도... ) 그리고 어차피 페이지 이동을 해야 된다면 struts-config.xml 에서 페이지를 지정해주고 Action 클래스에서 ActionForward로 보내버리면 될텐데... 그러면 null 리턴도 없어질테고 더 깔끔해졌을텐데.. 아쉬워요~

아직 다 본건 아니지만 내가 원하는 내용이 많이 들어 있는거 같다. 목차만 보기엔 -_-;;( 스트러츠에서 업로드 사용하기 라던지 , eclipse plugin인 easy struts 사용법 이라든지 )
얼른 다 보고 한빛에서 나온 스트러츠 책 다시 한번 살펴봐야지.

PS - struts-config.xml을 동적으로 리로딩 하는 방법은 없을라나...
reload.do 호출하기에도 귀찮고 배포할 때 다시 삭제할려니 그것도 귀찮을꺼 같구마이.. 아 귀찮아~

Posted by redwolf at 12:59 AM | Comments (0) | TrackBack

October 30, 2003

TOAD Error - Ora-01460

토드로 오라클을 사용하다가
윈도우에서는 거의 발생하지 않는거 같고 리눅이나 유닉 머신에서
Ora-01460 요구된 변환은 실행될 수 없습니다 라는 에러가 발생하는 경우가 있다.
멀 할려고 하면 저 에러가 떠서 토드를 제대로 사용할 수 없을 정도인데
토드가 유니코드를 제대로 지원하지 못해 발생하는 문제라고 한다.

해결방법으로는
토드로 로그인 화면에서 show connection option 을 선택하고
체크 박스 중 2번째 인 "SQL *Net Compatible Net 8"을 선택해서 로그인 하면
에러가 더 이상 발생하지 않는다.

그러나 유니코드 문자를 다룰때 제대로 안될수가 있으니 주의해야 한다.

Posted by redwolf at 03:35 PM | Comments (1) | TrackBack

October 28, 2003

JFaceDBC - Eclipse plugin

Eclipse에서 DB 플러그인을 찾던중 너무나도 멋진 놈을 찾아 버렸다 ㅠ.ㅠ
아아 감동.. 이런걸 만들어 놓다니...

홈페이지 : JFaceDBc

지원되는 특징을 보자면...

Features

SQL syntax highlighting. Tables and columns names are highlighted (fonts and colors are customizable).
Table names auto-completing (Ctrl+Space)
Database structure viewer
Graphical Database Visualizer (New)
Direct Table Editing (New)
Multiple connections managements
Internationalization
JFaceDbc runs in an Eclipse Perspective. You can also open and edit the sql files contained in your Java Projects. You can choose JFaceDbc as the default editor for your sql files.
JFaceDbc can be easily extended. The distribution comes with five predefined extensions:
Oracle
Sybase (written by cpotter at sybase.com)
Microsoft Sql Server (written by cpotter at sybase.com and by joaoreisbelo at yahoo.com)>
Export table structure through Hibernate
SQL Editor enhancements

어떤가 멋지지 않은가?
정말 너무 멋져보리닷 ㅠ.ㅠ
요즘 Hibernate쪽도 보고 있는데 Hibernate xml 과 Java Bean 파일 자동생성 기능은 더더욱 멋지다.

Posted by redwolf at 12:01 PM | Comments (0) | TrackBack

October 24, 2003

Eclipse에서 Ant 실행시 다운

Eclipse에서 Ant View를 띄워놓고 Ant Task를 실행시키는 경우
이유없이 괜히 먹통이 되고
에러 메시지를 뱉으며 Eclipse가 다운 되는 경우가 있다.
짜증나서 Eclipse를 새로 깔려고 하다가 ProgramFiles 밑에 있는 Oracle 밑에 JRE를 사용하길래 혹시나 하고 그냥 JDK1.4로 패스를 걸어봤다.
그랬더니 에러가 없이 잘 돌아간다.
Eclipse 2.1.1이 JDK1.4 기반에서 ANT가 제대로 작동하는건지
오라클 JRE가 꾸려서 그런건지 확실한건 모르겠지만
혹시 나처럼 ANT 실행시 문제가 있는 사람은 JRE 패스를 고쳐보기 바란다.

Posted by redwolf at 02:54 PM | Comments (1) | TrackBack

Core J2EE 2nd Pattern Catalog

From CoreJ2eePattern.com

Posted by redwolf at 10:27 AM | Comments (0) | TrackBack

October 23, 2003

Hibernate에서 ClassCastException이 날때 해결법

Hibernate를 공부 하던 중
간단히 우편번호 찾기 기능을 구현해 보았다.
그러나 예제에서는 잘되는 놈이
계속해서 ClassCastException이 나는 것이다.

원인을 찾기 위해 이리 저리 뒤지던 중
해결방법은
class 태그에 proxy를 적어 주는 것이었다.
예제에는 분명히 proxy 태그 사용 안했는데도 되는데 ㅠ.ㅠ

다음은 ZipCode.hbm.xml의 전체 소스이다.

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping>    <class name="com.nowonplay.struts.model.ZipCode" table="ZIPCODE"                              proxy="com.nowonplay.struts.model.ZipCode">        <id name="id" type="long" unsaved-value="null" >            <column name="id" not-null="true"/>	        <generator class="hilo"/>        </id>        <property name="zipcode" column="zipcode" />        <property name="sido" column="sido" />        <property name="gugun" column="gugun" />        <property name="dong" column="dong" />        <property name="bunji" column="bunji" />    </class></hibernate-mapping>
Posted by redwolf at 05:39 PM | Comments (0) | TrackBack

October 22, 2003

자바에서 Single Quote Replace 하기

String 의 replaceAll 메소드로 Single Quote 즉 ' 를 \' 로 replace 해야 할 일이 생겼다.
단순히

    replaceAll("'" , "\'" ) 

라고 했더니 안되는 것이다.
replaceAll의 첫번째 파라미터는 단순한 String이 아니라 정규식이라서 그런지 제대로 안되더라.. 그래서 결국 찾아낸 방법은

    replaceAll("\'" , "\\\\'");

로 해야 한다.
아 어렵다 역슬래쉬가 4개나 붙다니 -_-;;
Posted by redwolf at 03:50 PM | Comments (0) | TrackBack

August 29, 2003

오라클에서 LOB 사용시 주의사항

오라클에서 BLOB이나 CLOB을 이용해 JDBC 프로그래밍을 하는 경우
오라클 버전에 맞는 JDBC 드라이버를 사용해야 합니다.
오라클은 9i 인데 8i 드라이버를 쓴다던지 그 반대의 경우 에러가 발생합니다.
에러 메시지는 connection reset 이라던지 socket 관련 에러가 발생합니다.
사용에 주의합시다.

참고링크

Posted by redwolf at 02:03 PM | Comments (0) | TrackBack

August 13, 2003

메신저를 이용한 로그보기

IBM 아티클

여기서는 Jabber 라는 IM을 사용했는데 이 부분만 수정하면 MSN으로도 할 수 있지 않을까나... 어차피 MSN도 프로토콜은 공개되어 있고 자바 라이브러리도 있으니
일반 환경에서는 방화벽 때문에 외부에서 접근이 불가능한 상태이고 메신저는 거의 허용이 되니 에러나는 경우에만 메신저로 에러 로그를 보낸다면 그거 보고 서버 찾아가서 수정하면 될듯... 오호홍
누가 MSN 메신저에서 로그 볼 수 있는 아티클 안 만들어 주나 -_-

아 귀찮아 귀찮아 입에 떠 넣어줘야지만 움직일끄야~

Posted by redwolf at 11:12 AM | Comments (0) | TrackBack

August 02, 2003

JSTL 에서 SQL 관련 태그라이브러리 사용시 주의

서버의 이상작동으로 Statement 누수를 의심하던 중 JSTL 을 사용한 부분에서 버그를 발견했습니다. JSTL 1.0.3 버전의 SQL 태그 사용시 태그 실행 후 PreparedStatement 를 close 해 주는 부분이 없습니다.

doEndTag 에서


try {
PreparedStatement ps = conn.prepareStatement(sqlStatement);
setParameters(ps, parameters);
ResultSet rs = ps.executeQuery();
result = new ResultImpl(rs, startRow, maxRows);
}
catch (Throwable e) {
throw new JspException(sqlStatement + ": " + e.getMessage(), e);
}

요렇게 구현되어 있는 부분을

	try {	    PreparedStatement ps = conn.prepareStatement(sqlStatement);	    setParameters(ps, parameters);	    ResultSet rs = ps.executeQuery();	    result = new ResultImpl(rs, startRow, maxRows);                    rs.close();                    ps.close();	}	catch (Throwable e) {	    throw new JspException(sqlStatement + ": " + e.getMessage(), e);	}

요렇게 수정 후 새로 컴파일 해서 넣으십시요.

Posted by redwolf at 05:20 PM | Comments (3) | TrackBack

August 01, 2003

html TextArea 에서 엔터키 문제

웹프로그래밍을 하다보면 TextArea로 입력을 받고 화면에 보여줘야 하는 경우가 있다. TextArea로 입력을 받는것까지는 좋은데 그걸 그대로 html에 뿌려버리면 공백이랑 엔터키가 무시되어 줄줄줄 붙어 버린다.
이런 문제를 해결하려면 뿌리는 html에도 텍스트 에리어를 달아서 텍스트에리어로 입력 받은걸 그대로 다시 텍스트 에리어에 뿌리면 아무 문제가 없다.
다른 방법은 HTML Editor를 사용하면 된다.
아니면 "<"pre">" 태그를 사용해도 되지만 "<"pre">"를 사용할 경우 테이블이 깨질 수 있다.

HTML Editor 만큼의 기능은 필요없다면 단순히 엔터키 정도만 처리하고 싶다면
이 방법을 사용해 보자.
TextArea 에서 입력받은 값을 Submit 하기 전에 엔터키를 "<"br">"로 바꾸어 준다.
TextArea 이름이 content 라고 할 경우

var content = document.forms[0].content.value;
content = content.replace(/\r\n/g, '"<"br">"');
content = content.replace(/\n/g, '"<"br">"');
content = content.replace(/\r/g, '"<"br">"');

이렇게 하면 엔터키가 전부
로 바껴 저장이 되고
html에 뿌리기 전에는 "<"br">"을 엔터키로 치환해 준다.

while( content.indexOf('"<"br">"') > 0 ) {

content = content.replace( '"<"br">"','\n');
}


짜잔~!!

주의 - html 태그를 쓰기 위해 꺽새에 " 를 넣었습니다.

Posted by redwolf at 11:34 PM | Comments (2) | TrackBack

July 23, 2003

PMD Plugin

PMD 라는 툴을 아시나요?

예전 한빛미디어 사이트에서 PMD에 대한 소개글이 올라 왔었다.
링크는 요기
현재 이클립스를 사용중이라서 이클립스 플러그인을 깔아다가 설치해봤는데
제대로 돌아가지가 않았다.
그때 버전이 아마 0.6 정도 였던듯..

오늘 TSS에 갔다가 FindBugs라는 버그 찾아주는 툴을 발견했다. 현재 버전 0.6 -_-
현재 보고 있는 책이 버그패턴과 자바인데다가 마침 이런 툴까지 눈에 띄게 되니
바로 들어가서 글 한번 읽어주고..
리플라이중 누가 PMD를 다시 언급하길래
그 동안 얼마나 버전이 올라갔을까 싶어 가봤더니 1.0이 되어 있었다

이클립스 플러그인 받아다가 다시 설치

오옷 +_+ 이번에는 아주 직관적으로 잘 돌아간다.
멋지다...

다음은 PMD가 체크해주는 리스트
Unused local variables
Empty catch blocks
Unused parameters
Empty 'if' statements
Duplicate import statements
Unused private methods
Classes which could be Singletons
Short/long variable and method names

내가 이래서 이클립스를 버릴수가 없다

Posted by redwolf at 11:17 AM | Comments (2) | TrackBack

July 20, 2003

오라클 복구기

프로젝트가 마무리가 되어 가던 중
누군가가 오라클 bin 디렉토리를 날려버려 당황스러웠다.
일단 프로젝트는 끝내야 하니 오라클 복구 시작
1. 다른 컴터에 리눅을 깔고 오라클을 깐 다음 bin 디렉토리만 복사 하기
( 가능성 있어 보였지만 다른 컴터에 리눅 깔기가 실패. 하드드라이브 탓인지 무슨 탓인지 모르겠으니 리눅스 깔다가 자꾸 뻗어 버리는 바람에 포기 )
2. 오라클을 그냥 엎어서 깔고 데이터랑 로그파일들 엎어쓰기
( 오라클을 그 위치 그대로 설치 후 로그파일이랑 데이터 파일을 그대로 덮어써 봤으나
무슨 패스워드파일이 틀리네 어쩌네 이런 에러가 나면서 오라클 부팅 실패 )
3. 그냥 새로이 오라클 깔고 테이블 스페이스 만들고 유저 만들고 테이블 만들기
( 토요일 1 번과 2번으로 삽질하고 결국 모든걸 포기한 후 3번 으로 복구 시도 )

테이블 스크립트랑 데이터 백업 받아 둔 것도 없어서 sQL 짜 놓은거 보면서 테이블을 만드는 리버스엔지니어링 작업 ( 이런것도 리버스라고 할 수 있겄지 흠;; )
대강 복구는 끝난거 같은데... 에효효 힘들어라
이로써 내 주말은 몽창 날라가버렸구나 ㅠ.ㅠ

!! 날리고 후회 말고 미리 미리 백업 받읍시다 !!

Posted by redwolf at 09:17 PM | Comments (1) | TrackBack

July 03, 2003

리눅스에서 오라클9i 기동과 종료

오랜만에 올리는 프로그래밍 팁
프로젝트가 바뿌다 보니 잡담만 늘어나고 -_- 쩝..
어쨋든

종료 명령어
ORACLE_HOME/bin/lsnctl stop
ORACLE_HOME/bin/dbshut
sqlplus /nolog
SQLPLUS) connect sys/password as sysdba
SQLPLUS) shutdown immediate

기동명령어( 종료명령어와 반대로 )
sqlplus /nolog
SQLPLUS) connect sys/password as sysdba
SQLPLUS) startup
ORACLE_HOME/bin/lsnctl start
ORACLE_HOME/bin/dbstart

메뉴얼이나 웹사이트에 보면 connect / as sysdba 로 startup을 하라고 되어있지만
권한 에러가 나는 경우 sys로 접속을 하면 된다.

Posted by redwolf at 01:27 PM | Comments (0) | TrackBack

June 10, 2003

와우7.3 파란R2에 오라클9i 9.0.2 설치하다

아아 하루 종일 삽질 끝에 결국 설치해버렸다.
지금은 바뻐서 안되고 설치 방법은 조만간에 정리해서 올리리..
아아 삽질 삽질 ㅠ.ㅠ
그래도 뿌듯하닷

Posted by redwolf at 09:08 PM | Comments (0) | TrackBack

June 09, 2003

세종대왕님 울고 싶습니다

웹프로그래밍이나 다른 프로그래밍이나 프로그래밍 하는 사람은
한번쯤 부딪혀 봤을 한글 문제
특히 벤더에서 제대로 지원을 하지 않는다면 정말 괴롭다
저으기 미테 보면 Jrun과 Struts에서 한글문제로 괴롭다는 글이 있고
어느 정도 해결책도 나와 있지만
Case By Case로 하나 하나 확인해가며 깨지는지 안깨지는지 봐야하는 수고는 둘째로 하더라도
오만 가지 상황에서 한글이 깨지는 상황이 발생하고
제대로 파라미터로 넘어가지 않는 상황도 있고

이럴때마다 생각나는건 정말 내가 왜 한국에 태어났을까 이다 -_-
왜 2바이트짜리 유니코드를 가진 나라에서 태어나서 이 고생일꼬

가만 생각해보면 컴터 발명보다 한글 창제가 더 먼저니깐 세종대왕님 탓할 수도 없고
이미 먼저 간 한국 개발자들을 탓해야 하는건가 -_-
아아.. 한글 괴롭다 열난다 머리아푸다

지금 가장 큰 걱정은
윈도우 환경에서 개발하다가 리눅환경으로 옮긴 경우
만약 한글이 지금 설정과 달라져버린다면
이제는 정말 울어버리리 -_-

Posted by redwolf at 11:27 PM | Comments (0) | TrackBack

May 29, 2003

Jrun Struts 한글 해결하다

Jrun 4.0 과 Struts 에서 한글이 안되던 문제를
1 2 3 번 해결책 중
서블릿 필터를 이용하는 방법으로 해결하였다.
인코딩을 EUC-KR로 하니깐 안되던데 8859_1로 하니깐 해결되었다.
서블릿 필터 말고 다른 방법에서도 8859_1로 하면 해결되려나 -.-a