..
DEV (257)
web.xml-2
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

web.xml이란


Deployment Descriptor로 각 어플리케이션의 환경을 설정하는 부분을 담당한다. WAR 파일이 패키지 될 때 같이 포함되며 root directory 밑에 /WEB-INF 디렉토리에 위치한다.

by kkaok
2003-05-12

 

web.xml 의 구조

xml 정의와 schema 선언

<?xml version="1.0" ENCODING="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd>
위 스키마는 sun 사에서 미리 정의된것이다.

 

웹 어플리케이션의 환경 설정

<web-app>
    <servlet>
      <servlet-name>사용되는 클래스명</servlet-name>
      <servlet-class>클래스 경로</servlet-class>
    </servlet>
    <mime-mapping>
      <extension>txt</extension>
      <mime-type>text/plain</mime-type>
    </mime-mapping>
    <welcome-file-list>
      <welcome-file>기본 파일 경로</welcome-file>
      <welcome-file>두번째 시작하는 파일 경로</welcome-file>
    </welcome-file-list>
    <taglib>
      <taglib-uri>태그라이브러리</taglib-uri>
      <taglib-Location>경로</taglib-Location>
    </taglib>
</web-app>

 

web.xml은 xml파일이다. 따라서 xml 작성과 동일한 규칙이 적용된다.
환경설정은 <web-app>으로 시작하고 </web-app>로 끝난다. 그외 삽입되는 요소로는 다음과 같다.

.ServletContext Init Parameters
.Session Configuration
.Servlet/JSP Definitions
.Servlet/JSP Mappings
.Mime Type Mappings
.Welcom File list
.Error Pages

 

web.xml의 elements의 순서
각 element의 순서는 아래 순서에 따른다.

<icon?>,
<display-name?>,
<description?>,
<distributable?>,
<context-param*>,
<filter*>,
<filter-mapping*>,
<listener*>,
<servlet*>,
<servlet-mapping*>,
<session-config?>,
<mime-mapping*>,
<welcome-file-list?>,
<error-page*>,
<taglib*>,
<resource-env-ref*>,
<resource-ref*>,
<security-constraint*>,
<login-config?>,
<security-role*>,
<env-entry*>,
<ejb-ref*>,
<ejb-local-ref*>


자주 쓰이는 elements 예제

<?xml version="1.0" ENCODING="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd>

<web-app>
    <display-name>어플리케이션 이름</display-name>
    <description>어플리케이션 설명</desccription>
    <!-- 서블릿 매핑 : 보안과 주소를 간략화 하기 위해 사용
        http://localhost/servlet/KCount 이렇게 사용가능  -->
    <servlet>
      <servlet-name>KCount</servlet-name>
      <servlet-class>kr.pe.kkaok.mycount.KCount</servlet-class>
    </servlet>
    <!-- load-on-startup 옵션은 서버 구동시 자동으로 시작 되도록 하는 것이다. -->
    <servlet>
      <servlet-name>PoolManager</servlet-name>
      <servlet-class>kr.pe.kkaok.jdbc.PoolManager</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- 서블릿 매핑 : 위에서 servlet 부분을 삭제한다.
        http://localhost/KCount 이렇게 사용가능  -->
    <servlet-mapping>
      <servlet-name>KCount</servlet-name>
      <url-pattern>/KCount</url-pattern>
    </servlet-mapping>
    <!-- /servlet/* 과 동일한 패턴의 요청이 들어오면 servlet으로 처리 -->
    <servlet-mapping>
      <servlet-name>invoker</servlet-name>
      <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
    <!-- 세션 기간 설정 -->
    <session-config>
      <session-timeout>
        30
      </session-timeout>
    </session-config>
    <!-- mime 매핑 -->
    <mime-mapping>
      <extension>txt</extension>
      <mime-type>text/plain</mime-type>
    </mime-mapping>
    <!-- 시작페이지 설정 -->
    <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <!-- 존재하지 않는 페이지, 404에러시 처리 페이지 설정 -->
    <error-page>
      <error-code>404</error-code>
      <Location>/error.jsp</Location>
    </error-page>
    <!-- 태그 라이브러리 설정 -->
    <taglib>
      <taglib-uri>taglibs</taglib-uri>
      <taglib-Location>/WEB-INF/taglibs-cache.tld</taglib-Location>
    </taglib>
    <!-- resource 설정 -->
 <resource-ref>
      <res-ref-name>jdbc/jack1972</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>
</web-app>

 

* 만약 톰캣 4에서 servelt에 접근이 안되는 경우
아래는 okjsp.pe.kr 운영자 kenu님의 처리 방법이다.

invoker 서블릿의 매핑이 보안문제로 막혀있어서 발생하는 문제로 $CATALINA_HOME/conf/web.xml를 열고 해당 부분의 주석을 제거한다.

<!-- The mapping for the invoker servlet -->
<servlet-mapping>
  <servlet-name>invoker</servlet-name>
  <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

security-constraint 엘리먼트를 $CATALINA_HOME/conf/web.xml 파일의 welcome-file-list 엘리먼트 아래쪽 <web-app> 에 중첩되게 복사합니다.

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
 
<security-constraint>
  <display-name>Default Servlet</display-name>
  <!-- Disable direct alls on the Default Servlet -->
  <web-resource-collection>
    <web-resource-name>Disallowed Location</web-resource-name>
    <url-pattern>/servlet/org.apache.catalina.servlets.DefaultServlet/*</url-pattern>
    <http-method>DELETE</http-method>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    <http-method>PUT</http-method>
  </web-resource-collection>
  <auth-constraint>  
    <role-name></role-name>
  </auth-constraint>
</security-constraint>

                       
톰캣을 재시동하고 테스트해보면 정상적으로 작동하는걸 확인할 수 있다.

출처 : Tong - 난 하늘을 볼테야님의 Tomcat통

'DEV > WEB WAS' 카테고리의 다른 글

jeus webtob version  (0) 2013.09.09
Jeus Response header 값 안 보이게 설정 하기  (0) 2013.07.09
web.xml분석  (0) 2008.08.28
  Comments,     Trackbacks
서블릿 컴파일 후에 실행이 안되요
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
서블릿 파일을 만들고나서 실행을 시킨다.

Hello.java(서블릿 파일이라고 가정해 보자!)

web-inf 폴더 안에 classes 폴더 안에 Hello.java파일을 넣어 놓자.

* 톰캣 안에서 어플리 케이션을 만들려면-----------------------------------------------------------
 Tomcat 5.5 / Webapp / 안에다가 자신이 만들고자 하는 어플리케이션 이름의 폴더를 만든다.(MyApp)
 그런 다음에 web-inf 폴더를 만들고 그안에 web.xml 파일을 Root폴더 안의 web.xml파일을 복사해서 넣는
 다.

 lib - jar파일이나 자원파일을 넣어놓자. (자원파일 : 만들려는 class 파일이 필요로 하는 라이브러리 파일...)
 classes - 내가 만드는 class파일이 위치한다.

만약 서블릿 파일을 만들려고 한다면?
classes파일에다가 만들자. 그런데 html나 jsp파일은 web-inf안에다가 넣으면 실행을 못시키니까
어플리 케이션 안에 종류별로 폴더를 만들어서 관리하고 실행시켜야 한다. (MyApp안에다가)

서블릿 파일을 컴파일 시킬려면 jsp-api.jar파일이 꼭 필요한데 클래스 패스를 찾지 못할 경우에

cmd - java파일 경로 - javac -classpath "자르파일 경로" 자바파일.java 이렇게 컴파일 하면 된다.

""묶어주는 이유는 컴파일시 경로에 공백이 있으면 안되는데 묶어주면서 가능해짐.ㅋ

실행 시키려면 http://localhost:8080/MyApp/servlet/Hello

꼭 servlet을 넣어야한다.

그런데 실행이 안된다.
-----------------------------------------------------------------------------------------------------------------------

실행이 되도록 하는 방식은 web.xml파일을 건드려 보자.

서블릿을 개발하면 보통 다음과 같이 web.xml에 등록하지 않습니까?

꼭 이과정을 거치지 않고 디플로이와 동시에 서블릿을 호출할 수 있는 방법은 없을까요?

web.xml 내용을 수정하고 서버를 내리지 않고도 반영하기 위해서죠...

감사합니다.

--------------- 다음 --------------------------

 <servlet>
  <servlet-name>XXX</servlet-name>
  <servlet-class>com.intranet.XXXServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>XXX</servlet-name>
  <url-pattern>/XXX</url-pattern>
 </servlet-mapping>

출처 : Tong - truemania님의 JAVA 통

Tomcat 4.X 버전 이후부터 보안상을 이유로 서블릿을 무조건 호출하는 대신 web.xml에 개별 서블릿에 대한 클래스 및 경로를 적도록 바뀐 것으로 알고 있습니다.


님께서 쓰신 것처럼 사용하려는 클래스와 그 클래스를 호출할 수 있는 경로가 쌍으로 기술되어져야 합니다.


<servlet>
        <servlet-name>servletName</servlet-name>
        <servlet-class>package.servletClass</servlet-class>
</servlet>

<servlet-mapping>
        <servlet-name>servletName</servlet-name>
        <url-pattern>servletURL</url-pattern>
</servlet-mapping>


* servlet

servlet-name: 아래 servlet-mapping에 기술해주기 위한 식별자입니다.

servlet-class: 실제 서블릿 클래스입니다. 패키지까지 정확하게 써야 합니다.


* servlet-mapping

servlet-name: 위의 servlet에 명시한 이름입니다.

url-pattern: 어떠한 URL 경로로 접근할 수 있는지를 명시합니다.


예를 봅시다.

file 패키지 안에 DownloadServlet.java 라는 파일이 있다고 가정하고,

 <servlet>
    <servlet-name>downloadServlet</servlet-name>
    <servlet-class>file.DownloadServlet</servlet-class>
 </servlet>


이 서블릿은 /servlet/download 와 같은 URL 패턴일 때 호출됩니다.

 <servlet-mapping>
  <servlet-name>downloadServlet</servlet-name>
  <url-pattern>/servlet/download</url-pattern>
 </servlet-mapping>


물론 Tomcat 4.X 버전까지는 예전과 같은 호출 방법도 가능합니다. 5.X 버전은 잘 모르겠네요.


 <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
 </servlet-mapping>


이렇게 쓰시면 서블릿마다 일일이 web.xml에 써주지 않아도 서블릿 호출이 가능합니다.



  Comments,     Trackbacks
web.xml분석
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

http://blog.naver.com/b1ack7circ1e?Redirect=Log&logNo=10052647428

http://www.xgenesis.org/xe/?mid=web_programming&page=2&document_srl=318

http://blog.naver.com/kang_129?Redirect=Log&logNo=100052364767
<?xml version="1.0" encoding="UTF-8"?>

<!--XML 문서 표준 정의-->
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

<!--필터 항상 EUC-KR로 인코딩/필터링을 한다.-->

   <filter>
      <filter-name>Encoding Filter</filter-name>
      <filter-class>kr.ac.icu.spiral.sspmt.common.EncodingFilter</filter-class>
      <init-param>
         <param-name>encoding</param-name>
         <param-value>EUC-KR</param-value>
      </init-param>
   </filter>

   <filter-mapping>
      <filter-name>Encoding Filter</filter-name>
      <url-pattern>/*</url-pattern>
   </filter-mapping>

    <!--
    To use non XDoclet filter-mappings, create a filter-mappings.xml file that
    contains the additional filter-mappings and place it in your
    project's merge dir.
    -->

    <!--
    To use non XDoclet listeners, create a listeners.xml file that
    contains the additional listeners and place it in your
    project's merge dir.
    -->

 <!-- Struts -->
<servlet>

<!--액션으로 요청이 들어오면 아래 액션 서블릿 클래스로 ㄱㄱ싱-->
 <servlet-name>action</servlet-name>

<!-- 이 클레스는 struts.jar가 있어야만 돌아갑니다.

라이브러리에서 찾아보시고 jar 푸셔서 확인하세요^^-->
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

<!--각종 파라미터들은 XML 파서가 파싱해서 정보를 갖고 있게 된다.-->
 <init-param>
     <param-name>application</param-name>
     <param-value>Resources</param-value>
  </init-param>

<!--chainConfig-->
  <init-param>
    <param-name>chainConfig</param-name>
    <param-value>/WEB-INF/conf/chain-config.xml</param-value>
  </init-param>

<!--conig-->
 <init-param>
     <param-name>config</param-name>
     <param-value>/WEB-INF/conf/struts-config.xml</param-value>
 </init-param>

<!--debug-->
   <init-param>
     <param-name>debug</param-name>
     <param-value>0</param-value>
   </init-param>
    <load-on-startup>1</load-on-startup>   
</servlet>

  <!-- struts -->

<!--*.do 즉 action.do page.do 등을 action으로 맵핑한다.-->
<servlet-mapping>
 <servlet-name>action</servlet-name>
 <url-pattern>*.do</url-pattern>
</servlet-mapping>

<!--tiles와 html, bean, logic, nested 테그라이브러리 선언-->

<jsp-config>
  <taglib>
   <taglib-uri>struts-tiles</taglib-uri>
   <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>struts-html</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>struts-bean</taglib-uri>
   <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>struts-logic</taglib-uri>
   <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
   <taglib-uri>struts-nested</taglib-uri>
   <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
  </taglib>
</jsp-config>

</web-app>

'DEV > WEB WAS' 카테고리의 다른 글

jeus webtob version  (0) 2013.09.09
Jeus Response header 값 안 보이게 설정 하기  (0) 2013.07.09
web.xml-2  (0) 2008.08.28
  Comments,     Trackbacks
ping
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
cmd 창에서 ping -t 도메인주소 -> 사이트 아이피 주소를 알수 있다.

'DEV > network' 카테고리의 다른 글

netstat  (0) 2013.07.22
hosts  (0) 2010.03.26
tnsping  (0) 2010.02.18
  Comments,     Trackbacks
오라클 리스너(Listener)란?
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

◈ 리스너(Listener)란?
 
 - 오라클 리스너는 네트워크를 이용하여 클라이언트에서 오라클 서버로 연결하기 위한 
   오라클 네트워크 관리자 입니다.
 
 - 오라클에서 네트워크를 통한 연결은 모두 리스너가 담당하며 리스너와 연결되기 위해서는
   클라이언트에 오라클 NET8이 설치되어 있고 이를 통해 오라클 서비스명이라는 것을
   만들어 접속해야 합니다.
 
 - 오라클 서버에서 리스너를 시작시켜줘야 클라이언트들이 접속할 수 있습니다.
 
 - lsnrctl명령어로 리스너를 관리 할 수 있습니다.

-
오라클 서버/클라이언트간의 네트워크 설정을 하기위해서는
  서버에서는 listener.ora파일(외부에서 DB로 접속할때 이파일의 설정을 통해서 DB에 접속)을 그리고
  클라이언트에서는 tnsnames.ora파일(원격으로 DB에 접속할때 필요한 파일)을 설정해 주어야 합니다.
  =>listener.ora 파일
     
(192.168.10.123에 오라클 사용, 파일경로 :  /home/oracle/product/9.2.0/network/admin/listener.ora)
      LISTENER =
       (DESCRIPTION_LIST =
         (DESCRIPTION =
           (ADDRESS_LIST =
             (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
           )
         (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
         )
       )
      )

     SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /home/oracle/product/9.2.0)
          (PROGRAM = extproc)
        )
      (SID_DESC =
        (GLOBAL_DBNAME = fuzewire)
        (ORACLE_HOME = /home/oracle/product/9.2.0)
        (SID_NAME = ora9)
      )
    )
 
  =>
tnsnames.ora 파일
     (192.168.10.123에 오라클 사용, 파일경로 : /home/oracle/product/9.2.0/network/admin/tnsnames.ora )
     FUZEWIRE.LOCALDOMAIN =
       (DESCRIPTION =
         (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
         )
         (CONNECT_DATA =
           (SERVER = DEDICATED)
           (SERVICE_NAME = fuzewire)
         )
       )

 - 사용예)
   => 오라클 시작하기
      
[root@localhost root]# su - oracle
   => 오라클  리스너 상태 확인
       [oracle@localhost oracle]$ lsnrctl status

       LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAY-2007 09:59:48
       Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
       Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
       TNS-12541: TNS:no listener
       TNS-12560: TNS:protocol adapter error
       TNS-00511: No listener
       Linux Error: 111: Connection refused
       Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
       TNS-12541: TNS:no listener
       TNS-12560: TNS:protocol adapter error
       TNS-00511: No listener
       Linux Error: 111: Connection refused

  => 오라클  리스너 start
      [oracle@localhost oracle]$ lsnrctl start

      LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 04-MAY-2007 10:00:04
      Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
      Starting /home/oracle/product/9.2.0/bin/tnslsnr: please wait...
      TNSLSNR for Linux: Version 9.2.0.4.0 - Production
      System parameter file is /home/oracle/product/9.2.0/network/admin/listener.ora
      Log messages written to /home/oracle/product/9.2.0/network/log/listener.log
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
      Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
     STATUS of the LISTENER
     ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 9.2.0.4.0 - Production
    Start Date                04-MAY-2007 10:00:05
    Uptime                    0 days 0 hr. 0 min. 0 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   /home/oracle/product/9.2.0/network/admin/listener.ora
    Listener Log File         /home/oracle/product/9.2.0/network/log/listener.log
    Listening Endpoints Summary...
     (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
     (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "fuzewire" has 1 instance(s).
      Instance "ora9", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully

 =>오라클 리스너 명령어보기
    [oracle@localhost oracle]$ lsnrctl help

    LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 15-JUN-2007 16:49:33
    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
    The following operations are available
    An asterisk (*) denotes a modifier or extended command:

    start               stop                status             
    services            version             reload             
    save_config         trace               spawn              
    change_password     quit                exit               
    set*                show*                  

 - 그 외 자주 사용하는 명령어)
    * 시작시 : lsnrctl
start
    * 멈출때 : lsnrctl
stop
    * 재시작시 : lsnrctl reload
    * 상태보기  :  lsnrctl
status
    * 명령어보기 : lsnrctl help

[출처] http://blog.fuzewire.com/develop/tag/listener.ora

'DEV > DB' 카테고리의 다른 글

10g 에서 테이블 완전 삭제하기.  (0) 2008.09.22
원격으로 오라클에 접속하기  (0) 2008.06.21
[db] glongin.sql  (0) 2008.06.13
  Comments,     Trackbacks
원격으로 오라클에 접속하기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 원격으로 오라클에 접속하기 위해서는 오라클 클라이언트가 필요하다.
     - 텔넷 접속 프로그램(putty)으로 접속하는 것은 오라클에는 접속할 수 있지만 다이렉트로 안된다.
       리눅스에 접속후에 sqlplus로 해서 들어가기 때문에

오라클 클라이언트 설치

< 참고 사이트 >
http://blog.naver.com/khs3177?Redirect=Log&logNo=49413499

2. DA#을 하거나 오라클클라이언트를 이용하여 다이렉트로 오라클에 접속!
    - 호스트명하고 아뒤랑 비번을 알면 된다.
    - oracle_home/network/admin/tnsname.ora

dblab10g =  //대표하는  변수명 설정 (주로 SID와 같게 헷갈리지 않도록)
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 59.xx.xx.xx)(PORT = 1521)) //호스트명, 포트
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dblab10g) //SID
    )
  )

'DEV > DB' 카테고리의 다른 글

오라클 리스너(Listener)란?  (0) 2008.07.30
[db] glongin.sql  (0) 2008.06.13
[db] rownum, rowid  (0) 2008.06.12
  Comments,     Trackbacks
이클립스에서 스트럿츠 프레임 워크 세팅하기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 이클립스 설치 http://eclipse.org -> Download 3.3 version
    - tomcatplugin
      http://www.sysdeo.com/eclipse 아래쪽에 tomecatplugin 클릭
      tomcatPluginV31.zip 다운
2. TomCat http://tomcat.apache.org 다운후 설치 struts도 다운

3. 이클립스에서 스트럿츠를 편리하게 사용하기 위해서는
    GEF(Graphical Editing Framework), htmleditor, strutsIDE가 필요하다.
    GEF : http://www.eclipse.org/gef/ 
    htmleditor :
    http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=EclipseHTMLEditor
    strutsIDE : https://sourceforge.jp/projects/amateras/files/?release_id=24130#24130

4. 라이브러리 다운후 각 파일을 압축을 풀고
    - GEF는 eclipse가 설치된 폴더에 붙여넣기 한다.
    - htmleditor과 strutsIDE 는 eclipse설치파일/plugins에 붙여넣기 한다.

5. 이제 프로젝트를 시작해 보자.
    이클립스를 켜고 프로젝트를 생성한다. 프로젝트 - 동적 웹

6. 프로젝트 생성 후 struts를 추가한다.
    프로젝트를 클릭후 마우스 오른쪽 - new - other을 선택
    Amateras/struts 폴더 밑에 add struts support를 선택하고 next한다.
    tiles와  validator plugin을 사용하겠다는 것!! finish 클릭

7. web-inf아래에  Struts-config파일이 생성되었다면 성공 이제 스트럿츠를 사용해 보자!!

8. 설정
<tomcat 설정>
    윈도우 - 설정 - tomcat5.5 - context file 설정 - 확인
    포트바꾸기 : tocathome\conf\server.xml 8080을 원하는것으로
<java 설정>
    윈도우 -  설정 - Java - 설치된 jre - 추가 클릭

'DEV > java' 카테고리의 다른 글

서블릿 컴파일 후에 실행이 안되요  (0) 2008.08.28
JSP 페이지 이동 4가지 방법 및 특성  (0) 2008.05.30
prodList.jsp  (0) 2008.05.24
  Comments,     Trackbacks
[db] glongin.sql
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
glongin.sql파일로 define_editor=vi 사용하자.

$> cd $ORACLE_HOME/sqlplus/admin

$> vi glogin.sql

그럼 그다음 ed만 치면 vi editor을 사용 할 수 있다.

vi editor 에서
i = 입력
w = 저장
q = 종료

s 2005 3555 1111 188

'DEV > DB' 카테고리의 다른 글

오라클 리스너(Listener)란?  (0) 2008.07.30
원격으로 오라클에 접속하기  (0) 2008.06.21
[db] rownum, rowid  (0) 2008.06.12
  Comments,     Trackbacks
[db] rownum, rowid
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
rownum 논리적인 값이고 rowid는 물리적인 block주소이다.

rownum은 select된 후에 정해지게 되는데 수시로 바뀐다. 주의!!

select rownum, studno
from student
where rownum =1;

이런식으로 하게 되면 sql문 실행순서에 따라서

from 절의 student 테이블을 먼저 보게 되고

다음 where 절에서 그 테이블에 대한 조건을 수행하는데.

이때 rownum 에 대한 정보는 정해진게 아니므로 where 절의 조건에 해당되는 값이 제대로 나올리 없다.

그다음 select절을 수행하는데 이때 로우넘이 정해진다.


 select prod_no
 from (select rownum a, prod_no
       from product)
 where a = 2

요런식으로 써주자. a 대신 rownum을 쓰게 되면 새로운 rownum이란 값으로 인식되므로 주의!!

'DEV > DB' 카테고리의 다른 글

오라클 리스너(Listener)란?  (0) 2008.07.30
원격으로 오라클에 접속하기  (0) 2008.06.21
[db] glongin.sql  (0) 2008.06.13
  Comments,     Trackbacks
한글 단축키
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
아래아 한글 단축키 
◆ 메뉴 표시줄을 이용할 때 사용하는 단축키
[F10키 누른 상태에서] 키보드의 숫자   한글에서 메뉴를 부를 때 F10을 누르게 되면 됩니다.
1/  2/  3/ 4/  5/  6/  7/  8/  9   우리가 일반적으로는 F10키를 누른 후 방향키를 이용하여
    메뉴를  이동하였지만 키보드의 숫자 1~9를 눌러보면
    각각의 메뉴로 이동하는 것을 아실 수 있습니다.
  ◆ 펑션키의 기능
F1  도움말 F7  편집 용지
F2  찾기 F8  맞춤법
F3  블록 설정 F9  한글↔한자/한글로
F4  구역 설정 F10  메뉴
F5  셀 편집 F12  한컴 사전
F6  스타일    
  ◆ 커서를 이동할 때 사용하는 단축키 
 Ctrl + Home  화면 첫줄로 Alt + Home  문단의 처음으로
Ctrl + End 화면 끝줄로  Alt + End  문단의 끝으로
  Ctrl + PgUp  문서 맨 처음으로  Home  줄 첫머리로
 Ctrl + PgDn  문서 맨 끝으로  End  줄 끝으로
 PageUp  앞 화면으로  Ctrl + ←  앞 낱말 처음으로
 PageDown  다음 화면으로  Ctrl + →  다음 낱말 처음으로
 Alt + PgUp  앞 쪽 처음으로  Ctrl Alt ←/→ Alt ←/→/↑/↓ 다단 이동
 Alt + PgDn  다음 쪽 처음으로 다단나누기 실행 후
  ◆ 화면조정을 할 때 사용하는 단축키 
Alt + 방향키 화면을 사방으로 이동 Ctrl + W + M 모두 아이콘으로
 ScrollLock  좌우 이동 방지  Ctrl + W + H 모두 숨기기
 Alt + W  다음 창으로 이동  Ctrl + G + P 화면 확대 - 쪽맞춤
 Ctrl + Tab 다음 문서 창으로  Ctrl + G + W 화면 확대 - 폭맞춤
 Ctrl + Shift + Tab 이전 문서 창으로  Ctrl + G + Q 화면 확대 - 100%
 Alt + Enter 창을 최대/최소 크기로  Ctrl + G + C  조판 부호 보기/해제
 Alt + R 화면을 깨끗이  Ctrl + G + T 문단 부호 보기/해제
 Ctrl + R 문서 재정렬하기  Ctrl + G + L  쪽 윤곽 보기/해제
shift +/- (NumLock키 해제후)    
화면 확대/축소
  ◆ 문서를 다룰 때 사용하는 단축키 
Alt N  새글  Ctrl F4  문서 닫기(위와 동일)
 Ctrl Alt N  문서 마당  Alt S  저장하기
 Ctrl K E  문서 마당 정보  Alt V   새이름으로 저장
 Ctrl Alt C  현재 창에 새글 만들기  Ctrl Q I   문서 요약
 Alt O  불러오기  Ctrl Q D  문서 분량
 Ctrl O  끼워 넣기  Ctrl Q X  빠른 찾기
 Alt F3  최근 문서  Alt P   인쇄
 Alt X  끝내기  Ctrl P  프린터 설정
 Alt F4  문서 닫기    
  ◆ 편집할 때 사용하는 단축키
 Enter  줄 바꾸기 F9 한자↔한글
 Insert 삽입/수정 변환 Delete (뒤) 한 글자 지우기
Alt + F9 (블록 설정 후)한글로 바꾸기(한자/일본어)  BackSpace (앞) 한 글자 지우기
Ctrl + Delete(또는 T) 뒷 낱말 지우기 Ctrl + BackSpace 앞 낱말 지우기
Ctrl + E (블록설정 후) 지우기 Ctrl + Y 한 줄 지우기
Alt + Y 이후 줄 지우기 Ctrl + Z 되살리기
Ctrl + X 오려두기 Shift + Delete 오려두기(위와 동일)
Ctrl + C 복사하기 Ctrl + V 붙이기
Ctrl + Insert 복사하기(위와 동일) Shift + Insert 붙이기(위와 동일)
Ctrl + B 골라 붙이기 Ctrl + F 한 줄씩 복사해 모으기
Ctrl + D 한 줄씩 오려 모으기 Ctrl + Q + F 찾기
Ctrl + S 임시기억장소 비우기 F2 찾기(위와 동일)
Ctrl + Q + L 거꾸로 찾기 Ctrl + Q + X 빠른 찾기
Ctrl + L 다시 찾기 Ctrl + F2 찾아 바꾸기(위와 동일)
Ctrl + Q + A 찾아 바꾸기 Alt + G 찾아가기[쪽/줄/스타일/조판부호/책갈피]
Alt + C 모양 복사
  ◆ 입력할 때 사용하는 단축키 
Alt + F1 자판배열 보기  Alt + F2 글자판 바꾸기
Alt + I (블록 설정후)상용구 만들기(블록 해제후)상용구 실행  Ctrl + F3 상용구 내용 보기
Alt + B 매크로 정의/기록 끝   Alt + 2 두 번째 매크로 실행
Alt + Z 매크로 실행 Alt + 3 세 번째 매크로 실행
Alt + 1 첫 번째 매크로 실행 Alt + 5 다섯 번째 매크로 실행
Alt + 4 네 번째 매크로 실행   Alt + 6 여섯 번째 매크로 실행
Alt + 7 일곱 번째 매크로 실행   Alt + 8 여덟 번째 매크로 실행
Alt + 0  열 번째 매크로 실행 Alt + 9 아홉 번째 매크로 실행
Ctrl + Enter(또는J) 쪽 나누기 Ctrl + K + F (날짜/시간) 형식
Ctrl + N + O 개체 삽입 Ctrl + Q + P 직전 위치로
Ctrl + Q + 1~4 기억된 위치로 Ctrl + K + 1~4 위치 기억
Ctrl + Q + B 책갈피 만들기 Ctrl + F9  (한자)부수로 입력
Ctrl + F + 10 문자표(코드문자)   Ctrl + Insert (개요 번호) 삽입
Ctrl + K + O (개요 번호) 모양 Ctrl + K + M 메일 머지 표시 달기
Ctrl + K + I 찾아 보기 표시 넣기 Ctrl + K + T 제목 차례 표시 달기
Ctrl + N + S (현재 쪽만) 감추기 Ctrl + N + P 쪽 번호 매기기
Ctrl + N + H 머리말/꼬리말 Ctrl + N + E 미주
 Ctrl + N + N 각주 Alt + - 열한 번째 매크로 실행
 Ctrl + K + C (날짜/시간) 코드 Alt + = 한영 자동 전환
Ctrl + K + D (날짜/시간) 문자열    
  ◆ 스타일 사용할 때 사용하는 단축키 
Ctrl + 0 열 번째 스타일 적용 Ctrl + 1 첫 번째 스타일적용
Ctrl + 2 두 번째 스타일 적용 Ctrl + 3  세 번째 스타일 적용
Ctrl + 4 네 번째 스타일 적용 Ctrl + 5   다섯 번째 스타일 적용
Ctrl + 6 여섯 번째 스타일 적용 Ctrl + 7  일곱 번째 스타일 적용
Ctrl + 8 여덟 번째 스타일 적용 Ctrl + 9 아홉 번째 스타일 적용
  ◆ 블록을 사용할 때 사용하는 단축키 
Shift + ←/→/↑/↓ 원하는 만큼 블록 설정 Shift + Home 커서부터 줄 처음까지
Shift + End 커서부터 줄 끝까지 Shift + PgUp 한 화면(앞으로) 블록설정
Shift + PgDn 한 화면(뒤로) 블록설정 Shift + Ctrl + Home 화면 맨 위까지
Shift + Ctrl + End 화면 맨 아래까지 Ctrl + Alt + A 모두선택(문서전체 블록)
Shift + Ctrl + PgDn 문서 맨 끝까지 Shift + Ctrl + PgUp 문서 맨 처음으로
Shift + Ctrl + ←/→ 한 단어 왼쪽/오른쪽으로     
  ◆ 글자모양이나 자간에 대한 조절을 할 때 사용하는 단축키 (블록 설정 후)
Shift + Alt + E/R  글자 크게/작게 Shift + Alt + J/K 장/평 조절
Shift + Alt + W/N  자간 넓게/좁게 Shift + Alt + U 밑줄
Shift + Alt + B  진하게 Shift + Alt + I 이탤릭
Alt + L  글자 모양 Shift + Alt + P 위 첨자 지정/해제
Shift + Alt + G  이전 글꼴로 바꾸기 Shift + Alt + S 아래 첨자 지정/해제
Ctrl + A  위 첨자/아래 첨자 입력 Shift + Alt + C 보통 모양(속성 해제)
Shift + Alt + F  다음 글꼴로 바꾸기    
  ◆ 문단 모양에 대한 조절을 할 때 사용하는 단축키 
 Alt + T 문단 모양 Shift + Alt + Z/A 줄 간격 넓게/좁게
Shift + Tab 빠른 내어쓰기 Ctrl + F6 첫 줄 들여쓰기
Ctrl + F5 첫 줄 내어쓰기 Ctrl + F8 문단 폭 좁히기
Ctrl + F7 문단 폭 넓히기 Ctrl + Alt + F5 왼쪽 여백 좁게
Ctrl + Spacebar 묶음 빈칸(2분각) Ctrl + Alt + F8 오른쪽 여백 좁게
Ctrl + Alt + F6 왼쪽 여백 넓게 Ctrl + Alt + F7 오른쪽 여백 넓게
Alt + Spacebar 고정폭 빈칸(4분각)    
  ◆ 틀에 대한 단축키 
Shift F6 한컴 사전 Shift F8 빠른 교정 내용
Shift F9 한자 자전 Ctrl F12 유의어 사전
Alt F10 달력 보기 Alt M 메일머지 만들기
Ctrl K H 하이퍼텍스트 만들기 Ctrl K B (하이퍼텍스트) 이전 위치로
Ctrl K S 상호참조 대상 만들 Ctrl K R (상호참조) 참조 만들기
  ◆ 괘선 그리기에 사용되는 단축키 
 Alt + D 괘선 그리기 F4 그리기
Spasebar 이동/지우기/그리기 F2 이동
 F3 지우기 Ctrl + → 오른쪽 수직선까지
 Shift + ↑ 위 화살표 머리 Shift + ↓ 아래 화살표 머리
Shift + ← 왼쪽 화살표 머리 Shift + → 오른쪽 화살표 머리
Ctrl + ← 왼쪽 수직선까지 End 선 끝점으로
Home 선 시작점으로    
  ◆ 그리기를 할 때 사용되는 단축키 
Ctrl + G 묶기 Shift + PgUp 앞으로
Ctrl + U 풀기 Shift + PgDn 뒤로
Shift + Home 글 앞으로 Ctrl + R 다각형편집
Shift + End 글 뒤로 ←/→/↑/↓ 위치 이동
Shift를 누른채 15도 각도의 사선을 그릴 수 있으며 정원, 정사각형, 정호등을 그릴 수 있음
Shift를 누른채 선택 다중선택(여러 개체를 동시에 선택)
  ◆ 셀 편집을 할 때 사용하는 단축키 
 F5  셀 편집 상태 F5 + C 셀 모양
F5 + L 선 모양 F5 + F5 여러 셀 블록 설정
Shift + F5 위와 동일 F5 + F7 칸 전체 셀 블록 설정
 F5 + F8 줄 전체 셀 블록 설정 Alt + 화살표 (블록) 이웃하는 셀과 함께 크기 조절
Shift + 화살표 (블록)특정 셀만 크기 조절 Ctrl + 화살표 (블록) 셀 전체 크기 조절
Ctrl+ X  (블록) 셀 오려두기 Ctrl + C (블록) 셀 복사하기
Ctrl + E (블록) 셀 지우기 Ctrl + V (블록) 셀 붙이기
  ◆ 표에 관한 단축키 
 Ctrl + N + T 표 만들기 S 셀 나누기
 Insert 줄/칸 삽입 M 셀 합치기
 Delete 줄/칸 지우기 Ctrl + N + A 표 나누기
Ctrl + N + Z 표 붙이기 Ctrl + Enter 표 한 줄 추가
Ctrl + Shift + S 표 블록 합 Ctrl + Shift + A 표 블록 평균
Ctrl + Shift + P 표 블록 곱 Ctrl + Shift + H 표 가로 합
Ctrl + Shift + V 표 세로 합 Ctrl + Shift + K 표 가로 곱
Ctrl + Shift + N 표 세로 곱 Ctrl + Shift + J 표 가로 평균
Ctrl + N + F 계산식 입력 Ctrl + N + U 재계산
Ctrl + Shift + B 표 세로 평균    
  ◆ 도구에 관한 단축키 
Ctrl N K 고치기 Ctrl N I 그림 넣기
Ctrl N B 글상자 Ctrl N L
Ctrl+N Ctrl+M 수식 Ctrl N C 캡션 편집
Shift Esc 틀/숨은 화면에서 나오기    
  ◆ 기타 단축키 
 Ctrl F1 최근 도움말 보기 Shift F1 도움말(F1과 동일)
Shift F10 빠른 메뉴 Ctrl Tab  탭 형식 대화 상자 이동
Alt 눌렀다 떼기 메뉴 부르기(F10과 동일)    
   아래한글에서 세부 단축키를 알고 싶을 때 단축키를 눌러 나타난 대화 상자에서 Alt를 누르면 노란원속에 단축키가
   보여지는데 여러분들은 그를 이용하여 세부 단축 명령을 실행시킬 수 있습니다.

'DEV > 개발관련 툴 단축키' 카테고리의 다른 글

한글 자주사용하는 단축키 정리  (0) 2014.11.28
유용한 기능  (0) 2011.01.14
이클립스 단축키  (0) 2008.12.12
  Comments,     Trackbacks