블로그 이미지
개발자의 조건은 어떤것도아닌 3일은 기본으로 날샐수있는 체력과 3일을 안씻어도 찝찝합을 못느끼는 것과 라면을 먹어도 탈없는 위입니다.
DefineJAVA

공지사항

최근에 받은 트랙백

글 보관함

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

struts에서 Foward 사용하기

2008/01/29 14:11 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License

이번에는 Action (Foward)에 대해 배우겠습니다.
이것은 별도의 Class를 걸치지 않고 바로 view 페이지로 이동할 때 쓰입니다.
이번에 우리는 Hello Struts! 문장이 출력되는 JSP 페이지와 연결 하여 요청이 들어오면 Struts를 통해서 해당jsp 파일이 보여지도록 만들것입니다.
별다른 비지니스로직이 처리되는것이 아닌 바로 프리젠테이션로직으로 이동하는 것입니다.
순서는 다음과 같습니다.

1. jsp 파일 생성
2. struts-config.xml에 action 등록
3. 실행

아주 간단합니다. 특별한 비지니스 로직을 통하지 않으므로 Class를 만들 필요도 없구요.

1. Eclipse에서 jsp파일을 한개 만듭니다.
파일명은 helloStruts.jsp로 하겠습니다.
편의를 위해 디렉토리 한개를 만들겠습니다.

사용자 삽입 이미지

디렉토리와 파일명은 /jsp/study01/helloStruts.jsp 이와 같이 하겠습니다.
사용자 삽입 이미지

파일이 만들어 생성 되었으면 내용을 편한대로 입력하시고 저장하시면 됩니다.
사용자 삽입 이미지

2. struts-config.xml파일을 열어서 action을 등록 합니다.

사용자 삽입 이미지

<action-mappings /> 에 다음과 같이 등록 해 줍니다.
<action path="/hello" forward="/helloStruts.jsp" />

<action-mappings>
     <action path="/helloStruts" forward="/ helloStruts.jsp" />
</action-mappings>

3. 실행
이걸로 Foward 가능한 action 등록은 끝났습니다. 이제 각자 서버에 맞게 배포 후 실행 하면 다음과 같은 화면을 볼 수 있을 것 입니다.

사용자 삽입 이미지


Struts에서 Foward는 다음과 같은 순서로 이루어 집니다.
1. 요청이 들어오면 우선 URL 패턴을 통해 이것이 Struts를 이용하여 실행이 될것인지 판단합니다.
2. 스트럿츠를 통해 실행이 되어야 하는 패턴일 경우 struts-config의 action-mapping 부분에 등록되어 있는 여러 액션중 path가 맞는 것을 찾아 해당 액션이 가르키는 foward의 내용을 보여 줍니다.
(action의 type이 지정되어 있다면 해당 클레스의 excute 메소드를 실행시킵니다. )
3. foward에 해당되는 응답을 줍니다.

사용자 삽입 이미지


그림에서 파란색으로 칠해 있는 부분이 Struts에 관련된 부분입니다.
url 패턴 검사는 struts 사용을 위해 Servlet으로 등록할 때 *.do로 오는 것을 struts로 처리한다고 정의 했을 것입니다.
그러므로 helloStruts.do로 호출하게 된다면 위의 순서에 따라 helloStruts.jsp의 내용을 뿌려주게 됩니다.

글을 쓰다가 보니 또 뒤죽 박죽 되버렸네요~
다음엔 조금더 생각 있이 써야 겠네요!
내을은 class를 한개 만들어 비지니스 로직을 실행 가능 하도록 만들도록 하겠습니다.
그럼 ' '

Flex로 만들어본 RSS Reader

2008/01/24 17:10 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License

아무것도 모르면서 막 하면서 만들어본 RSS Reader Flex 참 재미 있는 거 같기는 하지만.... 한편으로 아직 부족한것도 많구나 하는 생각이~
어느정도 나오긴 했지만 아직 원하는 기능들이 다 구현되지는 않았지만 참 고생좀 했던....

http://portfolio.definejava.net/flexRssReader/rssReader.html

사용자 삽입 이미지

textArea에서 모든 HTML 다 지원하지 않아서 ExternalInterface를 이용하여 편법으로 해결했습니다.
예전에 플래쉬를 하면서 ExternalInterface 사용해본적이 있어서 혹시나 돌아다니는 예제가 있을까 하고 찾아 봤는데 역시나 외국 사이트에 있어서 다행이라고 생각했습니다.

두번째 crossDomain 문제... 음.. 이건 참.... 요것도 플래쉬를 하면서 알고 있었는데... 역시나 Flash Player를 이용하기 때문에 Flex에서도 문제가 되네요~
이건 php를 이용하여 해결했습니다. 소켓으로 해당 데이터를 가져오는 방법으로 crossDomain.xml은 제 계정에 올려 두었구요.

마지막으로 문제 되었던.... rss 정보를 가져올 때 utf-8, euc-kr 등 여러가지 인코딩 형태로 가져 와야 되는 문제....
대부분 utf-8 기준이지만.... 몇몇 군데가 euc-kr로 보내고 있었기 때문에.... utf-8 인코딩으로 바꾸는 것을 넣어 두었습니다.

다만 현재 euc-kr과 utf-8만 지원하는 상태입니다.

관리 기능은 천천히 만들어 가야 될것 같구요~

우선은 한번 공개 해 봅니다.

소스 오픈은 관리 기능 구현되면 바로 오픈 하겠습니다 ' '

http://portfolio.definejava.net/flexRssReader/rssReader.html

크리에이티브 커먼즈 라이선스
Creative Commons License

JDK 5.0 + Tomcat 이클립스 개발환경에서 Struts (1.3.8) 설치 하기

엄청 오랜만에 글을 쓰게 되었네요~
예전부터 계획했던 스트럿츠와 관련된 내용입니다.
한달동안 훈련소를 갔다가 오고 이것저것 하다 보니 시간이 많이 지나버렸네요!
오랜만에 Struts 홈페이지를 보니 1.3.8로 업그레이드가 되었더군요~
이전에 마지막에 써봤던 버젼이 1.2.9 였는데... 말이죠~
우선 기반은 1.3.8 기반으로 설명 하겠습니다.

우선 JDK와 Tomcat에 깔여 있고 툴은 이클립스 기반으로 하겠습니다.

설치 순서는 다음과 같습니다.

1. Struts 다운로드
2. 필요한 jar 파일 프로젝트의 WEB-INF 밑에 LIB 폴더에 복사(라이브러리 등록)
3. WEB.XML 파일 작성
4. Struts 설정파일(기본: struts-config.xml) 작성

자~ 대략적인 순서는 위에 갔습니다. 저렇게 보니 간단하죠?
머 그냥 해봐도 간단하기는 합니다.
그럼 시작하겠습니다.

1. Struts 다운로드
http://struts.apache.org/download.cgi#struts138

사용자 삽입 이미지

위 주소에서 알맞은 Struts 버젼을 다운 받습니다.
필자는 Full 버젼을 받도록 하겠습니다.
사용자 삽입 이미지

Full 버젼에는 밑에 있는 모든 내용이 포함되어 있습니다.
Libray + Source + Example + Documentation
사용자 삽입 이미지

Documentation 내용에 설치 하는 내용도 포함되어 있습니다.
다 다운 받으셨으면 우선 적당한 곳에 압축을 풀어서 내용을 확인 해 봅니다.

2. 필요한 jar 파일 등록
이제부터는 이클립스에서 프로젝트를 생성하고 그 프로젝트에 라이브러리 등록 하겠습니다.
우선 이클립스를 키시고 프로젝트를 한개 생성합니다.

사용자 삽입 이미지

저는 MyEclipse 6.0.1 버젼에서 동작 시키도록 하겠습니다.
그렇게 크게 차이는 없으며 이클립스를 사용하시던 분이라면 쉽게 따라 올 수 잇다고 생각합니다.
사용자 삽입 이미지

struts 이름의 웹 프로젝트를 만듭니다.

프로젝트가 생성이 되었으며 내용을 보면 기본적이 라이브러리들이 등록되어 있으며 프로젝트의 최 상위 디렉토리가 되는 WebRoot라는 디렉토리가 있으면 그 밑에 몇개의 폴더와 폴더가 있는 것이 보일 것입니다.

사용자 삽입 이미지

이제 라이브러리(jar) 파일을 복사 시키겠습니다.
아까 압축을 푼 곳을 보면 lib 폴더안에 여러 jar 파일들이 있을 것입니다.
commons 라이브러리와 core 라이브러리 타일즈 프레임워크, EL 등 여러가지 있을 것입니다.
사용자 삽입 이미지

우선 여기 있는 jar 파일을 전부 복사 하겠습니다. 원래는 필요한 것만 복사하셔서 사용하여도 되지만 여기서 하나하나 전부 설명을 할 수 없고 설치에 대한 설명을 위한 부분이기 때문에 모두 다 설치 하겠습니다.

전체를 프로젝트의 WebRoot\WEB-INF\LIB 디렉토리에 복사를 합니다.
해당 디렉토리에 복사를 하면 자동으로 Referenced Libraies에 등록이 될것입니다.

사용자 삽입 이미지

이클립스를 버젼과 설정에 따라 등록이 안될 수도 있습니다. 등록이 안될경우 프로젝트의 속성에 들어가셔서 직접 등록을 해 주시면 됩니다.

등록이 완료 되었으면 다음으로 넘어가도록 하겠습니다.

3. WEB-INF 밑에 web.xml 설정
Struts는 Servlet입니다. Servlet 등록을 위하여 web.xml파일을 열어서 편집을 하여야 합니다.

사용자 삽입 이미지

<?xml version="1.0" encoding="UTF-8"?>
<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">
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
   <!-- Action Servlet Configuration -->
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>application</param-name>
            <param-value>
                org.apache.struts.webapp.el.exercise.ApplicationResources</param-value>
        </init-param>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>


    <!-- Action Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
   
</web-app>

web.xml

필자가 추가한 내용을 <Servlet>과 <servlet-mapping> 부분입니다. Struts를 사용하기 전에 Servlet에 대하여 모르시는 분은 Servlet부터 공부를 하고 오시는 것이 더 효율적으로 공부를 하실 수 있을 것 같습니다.

<Servlet>부분을 살펴보면 이것저것 설정 정보가 있다는것을 볼 수 있습니다. 서블릿의 이름과 파리미터를 보시면 대강 이해를 하실수 있을 것입니다. struts-config 파일의 정보라든지 debug 정보 출력 정도라는지...
<Servlet-mapping>부분을 보면 요청이 어떻게 들어왔을 때 Struts로 처리를 할 것인지 적혀 있는 부분입니다.
xxx.do 로 호출 될 경우에만 Struts로 처리 한다는 이야기 입니다.

4. Struts-Config 파일 설정
web.xml 파일 설정이 끝나으면 이제 struts-config 파일을 만들어야 합니다.

사용자 삽입 이미지

설정 정보 파일은 web.xml에서 지정한 위치와 파일이름으로 생성해 주시면 됩니다.
struts-config.xml파일을 생성하시고 내용을 다음과 같이 입력 하시면 Struts 설치는 끝이 납니다.

사용자 삽입 이미지

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
    <form-beans />
    <global-forwards />
    <action-mappings />
</struts-config>

struts-config.xml
Struts 설치는 여기까지 이며~ 이 다음에 Struts 설치 한것을 테스트 해 보도록 하겠습니다.


 

크리에이티브 커먼즈 라이선스
Creative Commons License

 
전남과학대학교 학교 기업 Geo-tec 홈페이지~
윈도우 2003 Server에 ASP + MS-SQL2005 기반에서 작업 했던 프로젝트~!
주소 : http://geo-tec.co.kr/
개발비중 : 100%

[AGSolution] 도곡농협 쇼핑몰

2008/01/21 16:33 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License
사용자 삽입 이미지

고등학교 3학년 때인가~ 조대 창업 보육센타 AgSolution에서 한 마지막 프로젝트~
주소 : http://www.dogoknh.co.kr/shopping/

[Softmeca] 주식회사 Intelink

2008/01/21 16:08 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License


사용자 삽입 이미지

주식회사 Intelink.... Softmeca 입사 후 첫! 프로젝트~
GNU Board 사용 하여 만든 프로젝트 입니다.
프로젝트 진행하다 보니 홈페이지 보단~ 메일 서버 관련해서 더 많은 문제점들이 나왔던 프로젝트

주소 : http://intelink.co.jp/
개발비중 : 100%

티스토리로 이사 완료 했어요~ ' '

2008/01/21 15:17 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License
휴우~ 저번주 수요일 부터 옮기기 시작해서 드디어 다 옮겼네요~

자료 옮길 때 부터 이것저것 문제가 많네요T-T

원래 깔려있던 테터툴즈 버젼이 낮아서~ 복원 시키면 27번쨰 줄이던가~ 문제 있다고 떠서~

버젼 한단계 한단계씩 업그레이드 해서~ 다시 백업하고 복원하니 되더군요~ 휴우우~

이것도 상단히 시간이 걸리더군요~

그 담에 발생한 문제는 도메인 문제~!!

회사 네임서버를 사용하려다가 그냥 DnsEver의 서비스를 이용하려고 하는데~

목요일인가 금요일부터 등록상 문제가 있나~ 잘 안되더군요~

그래서 -.ㅠ 오늘 드디어 서비사 제대로 돌아가서~ 다 옮겼네요~

DnsEver 관리자님~ 수고 많으셨습니다~ ' 'ㅋ

자자!! 공부 시잒!!

'Define Me > Diary' 카테고리의 다른 글

티스토리로 이사 완료 했어요~ ' '  (0) 2008/01/21
직업병  (1) 2007/02/12
흑흑흑T_T  (0) 2007/02/12
이전 1 다음