■ DB 설치
 
Oracle 사이트에서 Oracle Database 10g Express Edition (Universal) 다운로드. 다운로드를 하기 위해서 회원가입해야 됨.

 Oracle XE(10g) 개발자용은 스키마를 만들 수 없음.

 약관 및 설치 위치를 설정하고, 암호를 설정한 다음 다음버튼 클릭!.


 요약 정보가 나옴. HTTP리스너용 포트 번호를 보면 8080으로 되어있음 아파치 WAS포트 번호도 8080이므로 둘중에 하나 변경해야됨. 설치 클릭!.
 

 설치 후 오라클 홈페이지를 실행하면(시작 메뉴에서 오라클 메뉴 - Database 홈페이지로 이동 클릭!) 로그인 창이 나타난다.


 아이디는 system 암호는 설치하면서 정한 비밀번호를 입력한다.

 로그인 후 관리에서 데이타베이스 사용자 - 사용자 관리(페이지에서 생성 클릭!) 또는 생성으로 이동.


 사용자 이름 및 암호를 입력하고 생성 클릭. 사용자 이름 : user01, 암호 : user01

■ 오라클 수동 시작으로 변경

오라클을 설치 해놓으면 윈도우가 시작 될때 느리고, 많은 메모리를 차지 하기 때문에 수동으로 설정해준다.

제어판 -> 관리도구 -> 구성 요소 서비스 -> 서비스(로컬) 에서


빨간 색 부분을 선택하여 수동으로 바꿔준다.



데이타베이스를 시작하기 위해서는 시작 - 모든프로그램 - 오라클 메뉴로 가서 데이타베이스 시작을 클릭한다.
■ MappingDispatchAction

 하나의 Action에서 두개 이상의 ActionMapping를 구현할 때 사용된다. DispatchAction 은 하나의 parameter에 실행할 메소드를 넣는 방식에다가 하나의 액션네임에 하나의 ActionClass를 사용한다. 그러나 MappingDispatchAction은 여러개의 액션네임에 하나의 ActionClass를 사용한다.



- DispatchAction과 <action-mappings> 부분이 다르다.

    <action-mappings>
<action path="/mappingIndex"
                type = "org.apache.struts.actions.ForwardAction"
                parameter="/mapping/register.jsp" />
       
        <action path="/mappingRegister"
                parameter="register"
                type="com.myhome.dispatch.InfoMappingDispatchAction"> <!-- parameter 는 Class의 Method이름이다 -->
            <forward name="result" path="/mapping/result.jsp"/>
        </action>
       
        <action path="/mappingList"
                parameter="list"
                type="com.myhome.dispatch.InfoMappingDispatchAction">
            <forward name="list" path="/mapping/list.jsp"/>
        </action>
       
        <action path="/mappingQuery"
                parameter="query"
                type="com.myhome.dispatch.InfoMappingDispatchAction"
                name="bean"
                scope="request"
                input="/mapping/modify.jsp">
            <forward name="query" path="/mapping/modify.jsp"/>
        </action>   
       
        <action path="/mappingUpdate"
                parameter="update"
                type="com.myhome.dispatch.InfoMappingDispatchAction"
                name="bean"
                scope="request"
                input="/mapping/modify.jsp">
            <forward name="update" path="/mappingList.do" redirect="true"/>
        </action>
       
        <action path="/mappingDelete"
                parameter="delete"
                type="com.myhome.dispatch.InfoMappingDispatchAction"
                name="bean"
                scope="request"
                input="/mapping/modify.jsp">
            <forward name="delete" path="/mappingList.do" redirect="true"/>
        </action>
    </action-mappings>


자세한 내용은 파일 참조




'FrameWork > Struts1' 카테고리의 다른 글

struts1 커스터마이징하여 사용하기.  (0) 2009.11.11
Struts1 FileDownload  (0) 2009.08.18
Struts1 fileUpload  (0) 2009.08.18
Struts1의 Action 4  (0) 2009.08.16
Struts1의 Action 3  (0) 2009.08.16
Struts1의 Action 1  (0) 2009.07.27
Struts1에서 ActionForm 사용하기.  (0) 2009.07.25
Struts1 에서 iBatis 사용하기  (0) 2009.07.05
Struts 1 을 사용하여 간단한 회원가입, 리스트 불러오기.  (0) 2009.07.05
Struts1 개발환경 설정.  (0) 2009.07.05
■ Java SDK 설치

 
Sun 사이트에서 다운로드. 기본적으로 Java SE Development Kit (JDK)를 다운.

이전 버전을 다운로드 하고 싶으시면 Previous Releases라고 다운로드 탭에서 이동.

WAS는 SDK가 기본적으로 깔리는 주소를 인식하기 때문에 변경하지 않고 그냥 설치 하는 것이 좋다.

C:\Program Files\Java\jdk1.6.0_12

또는 WAS가 JAVA_HOME을 기본적으로 검색한다고 한다.


■ 환경 변수 추가 방법

Java EE 에서는 환경변수에서 JAVA_HOME을 먼저 참조한다.

내 컴퓨터에서 오른쪽 버튼 클릭 - 속성 클릭 -고급 탭으로 이동 - 환경변수 클릭 - 새로 만들기 클릭

JAVA_HOME 추가. 아래와 같이 입력한다.



시스템 변수에서 Path에 경로 추가.

Path를 선택하고 편집을 클릭한다.

Path 에다가 붙여 넣기 할 때 : ;%JAVA_HOME%\bin; 붙여 넣는다. 마지막에 추가 할 때 ; 을 넣어 주어야 한다. 맨 앞에다가 추가시에는 없어도 된다.



(콘솔 창에서 java -version 을 쳐보면 설치 및 버전 확인 가능)
검색을 테스트 하기 위해 기본적으로 100만건 이상의 자료가 있어야 공부하는데 도움이 된다.

그래서 쉽게 DB에 자료를 증가시키는 방법을 사용한다.

INSERT와 SELECT의 조인문을 이용해서 자가복사를 통해 데이터를 증가 시킨다.

SQL>INSERT INTO 테이블명 SELECT (NUMSEQ.NEXTVAL : 넘버 시퀀스가 있을 경우), 필드명, 필드명 .... FROM 테이블명;

이렇게 쿼리문을 입력하고 계속 실행해주면 10개가 20개, 20개가 40 개씩 배로 늘어나게 된다.

몇번만 해주면 쉽게 백만건을 넣을 수 있다.

이제 쿼리문 연습을 해보자.



Struts1의 다양한 Action들


struts-extras-1.3.8.jar에서 지원하며 다양한 액션을 구현 할 수 있다.

■ Action 상속 관계도



1. ForwardAction



 struts-config.xml 의 ActionMapping에서 action 요소에 parameter 속성으로 지정한 URL로 forward 하게 된다. 직접 해당 URL을 호출하면 RequestProcessor을 통해 바로 View page로 이동하지만
ForwardAction을 사용하게 되면 스트럿츠 컨트롤러 서블릿의 기능(폼 빈의 처리 등)을 사용 할 수 있다는 장점이 있다.

<!--직접 해당 URL 호출-->
<action path="/info/index" forward="/info/register.jsp"/>

<!-- ForwardAction을 사용해서 ViewPage요청 -->
<action path="/info/index"
            type=“org.apache.struts.actions.ForwardAction”
            parameter="/info/register.jsp” />


2. IncludeAction.

 

 ForwardAction과 동일한 방식이며 비즈니스 로직에서 처리 후 RequestProcessor로 진입하지 않고 바로 페이지로 이동한다. View page로의 빠른 이동이 가능하다는 장점이 있지만, Request Prcessor를 통과 하지 않기 때문에 page Encoding,validator 등 을 사용할 수 없다.

<!-- IncludeActiond 사용 -->
<action path="/index"
type = "org.apache.struts.actions.IncludeAction"
parameter = "/info/register.jsp"/>

3. DispatchAction

 하나의 Action에서 두개 이상의 ActionForward를 구현할 때 사용된다.


 JSP form 페이지에서 name이 struts-config.xml 에서 설정해논 parameter의 이름과 일치해야 실행된다.

- struts-config.xml

.... 생략 ....

    <action-mappings>
   
   <action path = "/dispatchIndex"
    type = "org.apache.struts.actions.ForwardAction"
    parameter = "/dispatch/register.jsp"/>
    
  <!-- unknow 은 input 속성을 대체하기 위한 속성이다. 입력 폼이 여러개 발생할 때 사용된다.  -->
  <action path = "/dispatch"
    name = "bean"
    scope = "request"
    unknown = "true"
    parameter = "method"
    type = "com.myhome.dispatch.InfoDispatchAction">
    
<!-- forward 이름이 메소드 마다 달라야 한다 -->
   <forward name="result" path = "/dispatch/result.jsp"/>
   <forward name="list" path = "/dispatch/list.jsp"/>
   <forward name="query" path = "/dispatch/modify.jsp"/>
   <forward name="update" path = "/dispatch/template.jsp"/>
   <forward name="delete" path = "/dispatch/template.jsp"/>
  </action>
    </action-mappings>

.... 생략 ....

- InfoDispatchAction .java

//하나의 Action에서 여러개의 action을 구현했다.

package com.myhome.dispatch;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.myhome.info.beans.InfoFormBean;
import com.myhome.info.dao.InfoDAO;
import com.myhome.info.dto.InfoDTO;


public class InfoDispatchAction extends DispatchAction{
 
 public ActionForward register(ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws Exception{
  
  /*form parameter를 bean으로 받는다*/
  InfoFormBean bean = new InfoFormBean();
  bean.setName(request.getParameter("name"));
  bean.setSex(request.getParameter("sex"));
  bean.setTel(request.getParameter("tel"));
  
  /*bean property 를 dto로 복사한다.*/
  InfoDTO dto = new InfoDTO();
  BeanUtils.copyProperties(dto, bean);
  dto.setWdate(this.getWdate());
  
  /*info table에 연동한다.*/
  
  new InfoDAO().register(dto);
  
  /*result.jsp로 포워드하기 위해 리퀘스트 영역에 dto를 binding한다*/
  request.setAttribute("dto", dto);
  
  return mapping.findForward("result");
 }
 
 public ActionForward list(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws Exception{
  
  List<InfoDTO> list = null;
  
  list = new InfoDAO().getAllQuery();
  
  request.setAttribute("list", list);

  return mapping.findForward("list");
 }
 
 public ActionForward query(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws Exception{
  InfoFormBean bean = (InfoFormBean)form;
  InfoDTO dto = new InfoDTO();
  BeanUtils.copyProperties(dto, bean);
  
  //쿼리된 object를 리퀘스트 영역에 바인딩 한다.
  
  request.setAttribute("dto", new InfoDAO().getQuery(dto));

  return mapping.findForward("query");
 }
 
 public ActionForward update(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws Exception{
  /*form parameter를 InfoFormBean으로 받는다*/
  
  /**
   *  ActionForm의 역할
   *   Form parameter의 정보를 참조하기 위해
   *   ActionForm의 객체를 초기화 한다 - reset()
   * 
   *   form parameter의 정보를 받아 유효성 검사를 실시한다 - validate()
   * 
   *   참조한 폼 정보를 form-bean에 설정된 bean으로 전달한다.
   * */
  
  InfoFormBean bean = (InfoFormBean)form;
  
  /*bean의 객체를 Entity(DTO)로 property를 복사한다.*/
  InfoDTO dto = new InfoDTO();
  BeanUtils.copyProperties(dto, bean);
  
  new InfoDAO().update(dto);
  

  return mapping.findForward("update");
 }
 
 public ActionForward delete(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
         throws Exception{

  InfoFormBean bean = (InfoFormBean)form;
  
  /*bean의 객체를 Entity(DTO)로 property를 복사한다.*/
  InfoDTO dto = new InfoDTO();
  BeanUtils.copyProperties(dto, bean);
  new InfoDAO().delete(dto);
  return mapping.findForward("delete");
 }
 protected String getWdate(){
  return new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date());
 }
 
}


자세한 내용은 파일을 참조한다.





'FrameWork > Struts1' 카테고리의 다른 글

Struts1 FileDownload  (0) 2009.08.18
Struts1 fileUpload  (0) 2009.08.18
Struts1의 Action 4  (0) 2009.08.16
Struts1의 Action 3  (0) 2009.08.16
Struts1의 Action 2  (0) 2009.08.12
Struts1에서 ActionForm 사용하기.  (0) 2009.07.25
Struts1 에서 iBatis 사용하기  (0) 2009.07.05
Struts 1 을 사용하여 간단한 회원가입, 리스트 불러오기.  (0) 2009.07.05
Struts1 개발환경 설정.  (0) 2009.07.05
Struts(스트럿츠) 란?  (0) 2009.06.27

+ Recent posts