보통 토드에서
한글이 제대로 나오지 않는 경우,
검색을 해보면,
레지스트리에서 NLS_LANG 값을 수정하거나
내컴퓨터-고급설정-환경변수 에서 NLS_LANG 을 추가해서 값을 넣어주거나 하라고 한다.

DB마다 케릭터셋이 다른 DBMS 에 접속이 자주 있으면 이거 역시 짜증나는 일이다.

cmd 파일을 만들어서 사용하면 그나마 편리하다;

@ECHO OFF
TITLE US7ACII - TOAD
SET NLS_LANG=KOREAN_KOREA.KO16MSWIN949
"C:\Program Files\Quest Software\Toad for Oracle\toad.exe"




http://cafe.naver.com/toadsoft.cafe 토드 네이버 카페에 질문을 올렸는데

답변해주신 "해븐"님 감사.

http://www.dbguide.net/


charset 확인

mysql> \s



[EUCKR]

mysql> SET character_set_client = euckr;
mysql> SET character_set_results = euckr;
mysql> SET character_set_connection = euckr;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr;
mysql> commit;

 

[UTF8]

mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;
mysql> commit;

[출처] mysql charset 변경|작성자 아라한

출처 : http://blog.naver.com/kss9424/120008448529


Mocha - http://www.brouhaha.com/~eric/computers/mocha.html 
Hanpeter van Vliet's first Java Decompiler. Orphaned at Java 1.02, so crashes on inner classes. [Freeware]

WingDis 2.15 - http://www.wingsoft.com/wingdis.shtml 
Command line Java decompiler. [Commercial]

SourceAgain - http://www.ahpah.com/product.html 
Java Decompiler for Win95/NT, Unix, web-based trial version from Ahpah Software. [Commercial]

Jad - http://www.geocities.com/SiliconValley/Bridge/8617/jad.html 
the fast Java decompiler. Separate versions for Win32, OS/2, most Unixen. [Freeware].

SourceTec Java decompiler - http://www.srctec.com/decompiler.htm 
Patch to Mocha which defeats Crema. [Shareware]

NMI's Java Code Viewer - http://njcv.htmlplanet.com 
The "user-friendly, visual" Java decompiler and disassembler for Win32 platform. [Shareware]

Java Code Engineering - http://www.meurrens.org/ip-Links/Java/codeEngineering/ 
Marc Meurrens' page on engineering & reverse engineering Java class files. Review of books and on line resources on: the Java Virtual Marchine (JVM); code engineering & reverse engineering; class browsers, viewers & editors; assemblers; compilers; disassemblers & decompilers; obfuscators & unobfuscators. Comprehensive, well organized site.

Decafe Pro - http://decafe.hypermart.net/ 
Java Decompiler for Win32 platform. [Commercial]

 Kimera - http://kimera.cs.washington.edu/disassembler.html 
Online Java Disassembler. Just enter an URL of a .class file and it will be disassembled into a form suitable for re-assembly by Jasmin. [Freeware] 

Dumping Class Files - http://professionals.com/~cmcmanis/java/dump/index.html 
Chuck McManis's code to parse class files. [Free for non-commercial].

ClassCracker - http://www.pcug.org.au/~mayon/ 
Visual Java decompiler from Mayon Software Research. [Commercial]

Java Optimize and Decompile Environment (JODE) - http://jode.sourceforge.net/ 
Java decompiler with full source code. Supports inner/anonymous classes. Also contains a small, but extensible bytecode obfuscator/optimizer. [Open Source, GPL]

CafeBabe - http://jfa.javalobby.org/projects/CafeBabe.html 
Graphical disassembler and editor of Java bytecodes. Part of the JFA. [Open Source]

RIIS: Decompiling Java - http://www.riis.com/depile.html 
Godfrey Nolan's book on writing your own Java decompiler may never be published, so early chapters are online in PDF format.

dis - http://www.cs.princeton.edu/~benjasik/dis/index.html 
A functional, fast and simple disassembler that is written in C. Like javap, produces bytecode. Download Solaris, Win95/NT versions. Mac or other Unixen or source code by email request. [Freeware]

BackToJava (BTJ) - http://www.backtojava.org/ 
General tool for manipulation of Java bytecode (disassembly, assembly, statistics, decompilation, debug information...), written in Java. In progress. [Open Source, LPGL]

JReveal.Org - http://www.jreveal.org 
Online decompiler and obfuscator. Also has a resource directory. [Freeware]

IceBreaker - http://www.suddendischarge.com/cgi-bin/antileech.cgi?icebreak10.zip 
(Zip-file) A 'Visual' Java decompiler/disassembler. Allows side-by-side comparison of disassembled byte code from class files, for easier decompilation. "Replete with bugs" and dependent on command-line decompiler, such as Mocha or Javap. [Freeware]

출처 : http://blog.naver.com/seogi1004?Redirect=Log&logNo=110045319589

정리를 한번 한다 한다 하면서 필요할 때마다 찾아다니다가,
어떤분이 잘 정리를 해주셔서.. 살짝 가져왔습니다. (닉: 문학이?)
출처 표기하고 내용은 변경하지 않았습니다만, 그냥 약간 편집만 했습니다.

1. DB charset 설정

2. Server charset 설정

   예) Tomcat 의 경우 server.xml 파일에 (링크)
        <connector .....   부분에
        useBodyEncodingForURI="true"  
        나
        URIEncoding="UTF-8"
        를 추가한다.

        확인하진 않았지만 위는 문서 인코딩 형태에 따라 URI 형식을 바꾸는 것 같고,
        아래는 URI 인코딩 형식을 무조건 정해주는 것 같다.

    이러면 POST 방식에서의 charset 해결


3.  GET 방식을 위해 jsp 의 경우

    한글 URL이 문제가 될 경우 
     java.net.URLEncoder.encode( "한글파일.html" ,  "UTF-8" );


4. 개발 툴에서 문서 자체의 인코딩 방식 변경.

    editplus : 기본설정 - 파일 >> 기본인코딩 UTF-8
    eclipse : window - preferences - general - workspace - textfile Encoding


5. 작업문서에서의 설정

① 페이지 설정

UTF-8을 쓰고자 하는 경우 *.html, *.htm, *.jsp 파일은 UTF-8 형식으로 저장한다.

EUC-KR, MS949는 ANSI, MS949등의 기본 형식으로 저장하면 된다.

 

모든 HTML, JSP에는 아래와 같은 META태그를 넣을 것을 권장한다.

<META HTTP-EQUIV="contentType" CONTENT="text/html;charset=UTF-8">

<!--EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다-->

JSP에서는 페이지 상단에 page 지시자를 다음과 같이 넣는다.

<%@ page contentType="text/html;charset=UTF-8" %>

<!--EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다-->

② POST 방식의 데이터 전송

POST방식으로 전송된 데이터는 UTF-8이든, EUC-KR이든 다음과 같은 라인을 추가하면 해결 된다.

request.setCharacterEncoding("UTF-8");

//EUC-KR인 경우 UTF-8을 EUC-KR로 바꾼다.

③ GET 방식의 데이터 전송

GET 방식으로 전송된 데이터는 URL을 통해 전송되기 때문에 위의 방식으론 쓸 수 없다. URL에서의 데이터를 Latin-1(8859_1)인코딩으로 서버에서 처리하기 때문이다. 이를 톰캣의 버그라고 단정짓는 일부 서적의 말은 잘못된것이다.

 

불러온 데이터를 아래와 같이 처리해 주어야 한다.

request.setCharacterEncoding("UTF-8");

String data = new String(request.getParameter("data").getBytes("8859_1"),"UTF-8");

//Latin-1(8859_1)로 읽어들인 데이터를 다시 UTF-8로 재해석하는 코드

//EUC-KR인 경우  UTF-8을 EUC-KR로 바꾼다.

④ 한글 파일 전송

Latin-1(8859_1)로 세팅된 톰캣 서버에서는 URL을 무조건 영어로 처리하므로 한글 파일은 절대로 읽어들일 수 없다. 파일을 영어로 바꾸어 저장하거나, 한글 파일을 영어로 바꾸는 처리를 해주어야 한다.

⑤ DB URL의 인코딩

jdbc:mysql://localhost:3306/DB명?useUnicode=true&characterEncoding=utf8              [ Java 또는 JSP ]

jdbc:mysql://localhost:3306/DB명?useUnicode=true&amp;characterEncoding=utf8       [ XML ]

 

XML 문서에서는 기호 ('&')를 표시할 때 &amp;를 사용하기 때문에 일반 코드와 다르다.




출처 : http://blog.naver.com/seogi1004?Redirect=Log&logNo=110045319589

출처의 닉:  문학이 님 감사^^

'JAVA/JSP' 카테고리의 다른 글

class 파일의 컴파일 버전 확인하기.  (3) 2011.04.08
ResultSet 의 Null 체크.  (0) 2011.03.31
개발 초기에 charset 맞추기.  (0) 2010.11.25
StringBuffer 초기화하여 재사용하기.  (0) 2010.11.22
ResultSet -> LIST  (0) 2010.11.03
java charset 관련 변환 유틸.  (0) 2010.10.21

Start Using Toad Extension for Eclipse

To install Toad Extension for Eclipse:

  1. Open Eclipse.
  2. Select Help | Install New Software.
  3. In the Install dialog, Work with box, enter the following website address:
    http://toaddownload.quest.com/toadextensions/eclipse/beta
  4. In the Details area, clear the Group items by category checkbox.
Important: For the current BETA version it is necessary to download the ojdbc14.jar driver from the following page:

 

http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-10201-088211.html.

Save the driver to the plugins folder of Eclipse. Example: C:\Program Files\eclipse\plugins

To display the installed Toad Extension for Eclipse in Eclipse:

  1. Select Window | Open Perspective | Other.
  2. From the Open Perspective dialog select Toad Extension.




부가기능 : Grease Monkey 설치.

http://addons.mozilla.org/ko/firefox/addon/748


스크립트 추가 설치.
http://userscripts.org 에서

naver로 검색하던지,

Anti-Disabler for Naver 를 검색 하던지 해서..

설치.


StringBuffer변수.setLength(0);

[출처] [초기화] StringBuffer 객체의 초기화 방법|작성자 담덕


strBuffer.delete(0, strBuffer.capacity());

[출처] StringBuffer 초기화 setLength(0)|작성자 황금쌀




아님 그냥 new 해버리던가...;;

'JAVA/JSP' 카테고리의 다른 글

ResultSet 의 Null 체크.  (0) 2011.03.31
개발 초기에 charset 맞추기.  (0) 2010.11.25
StringBuffer 초기화하여 재사용하기.  (0) 2010.11.22
ResultSet -> LIST  (0) 2010.11.03
java charset 관련 변환 유틸.  (0) 2010.10.21
파일 업로드 multipart/form-data  (0) 2010.10.21


출처 : http://naver.catchstyle.net/90091110491


   <script language = 'javascript' >
    opener.location.reload();
    if(navigator.appVersion.indexOf("MSIE 7.0") >= 0 ){  //익스플로러 체크
     window.open("RNCheckRequest.jsp","_self").close();
    }else if(navigator.appVersion.indexOf("MSIE 8.0") >= 0){    //보안 alert! 방지
     window.open("RNCheckRequest.jsp","_self").close();
    }else{
     self.close();
    }
   </script>

self.close() 시 사용했던 소스. 자기 자신의 파일명을 써줬던 것 같다.



출처 : http://naver.catchstyle.net/90091110491
    /**

    * ResultSet을 List로 반환

    * @param    rs        ResultSet

    * @return    List

    */

    public List getRsToList(ResultSet rs){

        List lst = null;



        try{

            int rows = rs.getRow();

            if(rows > -1){

                ResultSetMetaData mrs = rs.getMetaData();

               

                int Col_TYPE = 0;

                String Col_NAME = "";

                String inputVar = null;



                HashMap rowHash = new HashMap();

                lst = new ArrayList();



                // 컬럼수

                int colcnt = mrs.getColumnCount();



                while(rs.next()){

                    rowHash = new HashMap();

                    for(int i=1; i<=colcnt; i++){

                        Col_NAME = mrs.getColumnName(i).toUpperCase();

                        inputVar = rs.getString(i);



                        rowHash.put(Col_NAME, inputVar);

                    }



                    lst.add(rowHash);

                }

            }

        } catch(SQLException sqle){

            sqle.printStackTrace();

        } catch(Exception e){

            e.printStackTrace();

        }



        return lst;

    }

'JAVA/JSP' 카테고리의 다른 글

개발 초기에 charset 맞추기.  (0) 2010.11.25
StringBuffer 초기화하여 재사용하기.  (0) 2010.11.22
ResultSet -> LIST  (0) 2010.11.03
java charset 관련 변환 유틸.  (0) 2010.10.21
파일 업로드 multipart/form-data  (0) 2010.10.21
JAVA 가변인수  (0) 2010.10.15





'PDS' 카테고리의 다른 글

openCSV  (0) 2011.01.28
파일비교, 파일 동기화 프로그램. - FreeFileSync  (0) 2011.01.28
UltraMon - 듀얼 모니터 제어  (0) 2010.11.02
YesClick 0.4.0  (0) 2010.10.25
Desy Edit (무료 편집기)  (0) 2010.10.18
프록시 우회 프로그램 ultraSurf  (0) 2010.09.25

이미지를 강제로 middle 정렬할 때 사용하는 건데. 이놈이 가끔 안 먹힐 땐,

<img src="" style="margin:상 우 하 좌">

그냥 여백으로 해결하자;;;;;;;;




SELECT  BOARD_CODE, BOARD_TITLE
FROM     T_BOARD
WHERE   BOARD_CODE IN
  (
   (SELECT MAX(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE < 2),
   (SELECT MAX(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE = 2),
   (SELECT MIN(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE > 2)
  )
ORDER BY BOARD_CODE ASC;


출처 : http://stillrabbit.blogspot.com/2009/01/jdbc-config-oracle-resource.html


기본적으로 SID 와 SERVICE NAME의 차이부터 이해하도록 한다.
* SERVIE NAME은 데이터 베이스의 군 (미러링을 하던지.. 등등)
* SID는 각각의 디비 인스턴스

설정도 위에 따라 바뀐다.
각각의 호스트 스트링은 다음과 같다.

IF SID
"jdbc:oracle:thin:@host:port:sid"

IF SERVICE NAME
"jdbc:oracle:thin:@//host:port/service name"




설치 후, 오른쪽 클릭 막힌 페이지에서 F9 만 누르면
오른쪽 클릭 막힌게 풀린다.

가끔 안되는 경우가 있긴 하지만 편리성 최고!

'PDS' 카테고리의 다른 글

파일비교, 파일 동기화 프로그램. - FreeFileSync  (0) 2011.01.28
UltraMon - 듀얼 모니터 제어  (0) 2010.11.02
YesClick 0.4.0  (0) 2010.10.25
Desy Edit (무료 편집기)  (0) 2010.10.18
프록시 우회 프로그램 ultraSurf  (0) 2010.09.25
Tomcat Plugin for Eclipse  (0) 2010.03.30
    /**

     * Method a2k. 8859_1 에서 MS949 로 문자세트변환

     * @param str 바꾸려는 문자열

     * @return String

     */

    public static String a2k(String str) {

        try {

            return new String(str.getBytes("8859_1"),"MS949");

        } catch (Exception e) {

            return "";

        }

    }

   

    /**

     * Method a2k. 8859_1 에서 MS949 로 문자세트변환

     * @param str 바꾸려는 문자열

     * @return String

     */

    public static String a2u(String str) {

        try {

            return new String(str.getBytes("iso-8859-1"),"KSC5601");

        } catch (Exception e) {

            e.printStackTrace(System.out);

            return "";

        }

    }

   

    /**

     * Method a2k. 8859_1 에서 MS949 로 문자세트변환

     * @param str 바꾸려는 문자열

     * @return String

     */

    public static String u2a(String str) {

        try {

            return new String(str.getBytes("KSC5601"),"iso-8859-1");

        } catch (Exception e) {

            e.printStackTrace(System.out);

            return "";

        }

    }



    /**

     * Method k2a. MS949 에서 8859_1 로 문자세트변환

     * @param str 바꾸려는 문자열

     * @return String

     */

    public static String k2a(String str) {

        try {

            return new String(str.getBytes("MS949"),"8859_1");

        } catch (Exception e) {

            return "";

        }

    }

'JAVA/JSP' 카테고리의 다른 글

StringBuffer 초기화하여 재사용하기.  (0) 2010.11.22
ResultSet -> LIST  (0) 2010.11.03
java charset 관련 변환 유틸.  (0) 2010.10.21
파일 업로드 multipart/form-data  (0) 2010.10.21
JAVA 가변인수  (0) 2010.10.15
ERROR 리스트  (0) 2010.04.06
출처 : http://blog.naver.com/callzone?Redirect=Log&logNo=140055259392

파일 업로드를 위한 기본적인 폼 형태

 

웹 브라우저를 통해서 파일은 전송하기 위해서 폼 구성에 대해서 알아보자. form  태그의 속성돌중 input 태그들이 있는데

이들중 <input type="file"> 태그는 파일을 선택할 수 있는 창을 만든다.

또한 이렇게 선택된 파일을 전송하기 위해서 form 태그의 속성들 중 method외 enctype을 다음과 같이 지정한다.

 

<form name="formName" method="post" enctype="multipart/form-data">

 

<input type="file" name="selectfile">

 

Warn

 

<form method="post" enctype="multipart/form-data">으로 지정한 폼 요소에서 파일 업로드를 위한

파일 요소를 지정해야한다.

<input type="file" name="filetype"> input 태그의 속성으로 type은 file로 지정하고,

 이 태그에 대한 이름을 명시 해야한다.

 

<form method="post">의 형태로 전송한 폼에 담겨진 파라미터들은 request 객체를 통해서 이름에 해당되는 값을 얻어낼 수 있다.

하지만 이렇게 <form name="formName" method="post" enctype="multipart/form-data">에서 enctype="multipart/form-data"로

지정한 폼을 전송했을때, request 객체로 파라미터의 값을 얻어 낼수 없다.

 

그래서 enctype="multipart/form-data" 로 전송한 폼에 담겨진 파라미터들에 대한 이름과 값을 얻어내기 위해,그리고

<input type="file">로 지정된 파일을 서버상의 한 폴더에 업로드하기 위해서 특별한 컴포넌트가 필요하다.

http://servlets.com 에서 제공하는 cos.jar 파일에는 필요한 컴포넌트가 있다.

이 컴포넌트를 설치하자.

 

Tip

파일업로드 및, 폼 데이터를 파싱하는 컴포넌트로 cos.jar 이에외도 많은 컴포넌트가 있다.

 

cos.jar를 myapp/WEB-INF/lib폴더에 복사하는 이유

 

JSP에서 cos.jar의 패키지를 이용하게 되는데 , cos.jar는 톰켓에 기본적으로 내장되어 있지 않은 외부의 패키지이다.

외부의 패캐니는 WEB-INF/lib 폴더에 위치해야 하는데, 이때 WEB-INF는 각각의 웹 어플리케이션에 이 폴더가

존재한다. 본이이 작성하는 모든 예제는 myapp로 이름 지어진 웹 어플리케이션에 위치하는데, 이 어플리케이션이 실행될

때 사용되는 패키지가 해당 어플리케이션 /WEB-INF/lib 폴더에 있는 패키지 이다.

 

Constructor Summary

 

MultipartRequest(javax.servlet.http.HttpServletReqeust request,

                         java.lang.String.saveDirectory,

                         int maxPostSize,

                         java.lang.String encoding,

                         FileRenamePolicy policy)

 

Method Summary

 

java.lang.String                              getContentType(java.lang.String name)

                                                    업로드된 파일의 컨텐트 타입을 반환, 업로드된 파일이 없으면 null을 반환

 

java.io.File                                    getFile(java.lang.String name)

                                                    서버 상에 업로드된 파일의 파일 객체를 반환, 업로드된 파일이 없다면 null을 반환

 

java.util.Enumeration                      getFileNames()

                                                   폼 요소 중 input 태그 속성이 file로 된 파라미터의 이름들을 반환, upload 된

                                                   파일이 없으면 비어있는 Enumeration을 반환

 

java.lang.String                             getFilesystemName(java.lang.String name)

                                                   사용자가 지정해서 서버 상에 실제로 업로드된 파일명을 반환

 

java.lang.String                             getOrignalFileName(java.lang.String name)

                                                   사용자가 지정해서 서버상에 업로드된 파일명을 반환, 이때의 파일명은 파일 중복을

                                                   고려한 파일명 변경 전의 이름을 말한다.

 

java.lang.String                             getParameter(java.lang.String name)

                                                   스트링으로 주어진 이름에 대한 값을 반환. 값 없이 파라미터가 전송되었거나 해당되는

                                                   이름의 파라미터가 전송이 안 되었을 경우 null 를 반환

 

java.util.Enumeration                      getParameterNames()

                                                   모든 파라미터 이름을 Enumeration 으로 반환 한다.

 

java.lang.String[]                          getParameterValues(java.lang.String name)

                                                   주어진 이름에 대한 값을 스트링 배열로 반환, 파라미터가 전송되지 않았을 때는 null 반환

 

 첫 번째로 해야 할 부분은 폼 enctype 속성을 multipart/form-data로 지정한 폼에 담겨진 파라미터를 읽어오기 위해서

MultipartRequest 의 객체를 생성해야 한다. 이 객체를 통해서 파일 업로드를 구현 할 수 있다.

MultipartRequest 객체를 생성한후 객체를 통해서 MultiPartRequest 클래스에서 제공하는 메소드들을 사용하면 쉽게 파일 업로드와 파라미터를 읽어 올 수 있다.

MultipartRequest 객체를 생성한 뒤, 메소드 사용의 예를 들어 파일 업로드와 파라미터에 대한 처리를 위한 절차를 설명 하겠다.

 

MultipartRequest의 생성자

 

MultipartRequest의 생성자를 종류가 많다.

cos.jar 에 있는 MultipartRequest 클래스의 생성자 중 다음의 생성자는 한글 인코딩,업로드되는 파일이 기존에 파일과 중복될때

의 단점을 해결한 생성자이다.

 

그래서 이 생성자를 사용하여 MultipartRequest 의 객체를 생성한다.

 

MultipartRequest multi = new MultiPartRequest(request,

                                                                   folderDirectory,

                                                                   1024*10,

                                                                   "euc-kr",

                                                                   new DefaultFileRenamePolicy());

 

첫 번째 인자는 Request 객체이고,

두 번재 인자는 업로드된 파일이 저장될 파일폴더 경로 이다.

세 번째 인자를 업로드할 파일의 최대 크기이다.( 1024=1024Bytes, 즉 1KB, 1024*10 = 10KB )

네 번째는 인코딩 타입

다섯 번째 인자는 업로드 될 파일명이 기존에 업로드된 파일명과 같은 경우 덮어쓰기를 방지하기 위해 설정하는 부분이다.

 

이 객체가 생성되면서 폼에서 지정한 파일이 서버상의 폴더에 저장된다.

 

Warn!!!

 

파일 업로드를 위한 파일 선택을 위해서 <input type="file">을 사용합니다.

그리고 이 <input type="file">라는 폼 요소를 포함하는 폼은 파일 전송을 위해서

<form method="post" enctype="multipart/form-data"> 로 속성을 지정해야 한다.

 

 

 

getParameterNames() 메소드

 

Enumeration params = multi.getParameterNames();

 

multi 라는 이름을 가지는 객체를 통해서 MultipartRequest  클래스에 있는 메소드를 사용 할수 있는데,

getParameterNames() 메소드는 폼에서 전송한 파라미터들의 이름을 Enumeration 타입으로 반환한다.

폼에 있는 input 태그중 file 속성이 아닌 모든 파라미터들의 이름을 반환하는 메소드 이다.

 

 

getParameter() 메소드

 

String paramValue = multi.getParameter(java.lang.String name);

 

getParameter 메소드는 request 객체에서 사용되는 getParameter 메소드처럼 파라미터의 이름을 인자로 받아서 그 파라미터

의 값을 반환하는 메소드이다.

이 메소드에 전달될 인자는 getParameterNames() 메소드를 통해서 얻어온 파라미터 이름을 인자로 주면 그 파라미터에 담긴 값을반환한다.

 

getFileNames() 메소드

 

Enumeration files = multi.getFileNames();

 

getFileNmaes() 메소드는 폼 요소 중 file 속성으로 지정된 input 태그의 이름, 즉 file 속성을 가진 파라미터의 이름을 Enumeration 타입

으로 반환한다.

예를 들면 <input type="file" name="uploadfile"> 태그가 폼 요소에 있었다면 getFileNmaes() 메소드는 uploadfile

이란 파라미터의 이름을 담긴 Enumeration을 반환한다.

 

 

getFilesystemName() 메소드

 

String filename = multi.getFilesystemNmae(name);

 

file 속성으로 지정된 input 태그에 의해 서버 상에 실제로 업로드된 파일 이름을 스트링 타입으로 반환한다.

이 메소드가 반환하는 파일명의 file 속성을 가진 input 태그에서 사용자가 지정한 파일 이름이 아니고

사용자가 선택한 파일이 실제 서버 상의 폴더에 저장 되었을 때의 파일명을 반환한다.

아래의 getOriginalFileNmae() 메소드에서 비교 설명 하겠다.

 

getOriginalFileName() 메소드

 

String original = multi.getOriginalFileName(name);

 

getOriginalFileName() 메소드는 사용자가 직접 지정한 파일명을 반환한다.

MultipartRequest 의 생성자 중 중복된 파일을 덮어쓰는 것을 방지하기 위해 사용되는 FileRenamePolicy 인터페이스를

구현한 DefaultFileRenamePolicy 에 의해서 파일명이 변경되기 전의 파일명을 반환한다.

 

getFileSystemName() 메소드는 기존에 업로드된 파일명들 중에 새로 업로드할 파일명이 중복될 경우 파일명 뒤에

filename1.***, filename2.*** 식으로 변경된 이름을 반환한다.

중복되는 경우가 없다면 원래의 파일명을 반환한다.

 

getOriginalFileName() 은 사용자가 지정해서 업로드되는 파일명을 반환하고,

getFileSystemName()  메소드는 파일명이 중복되는 경우 변경된 파일명을 반환한다.

 

 

getContentType() 메소드

 

String type = multi.getContentType(name);

 

getContentType() 메소드는 업로드된 파일의 컨텐트 타입을 반환한다.

 

 

getFile() 메소드

 

File f = multi.getFile(name);

 

getFile() 메소드는 서버 상에 업로드된 파일에 대한 파일 객체를 반환한다.

 

Tip

File 클래스는 java.io 패키지에 있다.

File 클래스를 사용하기 위해 java.io 패키지를 임포트해야 한다.

 


'JAVA/JSP' 카테고리의 다른 글

ResultSet -> LIST  (0) 2010.11.03
java charset 관련 변환 유틸.  (0) 2010.10.21
파일 업로드 multipart/form-data  (0) 2010.10.21
JAVA 가변인수  (0) 2010.10.15
ERROR 리스트  (0) 2010.04.06
StringTokenizer 와 split 의 차이.  (1) 2009.11.12
http://www.desyedit.com

EditPlus 나 UltraEdit 와 다르게 무료랍니다.

DesyEdit를 'Funcware'라고 하는데.

DesyEdit의 개발자가 직접 만든말로써, Freely Use No Complain의 첫머리글자만을 따서 만든 말 입니다.

말 그대로 누구나 사용할 수 있지만, 어떠한 불평도 하지 않는다는 뜻입니다.


ㅋㅋ


뭐 한번 사용해보는 것도 나쁘지 않은 것 같음.



'PDS' 카테고리의 다른 글

UltraMon - 듀얼 모니터 제어  (0) 2010.11.02
YesClick 0.4.0  (0) 2010.10.25
Desy Edit (무료 편집기)  (0) 2010.10.18
프록시 우회 프로그램 ultraSurf  (0) 2010.09.25
Tomcat Plugin for Eclipse  (0) 2010.03.30
JAD - java Decompiler  (0) 2010.03.30
예제 :

public static void foo(int ... nums)
{
    for(int num : nums)
    {
        System.out.print(num);
    }
    System.out.println();
    System.out.printf("The last number of list is %d\n", nums[nums.length - 1]);
}


메소드가 받을 인수를 쓸 때

변수타입과 변수이름 사이에 ... (점3개) 넣으면 된다;

그리고 그 변수는 배열형식으로 취급해서 사용하면 된다.

오우.
굿




'JAVA/JSP' 카테고리의 다른 글

java charset 관련 변환 유틸.  (0) 2010.10.21
파일 업로드 multipart/form-data  (0) 2010.10.21
JAVA 가변인수  (0) 2010.10.15
ERROR 리스트  (0) 2010.04.06
StringTokenizer 와 split 의 차이.  (1) 2009.11.12
한글 깨짐 현상  (0) 2009.09.09
출처 : http://www.cyworld.com/susemi99/2394914


%a : Abbreviated weekday name (Sun..Sat)
%b : Abbreviated month name (Jan..Dec)
%c : Month, numeric (0..12)
%D : Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d : Day of the month, numeric (00..31)
%e : Day of the month, numeric (0..31)
%f : Microseconds (000000..999999)
%H : Hour (00..23)
%h : Hour (01..12)
%I : Hour (01..12)
%i : Minutes, numeric (00..59)
%j : Day of year (001..366)
%k : Hour (0..23)
%l : Hour (1..12)
%M : Month name (January..December)
%m : Month, numeric (00..12)
%p : AM or PM 
%r : Time, 12-hour (hh:mm:ss followed by AM or PM)
%S : Seconds (00..59)
%s : Seconds (00..59)
%T : Time, 24-hour (hh:mm:ss)
%U : Week (00..53), where Sunday is the first day of the week
%u : Week (00..53), where Monday is the first day of the week
%V : Week (01..53), where Sunday is the first day of the week; used with %X 
%v : Week (01..53), where Monday is the first day of the week; used with %x 
%W : Weekday name (Sunday..Saturday)
%w : Day of the week (0=Sunday..6=Saturday)
%X : Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V 
%x : Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v 
%Y : Year, numeric, four digits
%y : Year, numeric (two digits)
%% : A literal “%” character
%x : x, for any “x” not listed above


출처 : http://choii.tistory.com/50

Eclipse 에서 서버 시작시에 war 파일로 만들고 배포하기 때문에 시간이 걸린다.
이 작업을 안하는 것이다.

그러니 resin.conf 에서 프로젝트의 Directory path를
D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core 에 있는
사용하고 있는 프로젝트 이름을 찾아서 하는 것이 좋을 것 같다.

(물론 이건 개발 중 일 때만.)


아래 내용은 출처 : http://choii.tistory.com/50

D:\eclipse35\plugins\com.caucho.resin.eclipse_4.0.2\buildfiles\resin31.xml 파일을 열어서.. 아래와 같이 war파일을 만드는 부분을 주석처리한다.

  <target name="deploy.j2ee.web">
    <!--jar destfile="${project.working.dir}/${module.name}.war">
      <zipfileset dir="${module.dir}">
        <include name="**/*.*"/>
        <exclude name="**/*.war"/>
      </zipfileset>
    </jar>
    <move file="${project.working.dir}/${module.name}.war" todir="${server.publish.dir}"/-->
    <sleep seconds="${pause.deploy}"/>
  </target>

사이트 : http://www.improve-technologies.com/alpha/resin/



Eclipse update and install 로 설치시.

name : Improve's Eclipse plugin site
url : http://www.improve-technologies.com/alpha/updates/site.xml




plugin 파일 (수동 설치시)
Resin 다운로드. http://www.caucho.com/download/

Eclipse에서

Help - Install New Software..

Name : Caucho Resin
Location : http://caucho.com/eclipse

인스톨 하면 하고 restart

Window - Preferences - Server 보면 Resin 등장




Resin Charset 설정

resin.conf 파일에서

<host id="" root-directory="C:/javaProject/SendBillV3.0/">
     <web-app id="/" document-directory="C:/javaProject/SendBillV3.0/"/>
      <web-app character-encoding="euc_kr" id="/">
      </web-app>
    </host>






출처 : http://webstandards.or.kr/html5





http://www.ultrareach.com/

'PDS' 카테고리의 다른 글

YesClick 0.4.0  (0) 2010.10.25
Desy Edit (무료 편집기)  (0) 2010.10.18
프록시 우회 프로그램 ultraSurf  (0) 2010.09.25
Tomcat Plugin for Eclipse  (0) 2010.03.30
JAD - java Decompiler  (0) 2010.03.30
DDL2iBatis  (0) 2009.09.01

http://skyunoe.blog.me/20108801554


Ajax를 구현하는 핵심 JavaScript 객체는 XMLHttpRequest이다.

Ajax가 추구하는 새롭고 놀라운 기능을 실제로 구현하기 위해서는 이 객체에 대해 완전히 익숙해 져야 한다.

 

아래는 XMLHttpRequest객체가 지원하는 Method 및 Properties들을 정리한 것이다.

 

Method

  • open(): 새로운 요청을 서버에 설정함.
  • send(): 요청을 서버에 전송함.
  • abort(): 현 요청에서 벗어남.
  • readyState: 현 HTML 준비상태를 제공함.
  • responseText: 요청에 응답하기 위해 서버에서 재전송하는 텍스트.

Properties

  • onreadystatechange : XMLHttpRequest객체의 상태가 변할 때 실행할 핸들러를 지정 한다.
  • readyState : XMLHttpRequest객체의 생태가 변할 때 각 상태값을 반환한다.
    • 0: (open()을 호출하기 전에는) 요청이 초기화 되지 않는다.
    • 1: (send()를 호출하기 전에는) 요청은 설정은 되지만 보내지지 않는다.
    • 2: 요청이 보내지고 처리 중에 있다. (이 시점에서 응답에서 콘텐트 헤더를 얻을 수 있다.)
    • 3: 요청이 처리 중에 있다. 부분적인 데이터를 응답에서 사용할 수 있지만 서버는 이 응답으로는 종료되지 않는다.
    • 4: 응답이 완료된다. 서버의 응답을 받고 이를 사용한다.
  • responseText : HTTP 요청결과를 문자열 형태로 반환한다.
  • responseXML: HTTP 요청결과를 XMLDocument 오브젝트로 반환한다.
  • responseBody
  • status: HTTP 응답코드를 반환한다. 성공일 경우 200
  • statusText: HTTP 응답문자열을 반환한다. 성공인 경우 OK

 

사용법

 

1. 요청생성

 

  function getXMLHttpRequest() {


       var xmlreq = false;
       if (window.XMLHttpRequest) {
           // Create XMLHttpRequest object in non-Microsoft browsers
          xmlreq = new XMLHttpRequest();


       } else if (window.ActiveXObject) {
         
 // Create XMLHttpRequest via MS ActiveX
           try {
             
 // Try to create XMLHttpRequest in later versions
               // of Internet Explorer

               xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
           } catch (e1) {
               // Failed to create required ActiveXObject
               try {
                 
 // Try version supported by older versions
                   // of Internet Explorer

                   xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
               } catch (e2) {
                  
// Unable to create an XMLHttpRequest with ActiveX
               }
           }
       }


       return xmlreq;
   }

 

 

2. 요청

 

    function ajaxRequest() {


                // req 객체반환
                req = getXMLHttpRequest();
 
                // 응답이 완료되면 자동으로 실행되도록 JavaScript 콜백 함수를 정의
                var handlerFunction = "";
                req.onreadystatechange = handlerFunction;
 
                // 요청처리
                req.open("POST", "test.php", true);
 
                // 헤더 설정
                req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 
                // POST일 경우 send에 아래와 같이 변수를 입력하고 GET일 경우 null입력
                req.send("변수=값");

    }

 

 

3. CallBack (요청에 대한 응답 처리)

 

    function ajaxResponse() {

            // only if req shows "loaded"
            if (req.readyState == 4) {
                 // only if "OK"
                 if (req.status == 200) {
                    // do something...
                 } else {
                    alert("There was a problem retrieving the XML data:\n" + req.statusText);
                 }
            }

    }

 

[출처] [Ajax] XMLHttpRequest객체|작성자 깡통

http://struts.apache.org/2.0.14/docs/tag-reference.html




Generic Tags

Generic Tag Reference
Struts Generic Tags control the execution flow as pages render.
Control Tags Data Tags

UI Tags

POJO 객체

 - 의존성이 없으므로 독립적인 작업에 좋다.


ActionSupport Class 상속

 - Result Code (ERROR, INPUT, SUCCESS, LOGIN, NONE) 사용이 가능.
 - 유효성 검사나 properties 파일정보를 쉽게 가져올 수 있다.

Action, ModelDriven, Preparable Interface를 상속받았다면

 - Result Code (ERROR, INPUT, SUCCESS, LOGIN, NONE) 사용이 가능.
 - excute() 메소드를 오버라이딩해야 함.
 - Modeldriven을 사용하면 model class 와 의존성을 줄일 수 있다.
 - Preparable 을 사용하면 excute() 메소드가 실행되기 전에 다른 로직을 사용할 수 있다.

스트럿츠2 프레임워크 환경에서 제공되는 이점을 사용할 수 있다.




+ 스트럿츠2 프로그래밍 입문 - 성윤정, 이명숙 공저

'FRAMEWORK' 카테고리의 다른 글

struts-config.xml 에 datasource 추가 ( strtus 1.3 미만 )  (0) 2011.07.18
struts2 - TagLibrary  (0) 2010.09.01
struts2 - 액션클래스 비교.  (0) 2010.08.27
struts - UTF-8 설정 (인코딩설정)  (0) 2010.08.26
EJB EntityBeans  (0) 2009.09.18
[Struts] JDBC 사용하기.  (0) 2008.04.22

+ Recent posts