순서

 

테이블 스페이스 생성 -> 임시 테이블 스페이스 생성 -> 사용자 계정 생성 -> 사용자 권한부여

 

1) 테이블 스페이스 생성

create tablespace 스페이스명

datafile '저장위치'

size 테이블 스페이스 크기

autoextend on 자동확장 여부

next 증가 사이즈;


예)

create tablespace sys_temp

datafile 'G:\tablespace\temp.dbf'

size 500m

autoextend on

next 100m;

 

2) 임시 테이블 스페이스 생성

create temporary tablespace temp_temp

tempfile 'G:\tablespace\temp_temp.dbf'

size 500m

autoextend on

next 100m;

 

3) 사용자 계정생성

create user 사용자명

identified by 비밀번호

default tablespace 테이블 스페이스 명(1번 예제의 빨간색)

temporary tablespace 임시 테이블 스페이스명(2번 예제의 빨간색)

 

예)

create user line

idenfified by line

default tablespace sys_temp

temporary tablespace temp_temp;

 

4) 사용자 권한부여

grant connet, resource, dba to line;

grant create any directory to line;

grant create procedure to line;

 

 

 

 

 

 

'오라클 > 오라클 정리' 카테고리의 다른 글

오라클 데이터 중복제거  (0) 2010.11.30
<오라클 정리>  (0) 2010.02.18
Posted by 미스터네오
,

struts.xml

      <interceptor-ref name="prepare"/>             
      <interceptor-ref name="modelDriven"/>
      <interceptor-ref name="params"/>

prepare인터셉터 : Action에서 Preparable인터페이스를 사용해서 prepare()메소드를 구현하면
                           Action메소드를 호출하기전에 먼저 prepare()메소드를 수행한다.
  * vo객체생성

modelDriven인터셉터 : ModelDriven인터페이스를 구현한 액션클래스의 getModel()메소드를
                                 호출해서 getModel()메소드가 반환하는 객체의 프로퍼티를 밸류 스택에 저장한다.
                                 이 인터셉터는 모델이 널값이 아닌 경우에 스택에 저장한다.
  * form에서 넘어온 데이터를 스택에 저장

params인터셉터 : 모든 파라미터를 밸류 스택에 저장한다.
  * 스택에 있는 데이터를 vo에 넣어줌

Action.java 

 public class UserName implements Preparable, ModelDriven<TestVo>{
    // Preparable과 ModelDriven을 implements한 후
    private TestVo testVo;
    public TestVo getTestVo() {
      return testVo;
    }
    public void setTestVo(TestVo testVo) {
      this.testVo = testVo;
    }

    //Preparable 인터페이스에 반드시 구현해야하는 메소드
    public void prepare(){
      // 여기에 사용자가 폼객체로 사용할 객체 생성
      testVo = new TestVo(); 
    }
    public TestVo getModel(){
      //프로퍼티를 밸류 스택에 저장
      return testVo
    }
    public String execute()  throws Exception{
      return "success";
    }
}

Posted by 미스터네오
,



진행순서
① 사용자로부터 요청이 들어오면 Interceptor를 지나 Action 에서 Business Logic을 수행 후
    action mapping 에의해 result로 결과가 보내지게 된다.
② 이때 result 의 type="tiles" 로 설정하게 되면 Result에서는 web.xml에 설정한 Tiles Listener를 수행하고
    WEB-INF 폴더 아래에 있는(web.xml 파일과 경로가 같은) tiles.xml(tiles의 설정이 들어있는 xml파일을 로딩한다.)
   이름은 어떠한 것이라도 상관 없다
③ 그 결과를 다시 Interceptor에 전달하여 사용자로 결과를 보내주게 된다.

작업순서
1) Tiles Plug-in을 수행하기 위한 Library파일을 설정한다.
    struts 2의 스펙에 있는 다음의 Library파일을 추가 한다.
commons-digester-1.8.jar              :  플러그인을 사용하기 위해서 꼭 필요한, 플러그인을 이용하겠다고 정의해주는 Library
struts2-tiles-plugin-2.0.14.jar           :  아래서부터는 tiles를 사용하기 위한 library 
tiles-api-2.0.4.jar
tiles-core-2.0.4.jar
tiles-jsp-2.0.4.jar

2) web.xml 파일에 Tiles Listener를 설정한다.
<listener>
    <listener-class>
      org.apache.struts2.tiles.StrutsTilesListener 
    </listener-class>
</listener> 

3) Tiles의 설정이 들어있는 tiles.xml파일을 생성(파일의 이름은 아무거나 상관이 없으며 WEB-INF폴더 에 있어야 한다.)
 <?xml version="1.0" encoding="EUC-KR" ?>

<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<tiles-definitions>
    <definition name="index" template="/tiles/classicLayout.jsp">
        <put-attribute name="title"  value="Struts2 Tiles Example"/>
        <put-attribute name="menu"   value="/tiles/menu.jsp"/>
        <put-attribute name="header" value="/tiles/header.jsp"/>
        <put-attribute name="body"   value="/tiles/body.jsp"/>
        <put-attribute name="footer" value="/tiles/footer.jsp"/>
    </definition>
   
    <definition name="menu1" extends="index">
            <put-attribute name="body"   value="/tiles/body-menu1.jsp"/>
    </definition>
 
   <definition name="menu2" extends="index">
        <put-attribute name="body"   value="/tiles/body-menu2.jsp"/>
    </definition>
</tiles-definitions>

template로 설정한 jsp페이지는 기본레이아웃이 되는, 즉 index 파일이라고 말할수 있다.

하위 정의로 부터 menu1일때는 상단에 선언한 index 에서 body부분만 다음과 같은 jsp페이지로 변경하겠다는 뜻이다.

4) action mapping을 수행한다.(tiles.xml이라는 파일에서 action mapping을 수행한다.)

 <struts>
    <package name="tiles" namespace="/tiles" extends="struts-default, tiles-default">
        <action name="index">
            <result type="tiles">index</result>
        </action>
        <action name="menu1">
            <result type="tiles">menu1</result>
        </action>
        <action name="menu2">
            <result type="tiles">menu2</result>
        </action>
    </package>
</struts>
extends="tiles-default" : tiles 에서 기본적으로 사용하는 Interceptor를 수행하겠다는 설정으로 다음의 설정을 꼭해주어야
                                  Tiles를 사용할 수 있다.

만약 주소창에 index.action으로 들어오면 action name="index" 가 수행한다.
그리고는 result type="tiles" 인것을 확인하고 tiles설정이 되어있는 곳으로가 줄쳐진 index라는 곳으로 이동한다.
즉 위의 index는 tiles설정이 들어가 있는 tiles.xml(web.xml과 같은 경로에 있는 tiles설정 파일)로 들어가
definition name="index" 인것을 찾아 들어가 실행 시킨다.

5) jsp의 레이아웃 설정(tiles에서 지원하는 tag library를 통해 jsp페이지 끼워 넣을 수 있다.)
<%@ taglib prefix="tiles"  uri="http://tiles.apache.org/tags-tiles"%>
<tiles:getAsString name="title" />
<tiles:insertAttribute name="header"/>
tiles-difinition 문서에서 이름이 title인것을 찾아 문자 형으로 리턴해 준다.
즉 <put-attribute name="title"  value="Struts2 Tiles Example"/>이기 때문에 결국 화면엔 "Struts2 Tiles Example" 이렇게 출력 된다.
<put-attribute name="header" value="/tiles/header.jsp"/>
이렇게 설정되어 있기 때문에 header.jsp가 입력이 된다.

출처 : http://javastore.tistory.com/

Posted by 미스터네오
,
중복된 ROW를 한방에 중복 제거해준다.

DELETE FROM 테이블명 A
WHERE A.ROWID > (SELECT MIN(ROWID)
      FROM 테이블명 B
                   WHERE A.컬럼명 = B.컬럼명)


'오라클 > 오라클 정리' 카테고리의 다른 글

테이블 스페이스 생성  (0) 2012.06.20
<오라클 정리>  (0) 2010.02.18
Posted by 미스터네오
,

get방식을 보고 오신 분들은 바로 post방식으로 넘어가면 되지만 이전 글을 안보고 오신 분들은 get방식을 보고 오십시오

post 방식을 바로 시작하겠습니다.


1. 먼저 Web Content마우스 오른쪽 클릭 -> New -> Foder를 생성합니다.


2. 폴더명은 임의로 작성하되 너무 복잡하지 않게 합니다.


3. 폴더를 생성하면 폴더안에 jsp파일을 2개를 작성합니다. 간단하게 input.jsp와 result.jsp를 생성합니다. 생성방법은 폴더생성 방법에서 jsp를 선택하여 생성합니다.


4. 먼저  input.jsp에 <body> 안쪽 부분에 다음과 같이 작성해 줍니다.
 <form action="sevletPost.do" method="post">
  <table>
   <tr>
    <td>당신의 이름은?</td>   
   </tr>
   <tr>
    <td>
     <input type="text" name="name" />
     <input type="submit" name="확인" />
    </td>
   </tr>
  </table>
 </form>


5. result.jsp파일에는 다음과 같이 작성합니다.
 <table>
  <tr>
   <td>
    당신의 이름은 <%request.getAttribute("name"); %>입니다.
   </td>
  </tr>
 </table>


6. 이전에 작성해 놓았던 Servlet클래스 파일르 가서 doPost 메소드 안에 다음과 같이 작성해 줍니다.
  System.out.println("doPost()");
  
  String name = request.getParameter("name");
  request.setAttribute("name", name);
  
  RequestDispatcher dispatcher = request.getRequestDispatcher("/post/result.jsp");
  dispatcher.forward(request, response);


7. 마지막으로 web.xml에 다음과 같이 추가해준다.
  <servlet-mapping>
    <servlet-name>Servlet</servlet-name>
    <url-pattern>/post/sevletPost.do</url-pattern>
  </servlet-mapping>


8. 이제 서버를 내렸다가 다시 켜고 다음과 같은 경로로 들어간다. http://localhost:8080/TestServlet/post/input.jsp 위와 같은 화면이 나온다.

9. 이제 이름을 적고 버튼을 누르면 post방식으로 전송되는데 난 왜 안될까?? 확인해 보니 한글이 깨져서 나간다. 수정하고 다시 해봐야 겠다.

'Web > Servlet 정리' 카테고리의 다른 글

servlet Get방식 테스트  (0) 2010.11.02
<Servlet>  (0) 2010.02.18
Posted by 미스터네오
,

기본적으로 톰캣과 이클립스의 셋팅을 끝낸 후에 작업을 시작하는 것이 좋겠다.

프로젝트도 끝나고 본사로 복귀했지만 기초가 안잡혀 있는 신입이 이번기회를 통해서 다시 공부하는 계기로 삼고 열심히 하자!

시작합니다.

1. 먼저 프로젝트 익스플로러에서 마우스 오른쪽 클리 후에 New -> Other로 갑니다.(화면처럼 Dynamic Web Project가 있는 경우는 직접 선택하여 만듭니다.)


2. 위 화면에서 검색창에 dy라고만 쳐주면 다이나믹 웹 프로젝트가 나오는 걸 확인 할 수 있습니다 선택 후 Next


3. 맨 위에 프로젝트명을 적어주고 자신이 설치한 톰캣버전을 선택 후 Finish


4. 생성된 프로젝트를 마우스 오른쪽으로 클릭하여 위 그림처럼 선택한다.


5. 그림처럼 왼쪽메뉴에서 Java Build Path 선택 -> 위쪽 탭 메뉴에서 Libraries를 선택 -> 톰캣 선택 -> Add External JARs... 버튼 선택한다.


6. 이제 jar파일 선택하라는 창이 뜨는데 자신이 설치한 톰캣의 경로로 가서 lib폴더에 servlet-api.jar파일을 추가해 준다.
    (ex : D:\dev\server\apache-tomcat-6.0.20\lib) 


7. 이제 1번에서 만들었던 프로젝트에서 Java Resources: src를 마우스 오른쪽 클릭 -> New -> Package를 선택한다.


8. 패키지 명은 아무거나 적어주면 좋겠다 하지만 의미있는 프로젝트명으로 만들어 주는것이 좋을듯 싶다.


9. 패키지를 생성하면 위 화면처럼 보이게 된다.


10. 생성된 패키지를 마우스 오른쪽 클릭 -> New -> Servlet 선택(만약 Servlet이 없으면 Other를 선택후 Servlet을 검색)


11. Class 이름을 써 준다. 이때 기본적으로 자바에서 클래스 이름의 첫글자는 대문자로 사용한다. -> Finish


12. 클래스 파일을 생성하게 되면 패키지의 색상이 바뀌고 위 화면처럼 클래스 파일이 생성된다.


13. 그림은 간단한 설명이다.


14. doGet()메서드에 위와같은 코드를 작성해준다.
  System.out.println("doGet()");
  
  response.setContentType("text/html");
  response.setCharacterEncoding("euc-kr");
  
  PrintWriter out = response.getWriter();
  out.write("<HTML><HEAD><TITLE>Get방식</TITLE></HEAD>");
  out.write("<BODY><H1>");
  out.write("Get방식으로 접근하셨습니다.");
  out.write("<H1></BODY></HTML>");
  out.close();


15. 지금까지의 세팅을 모두 저장하고 톰캣에 프로젝트를 추가하여 서버를 실행하자


16. 이제 익스프롤러에서 http://localhost:8080/TestServlet/Servlet 경로를 적어 넣으면 위와같은 화면이 뜬다면 get방식으로 servlet접근이 성공한것이다.


17. 이때 web.xml을 확인해보면 위 그림 처럼 확인 할 수 있는데 경로와 비교해 본다면 어떻게 흘러가는지의 방향을 알 수 있다.

'Web > Servlet 정리' 카테고리의 다른 글

servlet Post방식  (1) 2010.11.02
<Servlet>  (0) 2010.02.18
Posted by 미스터네오
,
프로젝트 사이트 구축을 위해 스트러츠를 사용하기로 하고 세팅을 시작했다.
분명 수업시간에도 헤맸는데 잘 될까 모르겠다 -ㅁ-;

그래도 열심히 해보자~!!

OS : windows2003 server
DB : oracle 9i or 10g(불확실...ㅋ;;)
Tools : eclips

첫번째 스트러츠 관련 파일들을 받는다.
수업시간에 배운걸 활용해서 정리하는 것이기 때문에
다운 받은 파일도 그에 따른다..-ㅁ-;(사실 잘모르니까 따라해야한다..ㄷㄷㄷ;;)

struts-1.3.8-all.zip파일을 받고 압축을 풀어둔다.

두번째 단계 이클립스를 실행하여 세팅준비^^
나는 우리 프로젝트가 온라인 서점이기 때문에 프로젝트 이름을 BEANBOOK으로 했다..ㅎ
dynamin web project 로 생성하면 된다~
아까 압축을 푼 파일에서 다음 경로의 모든 파일을 복사한다.[struts-1.3.8-all\struts-1.3.8\lib]
그리고 그 파일들을 아까의 프로젝트 webcontent\WEB-INF\lib에 붙여 넣는다.
잘 붙여넣었는지 꼭 확인해준다~!!

세번째 작업은 아까 푼 압축파일 중에 struts-1.3.8-all\struts-1.3.8\apps 이 폴더에 가면
struts-blank-1.3.8.war 파일이 있는데 이 파일의 압축을 푼다.
그럼 위와 같은 내용이 들어 있는 것을 확인할 수 있다.

WEB-INF폴더안에 web.xml파일이 있는데 파일 내용 중 다음을 복사해서  이클립스에 생성한 프로젝트 안에
webcontent\WEB-INF의 폴더 안의 web.xml 파일에 붙여 넣는다.
그런 다음 이 파일 꼭 저장해주기~^^

다시 압축 푼 파일의 WEB-INF폴더안에 가서 struts-config.xml와 validation.xml파일을 복사해서
프로젝트의 webcontent/WEB-INF폴더 안에 붙여 넣어 준다.
짜자자잔~~ 이렇게 확인하면 되겠다~!!

네번째..본격적 코드를 만져볼 수 있겠다. 우선 struts-config.xml파일을 열어서
<message-resources parameter="MessageResources" />이 코드를 찾아서
<message-resources parameter="java.MessageResources" />요렇게 수정한다.

이에 따라 struts-1.3.8-all\struts-1.3.8\apps\struts-blank-1.3.8\WEB-INF\src\java 안에 있는 MessageResources.properties파일을 복사하여 java Resources:src에 패키지 하나(이름은 java) 생성하여 붙여 넣는다.
이 작업이 끝나면 struts-1.3.8-all\struts-1.3.8\apps\struts-blank-1.3.8 폴더안에
META_INF폴더와 index.jsp파일을 복사해서 Webcontent폴더에 붙여 넣는다. 이미 META_INF폴더가 있기 때문에
중복되었다는 메시지가 나올지도 모른다. 덮어쓰기를 해두면 된다~~
이에 덧붙여 struts-1.3.8-all\struts-1.3.8\apps\struts-blank-1.3.8\pages폴더도 복사해서 같이 붙인다.

대충 스트러츠 세팅은 이것으로 완료다~!!
제대로 되었는지 확인을 하기 위해 인터넷 탐색기 프로그램으로 확인해보자.
(서버에 프로젝트가 추가되었는지도 꼭 확인해주기...^^;)

http://localhost:9090/bb/


요렇게 나온다면 struts설정은 성공~!!

출처 : http://sijung.tistory.com/54

'Web > Struts 정리' 카테고리의 다른 글

<Struts>  (0) 2010.02.18
Posted by 미스터네오
,

SVN에서 Commit 오퍼레이션이 시간이 오래 소요되서 이클립스를 강제 종료했더니,

SVN 디렉토리에 lock이 걸려버렸다.

다시 Commit하려고 했더니, 다음과 같은 예외가 발생하였다.

org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir

svn: Working copy 'xxx' locked

org.tigris.subversion.svnclientadapter.SVNClientException: org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir
svn: Working copy 'xxx' locked

at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.update(AbstractJhlClientAdapter.java:1010)
at org.tigris.subversion.subclipse.core.commands.UpdateResourcesCommand.run(UpdateResourcesCommand.java:68)
at org.tigris.subversion.subclipse.ui.operations.UpdateOperation.execute(UpdateOperation.java:73)
at org.tigris.subversion.subclipse.ui.operations.RepositoryProviderOperation.execute(RepositoryProviderOperation.java:71)
at org.tigris.subversion.subclipse.ui.operations.SVNOperation.run(SVNOperation.java:89)
at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:144)
at org.eclipse.team.internal.ui.actions.JobRunnableContext$ResourceJob.runInWorkspace(JobRunnableContext.java:72)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir
svn: Working copy 'xxx' locked

at org.tigris.subversion.javahl.SVNClient.update(Native Method)
at org.tigris.subversion.javahl.SVNClient.update(SVNClient.java:491)
at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.update(AbstractJhlClientAdapter.java:1006)
... 8 more


이 경우 lock이 걸린 디렉토리에서 Team -> Cleanup을 실행해주면 된다.

참고:
http://blog.outsider.ne.kr/253

'Tip' 카테고리의 다른 글

Eclipse-JadClipse 설정  (0) 2010.05.14
이클립스 줄 번호 보기  (0) 2010.05.12
이클립스 속도 올리기  (0) 2010.04.08
Appfuse 설치  (0) 2010.04.05
내가 정리한 쿼츠 + 스프링 프레임웍  (0) 2010.03.30
Posted by 미스터네오
,

Eclipse-JadClipse 설정

Tip 2010. 5. 14. 11:25

1. http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download에 접속하여 최신버전 다운로드

2. Eclipse Jad Plugin(net.sf.jadclipse_3.3.0.jar)을 설치되 있는 Eclipse/plugin 폴더에 저장

3. http://www.varaneckas.com/jad에 접속하여 jad.exe 파일을 다운

4. 이클립스 재시작

5. JAD 설정
   Window > Preferences.. > Java > JadClipse
       |- Path to Decompiler : C:\jad\jad.exe
       |- directory for temporary files : C:\_decompiler    > 역 컴파일러 폴더
       |- Reuse code buffer : 역컴파일된 코드를 Buffer에 기록

6. 설정확인
   Window > Preferences.. > General > Editors > File Associations
        : "*.class"의 설정값이 "jadClipse Class file Viewer"로 설정 되어 있는지 확인

7. 한글이 깨질경우 
        :    Window > Preferences.. > Java > JadClipse > Misc
                  |-Convert Unicode strings into ANSI strings 체크
Posted by 미스터네오
,

이클립스 줄 번호 보기

Tip 2010. 5. 12. 10:31

Window -> General -> Editors -> Text Editors -> Show Line numbers
Posted by 미스터네오
,