FLEX는 encoding을 'utf-8'을 사용하고, JSP는 encoding을 'euc-kr'을 사용합니다. 그런데 tomcat을 encoding 방식을 한가지로 제공합니다. 이것때문에 2가지 이상의 Encoding방식이 필요한 경우 문제가 발생합니다. 즉, service.xml을 아래와 같은 방식으로 작성할 경우 FLEX에서 JSP로 정보가 넘어갈 때 한글은 깨어지게됩니다.

 <Connector  ...... URIEncoding="euc-kr" />

 

이럴 경우 각 페이지마다 필요한 encoding방식을 지정해야합니다.

 

즉, FLEX에서 JSP로 정보가 넘어올 경우만 "utf-8", 그 외는 "euc-kr"로 말입니다.

 

이렇게 할려면

 

1. service.xml에 URIEncoding="euc-kr"은 없애고 useBodyEncodingForURI="true"을 추가한다.

 <Connecter .... useBodyEncodingForURI="true">

 

2. 각 JSP에 request.setCharacterEncoding()을 필요한 encoding방식을 설정합니다.

 utf-8이 필요할 경우는 request.setCharacterEncoding("utf-8")로

 euc-kr이 필요할 경우는 request.setCharacterEncoding("euc-kr")로합니다.

 

참고로 tomcat version은 5.5.12입니다.



Tomcat으로 웹 어플리케이션을 돌릴 때 디렉토리를 URL로 지정하면 그냥 디렉토리 목록이 보인다.
보안상 매우 안 좋다.

$CATALINA_HOME/conf/web.xml 에 보면 (각 웹 컨텍스트의 web.xml이 아니다.)

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>



listings 파라미터를 false로 하면 그 이후부터 디렉토리를 URL로 주면 오류 메시지가 뜬다.
ERWIN _기타 DB&NoSql 2008. 10. 16. 17:49

ERWin 7.1과 Oracle9 를 이용한 논리/물리 설계 01



ERWin 7.1을 실행한다.
사용자 삽입 이미지

새로운 문서를 하나 만든다.
사용자 삽입 이미지

위의 그림처럼 새파일을 생성하려고 하면 아래처럼 템플릿 설정창이 나타나고 표시된 부분과 같이 설정한다.
사용자 삽입 이미지

모델 속성을 지정하기 위해 다음과 같이 선택한다.
사용자 삽입 이미지

다음과 같이 모델 속성을 지정해 주어야 까치발(Crow foot)과 같은 그림을 볼 수 있다.
사용자 삽입 이미지

프라이머리 키(PK)가 엔티티 그림에서 열쇠모양 아이콘으로 나타나게 하려면 다음과 같이 선택해 준다.
사용자 삽입 이미지

엔티티를 그리려면 아래처럼 엔티티 아이콘을 클릭한다.
사용자 삽입 이미지

우측 작업 공간을 클릭하면 엔티티 노테이션이 한개 생성되고 엔티티 이름과 프라이머리 키, 그 외의 속성을 입력하면 된다. 먼저 아래 그림에서 엔티티 이름이 들어가는 곳이 선택이 되어 있고, 그 곳을 클릭하면 엔티티 이름을 지정할 수 있다.
사용자 삽입 이미지

아래의 그림처럼 엔티티 이름을 입력하고 엔터를 치면 프라이머리 키의 이름을 입력할 수 있도록 커서가 아래로 이동한다.

사용자 삽입 이미지



위의 그림에서 선택된 부분을 클릭하면 프라이머리 키 이름을 입력할 수 있고, 아래처럼 입력하고 TAB키를 누르면 일반 속성을 입력할 수 있도록 커서가 아래로 이동한다.
사용자 삽입 이미지
아래의 그림처럼, 속성을 입력하고 엔터를 쳐서 원하는 수만큼 속성 이름을 입력해 준다.
사용자 삽입 이미지
위와 동일한 절차를 이용하여 또 다른 엔티티(EMPLOYEE)를 아래처럼 생성해 준다.
사용자 삽입 이미지
사무실에 여러명의 사원이 있는 구조를 관계를 표현해 본다면 다음과 같은 순서를 따른다.
먼저 Non-Identifying relationship 아이콘을 선택하여 관계를 생성하려는 양 테이블을 한번씩 클릭해 준다.
사용자 삽입 이미지

관계를 설정한 후의 그림은 다음과 같다.
사용자 삽입 이미지
관계의 다중성을 변경하려면 위의 그림에서 관계를 나타내는 선을 더블클릭하면 다음과 같은 창이 열리고 여기에서 다중성을 다시 선택하면 된다.
사용자 삽입 이미지


ERWIN 에서 외부 데이터 테이블 정보를 가져오고 싶어 할때
ERWIN 파일이 깔려 있는 폴더에다가 DLL을 복사 해서 넣으면된다.
ERWIN 관계 모양 변경 DB&NoSql 2008. 10. 16. 14:34
erWin을 실행하면..흔히들..까치발(오리발)이라고 하는 모양이 안 나오고 점으로 표현 되어 있다.
당황하지 말고 표기법을 변경하면 된다.
 
아래와 같이 Model -> Model Properties -> Notation -> IE항목을 체크하고 OK하면 된다.

JNI 사용법 웹프로그램/java 2008. 10. 15. 13:26
휴 ~_~ 인터넷에 있는 방법보다 쉬운방법 ...

new ->다이나믹 ->an empty project
생성한뒤

file view 에 헤더 파일 및 라이브러리 등록 한다. 소스파일도 당연하고 ..

그뒤 jni.h 및 각종 헤더파일을 등록할려면
메뉴에서 tools -> 텝에 directiories 에 각종 헤더 파일및 라이브러리 위치를 등록한다.

아무 생각업이 코딩하면 끝 ~

Windows XP에서 가끔 프로그램을 설치/삭제를 하다 보면

프로그램 설치/제거시 windows installer 서비스를 액세스 할수 없습니다. 라는 오류 메시지가 나타납니다.


error.jpg
Windows Installer 서비스를 액세스 할 수 없습니다.  windows를 안전모드에서 실행하거나 windows installer가 올바르게 설치되지 않은 경우에 이 문제가 발생할 수 있습니다. 라는 에러 메세지가 뜰때 해결 방법입니다.


1. register에 다시 등록

1.1. 시작> 실행> msiexec /unregister  >확인
cmd_01.jpg

1.2. 시작> 실행> msiexec /regserver   >확인
cmd_02.jpg


만약 1의 방법으로 해결이 안되신다면

2. 프로그램 서비스를 자동으로 변경
2.1. 안되신다면 시작 -> 제어판 ->  성능 및 유지 관리 -> 관리도구 -> 서비스란으로 이동
        만약 클래식 보기로 하셨다면 제어판 -> 관리도구를 바로 보실 수 있습니다.
windows_installer_01.jpg

2.2. Windows Installer 항목 더블클릭 시작유형을 자동으로 변경하여줍니다.
windows_installer_02.jpg


만약 1,2의 방법으로도 해결이 되지 않는다면, 해당프로그램을 다시 다운 받아서 설치


3. Windows Installer 3.1 새로 설치(XP 전용)

3.1. Windows Installer Download

3.2. 링크가 깨졌다면 첨부파일을 다운 받으시길 바랍니다. 
      2008년 02월 28일 버전 : WindowsInstaller-KB893803-v2-x86.exe

출처 : 네이버 지식iN



이클립스를 새로 깔아놓고 실행해 보니 이런 에러가 뜨더군요.

사용자 삽입 이미지

이클립스 eclipse.ini 파일의 기본설정은 다음과 같습니다.
-showsplash
org
.eclipse.platform
--launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m


vm옵션을 주어 javaw.exe위치를 지정해 주면 잘 실행됩니다.
-showsplash
org
.eclipse.platform
--launcher.XXMaxPermSize
256M
-vm
C
:\Program Files\Java\jdk1.6.0_06\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

select /* 오늘날짜 시분초 포함*/
              to_char(sysdate,'yyyy/mm/dd hh24:mi:ss')
    from dual

 
select /* 오늘날짜 00시 00분 00초 */
              to_char(trunc(sysdate),'yyyy/mm/dd hh24:mi:ss')
    from dual
 
select /* 오늘날짜 00시 00분 00초 위와 동일*/
              to_char(trunc(sysdate,'dd'),'yyyy/mm/dd hh24:mi:ss')
    from dual

select /* 이번달 1일 00시 00분 00초 */
              to_char(trunc(sysdate,'mon'),'yyyy/mm/dd hh24:mi:ss')
    from dual

select /* 올해 1월 1일 00시 00분 00초 */
              to_char(trunc(sysdate,'year'),'yyyy/mm/dd hh24:mi:ss')
    from dual
 
select /* 올해 1월 1일 00시 00분 00초 */
              to_char(to_date('2002','yyyy'),'yyyy/mm/dd hh24:mi:ss')
    from dual
 
select /* 2월 1일 00시 00분 00초 */
              to_char(to_date('200202','yyyymm'),'yyyy/mm/dd hh24:mi:ss')
    from dual

select /* 2월 2일 00시 00분 00초 */
              to_char(to_date('20020202','yyyymmdd'),'yyyy/mm/dd hh24:mi:ss')
    from dual
 
select /* 2월 2일 00시 00분 01초 */
              to_char(to_date('20020202','yyyymmdd')+1/68400,'yyyy/mm/dd hh24:mi:ss')
    from dual
 
select /* 2월 2일 00시 00분 00초 -> 한달뒤*/
              to_char(add_months(to_date('20020202','yyyymmdd'),1),'yyyy/mm/dd hh24:mi:ss')

 from dual
 
from en-core
laalaal~
 
 
날짜 빼기
 
밑에 날짜 빼기가 있던데 요건 약간 다르게..
(1) 현재 날자에서 하루를 빼고 싶다고 하면
            select sysdate() - 1 from dual
(2) 1시간을 빼고 싶으면
            select sysdate() - 1/24 from dual
(3) 1분을 빼고 싶으면
            select sysdate() - 1/24/60
(q) 1초를 빼고 싶은면 어떻게 할까요? ^^
 
======================================================================================
- 날짜형 함수

    SYSDATE : 현재 시스템의 날짜 및 시간을 구함

    LAST_DAY : 지정한 날짜의 해당 월의 마지막 날짜를 구함

    MONTHS_BETWEEN : 두 날짜 사이의 개월 수를 구함

    ADD_MONTHS : 지정한 날짜로부터 몇 개월 후의 날짜를 구함

    ROUND : 날짜에 대한 반올림

    TRUNC : 날짜에 대한 버림

 

    SYSDATE : SYSDATE 10-MAY-99

    LAST_DAY(날짜값) : LAST_DAY('17-FEB-98') 28-FEB-98

   MONTHS_BETWEEN(날짜값1, 날짜값2) : MONTHS_BETWEEN('26-APR-97','22-JUL-95') 21.1290323

   ADD_MONTHS(날짜값, 숫자값) : ADD_MONTHS('22-JUL-95',21) 22-APR-97

      ROUND(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.

                              ROUND(SYSDATE,'MONTH') 01-MAY-99

      TRUNC(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.

                              TRUNC(SYSDATE,'YEAR') 01-JAN-99

 

  - 날짜에 대한 산술연산

    날짜 + 숫자 : 날짜 특정한 날로부터 몇일 후의 날짜 계산

    날짜 - 숫자 : 날짜 특정한 날로부터 몇일 전의 날짜 계산

    날짜 - 날짜 : 숫자 두 날짜 사이의 차이를 숫자로 계산

 

- 변환형 함수

    TO_CHAR : 숫자나 날짜를 문자열로 변환

    TO_NUMBER : 문자를 숫자로 변환

    TO_DATE : 문자를 날짜로 변환

 

      - TO_CHAR에서 숫자를 문자로 변환시에 형식에 사용되는 요소

          9 : 일반적인 숫자를 나타냄

          0 : 앞의 빈자리를 0으로 채움

          $ : dollar를 표시함

          L : 지역 통화 단위(ex \)

          . : 소숫점을 표시함

          , : 천단위를 표시함

      - TO_CHAR에서 날짜를 문자로 변환시에 형식에 사용되는 요소

          SCC : 세기를 표시 S는 기원전(BC) 

          YEAR : 연도를 알파벳으로 spelling

          YYYY : 4자리 연도로 표시

          YY : 끝의 2자리 연도로 표시

          MONTH : 월을 알파벳으로 spelling

          MON : 월의 알파벳 약어

          MM : 월을 2자리 숫자로 표시

          DAY : 일에 해당하는 요일

          DY :  일에 해당하는 요일의 약어

          DDD,DD,D : 연도,월,일 중의 날짜를 숫자로 표시

          HH , HH24 : (1-12) , (0-23)중의 시간을 표시

          MI : 분을 표시

          SS : 초를 표시

          AM(A.M.),PM(P.M.) : 오전인지 오후인지를 표시

 

      TO_CHAR(문자값,형식)

        숫자를 문자로 변환 : TO_CHAR(350000,'$999,999') $350,000

        숫자를 날짜로 변환 : TO_CHAR(SYSDATE,'YY/MM/DD') 95/05/25

      TO_DATE(문자값, 형식) : TO_DATE('10 SEPTEMBER 1992','DD MONTH YYYY')10-SEP-92

      TO_NUMBER(문자값) : TO_NUMBER('1234') 1234





오라클 날짜함수

출처:http://blog.naver.com/pumba3/10006685033

# 날짜계산
select months_between(sysdate,to_date('2002-12-22','yyyy-mm-
dd'))
-- months_between(A,B) = A-B/30
--select add_months(sysdate,4) -- 특정일의 달수 더한 날
--select next_day(sysdate,'friday') -- 특정일의 다음주 요일
--select last_day(sysdate) -- 특정일의 해당 월의 마지막 날
--select round(sysdate,'dd') -- 특정일의 반올림(오후면 다음날..)
--select trunc(sysdate,'ww') -- 특정일의 전주 토요일(해당 전주의 마지막 날)에해당하는 날짜
--select trunc(sysdate,'D') -- 특정일의 주 일요일(해당 주의 첫째 날)에해당하는 날짜

from dual
 

/* 어제 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE-1) AND TRUNC(SYSDATE-1)+0.99999421
/* 오늘 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE) + 0.99999421
/* 내일 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1) AND TRUNC(SYSDATE+1)+0.99999421
/* 금주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D')
                        AND TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'D')+6.99999421
/* 차주 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+8)-TO_CHAR(SYSDATE, 'D')
                        AND TRUNC(TRUNC(SYSDATE)+14.99999421)-TO_CHAR(SYSDATE, 'D')
/* 금월 */ 날짜칼럼 BETWEEN TRUNC(SYSDATE+1)-TO_CHAR(SYSDATE,'DD')
                        AND TRUNC(LAST_DAY(SYSDATE))+0.99999421
/* 전월 */ 날짜칼럼 BETWEEN TRUNC(ADD_MONTHS(SYSDATE,-1)+1)-TO_CHAR(SYSDATE,'DD')
                        AND TRUNC(LAST_DAY(ADD_MONTHS(SYSDATE, -1)))+0.99999421
/* 차월 */ 날짜칼럼 BETWEEN ADD_MONTHS(TRUNC(SYSDATE),1)-TO_CHAR(SYSDATE,'DD')+1
                        AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE),1)+0.99999421)

 

 

# 특정일 까지의 간격을 년, 개월, 일로 표현하기

SELECT
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19970101', 'YYYYMMDD'))/12) "년",
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19970101', 'YYYYMMDD')) -
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19970101', 'YYYYMMDD'))/12) * 12) "개월",
TRUNC((MONTHS_BETWEEN(SYSDATE,TO_DATE('19970101', 'YYYYMMDD')) -
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19970101', 'YYYYMMDD')))) * 30.5) "일"
FROM DUAL;

 


# 당월의 주차 구하기..
SELECT
'20040511' as "날짜"
, ceil((to_number(substrb('20040511', -2, 2)) + 7 - to_number(TO_CHAR(TO_DATE('20040511','YYYYMMDD'),'D')))/7) as "월별 주차"
from dual;


 

# 시간 계산 SQL
SELECT TRUNC(TO_DATE('20010502223443','YYYYMMDDHH24MISS')-TO_DATE('20010501213344','YYYYMMDDHH24MISS')) || ' day ' ||
       TRUNC(MOD((TO_DATE('20010502223443','YYYYMMDDHH24MISS')-TO_DATE('20010501213344','YYYYMMDDHH24MISS')),1)*24) || ' hour ' ||
       TRUNC(MOD((TO_DATE('20010502223443','YYYYMMDDHH24MISS')-TO_DATE('20010501213344','YYYYMMDDHH24MISS'))*24,1)*60) || ' minute ' ||
       TRUNC(ROUND(MOD((TO_DATE('20010502223443','YYYYMMDDHH24MISS')-TO_DATE('20010501213344','YYYYMMDDHH24MISS'))*24*60,1)*60)) || ' sec '
       " Time Interval "
FROM DUAL ;

Base 64 웹프로그램/java 2008. 9. 17. 09:46
참고 사이트를 이용해 servlet 공부를 하던중 base64 인코더와 디코더를 이용하는 예제가 있었다.

참고 사이트 구문중 'sun에서 이렇게 base64로 인코딩된 문자열을

디코딩해주기위한 sun.misc.BASE64 클래스를 제공합니다.' 라는 글과

코드중 import sun.misc.BASE64Decoder; 구문으로 인하여 나의 오해를 샀다....

검색결과 JDK에 기본으로 들어가있는 패키지란다.. ㅡㅡ;;

jdk/jre/lib/rt.jar
<== 요안에 있단다..

  /**
     * BASE64 Encoder
     *
     * @param str
     * @return
     * @throws java.io.IOException
  */
  public static String base64Encode(String str)
  {
      String result = "";
      sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
      byte[] b1 = str.getBytes();
      result = encoder.encode(b1);
      return result;
  }

   /**
     * BASE64 Decoder
     *
     * @param str
     * @return
     * @throws java.io.IOException
  */

  public static String base64Decode(String str)
  {
      String result = "";
      try
      {
          sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
          byte[] b1 = decoder.decodeBuffer(str);
          result = new String(b1);
      }
      catch (IOException ex)
      {
      }
      return result;
  }