본문 바로가기
IT/Struts2

스트럿츠2 다운로드 및 기초 웹 어플리케이션 만들기

by Jeami 2013. 7. 23.
반응형




=====================================

스트럿츠 두번째 시간입니다.

지난 시간에 스트럿츠 문 입구까지 왔다고 하면 오늘은 문을 살짝 열어보도록 하겠습니다.

프로그래밍 언어라는 것이 초보자들에겐 해도해도 끝도 없고, 뭘해도 제대로 하는게 하나도 없는 것 같은

느낌을 쉽게 주곤하는 것 같네요.

하지만, 하나하나씩 정복해갈 수 있도록 포기하지 않는 것이 중요한 것 같습니다.



많은 사람들과 공유할 수 있도록, 로그인 필요없이 추천 버튼 클릭 부탁드립니다^^




오늘 만들어볼 프로젝트 파일구조입니다.


이렇게 맞춰주시면 될 것 같습니다.

파일명은 임의로 지정해주셔도 상관은 없겠습니다. 

일단 지금 중요한 부분은 struts2 사용을 위한 jar 파일 import 해주는 것과,

struts.xml 및 web.xml 파일의 위치를 눈에 익혀두시기 바랍니다.


스트럿츠2를 사용한다는 것은 웹을 만들 때 유지보수 및 생산성 향상을 위한 여러가지 파일들을 사용한다는 의미와 비슷합니다. 

위 화면에서 WEB-INF ==> lib ==> 5가지 jar 파일 이 보이실건데요.

이 파일들을 찾아보도록 하겠습니다.


먼저 스트럿츠2 프레임워크를 다운로드 해야 하는데, 꽤나 거대한 설치작업을 진행하는 것이 아니라, 단순히 압축파일 다운받아서 해제해주고, 그 안에 있는 jar 파일들을 import 해줌으로써 스트럿츠2 프레임워크 구조를 사용할 수 있습니다.



스트럿츠2 다운로드

http://struts.apache.org 이동해주세요.(클릭하시면 바로 이동됩니다)




스트럿츠2

첫화면입니다. Apache Struts 2.3.15.1 GA 다운로드 클릭



스트럿츠2

노란색으로 표시된 부분 보이시나요?^^; 너무 작게 나왔네요.

Full 버전 zip 파일을 다운로드 해주세요.



다운로드 하시고, 압축해제주시면 되는데요.

해제된 파일에 보시면 lib 폴더로 들어가셔서 아까 말씀드린 jar 파일 5개를 import 해주시면 됩니다.

폴더안에 파일들이 정말 많이 있으니까 잘 찾아보세요^^

일단 파일을 찾으셨다면,

이클립스에서 Dynamic Web Project 로 새로운 프로젝트를 생성하신 후 ( 맨 위에 보시면 아시겠지만 전 Web0723 이라는 프로젝트란 이름으로 만들어주었습니다. )


다시한번 맨 위에 있는 프로젝트 파일 구조를 살펴볼게요.



WEB-INF ==> lib 폴더에 아까 찾아둔 jar 파일 5개를 전부 import 해주세요.



일단 이렇게 기본적인 셋팅이 끝났습니다. 이제 스트럿츠2 프레임워크를 사용해서 웹 어플리케이션을 제작할 수 있게 되었습니다^^



위와 같이 만들어진 파일구조로 어떤 순서로 작업을 진행할 지 먼저 말씀드릴게요.

0. web.xml 에 스트럿츠2 필터 디스패쳐 환경 구축하기.

    스트럿츠2 의 컨트롤러 FilterDispatcher 가 액션실행을 위한 환경을 만들어주기 때문에, 

    여기서부터 스트럿츠2 는 시작됩니다.

1. 액션 클래스 작성(HelloWorld.java)

2. struts.xml 에서의 액션과 리절트 매핑

3. 리절트 페이지 작성

4. 결과보기




web.xml 

기본적으로 셋팅되어있는 web.xml 화면입니다. 일단 아무것도 적지 않은 상태인데요.

아래와 같이 FilterDispatcher 컨트롤러를 등록합니다.(struts2 의 핵심기술이라고 할 수 있죠^^)



struts2 라는 이름의 FilterDispatcher 를 사용하는 클래스를 등록하였고,

<url-pattern> 이라는 것은 인터넷 창에서 보여지는 URL 주소 확장자가 .action 일 경우에 FilterDIspatcher가 실행될 수 있도록 매핑작업을 진행한 것입니다.

기본적으로 모든 mapping 작업은 위와 같은 형식으로 사용할 수 있다는 것을 참고해두시면 좋을 것 같네요.



이제 사용자가 웹에서 사용 요청이 들어오게 될 때 실행될 action 클래스를 살펴보도록 하겠습니다.

action 클래스에는 기본 액션 메소드가 정의되어 있습니다. 기본 액션 메소드란 가장 처음에 실행이 되는 부분입니다. 스트럿츠2 에서는 묵시적으로 execute() 로 지정되어 있습니다.

execute() 메소드는 리턴값으로 스트링형을 반환하는데요. 반환되는 이 리턴값이 무엇이냐에 따라서 그 다음 로직이 어떻게 진행될지가 결정된다고 생각하면 됩니다.

이렇게 반환되는 스트링형 문자열 값을 "result code" 라고 명명합니다.



result code 가 반환된 문자열이 있다면 그 문자열을 통해 무엇을 실행시킬지 연결시켜주는 연결고리가 필요하겠죠? struts.xml 에서 그 역할을 담당합니다.

일단 코드 형식은 <result name="success"> HelloWorld.jsp </result> 와 같이 쓰입니다.

어떤 의미인지 단번에 아실 수 있겠죠?^^



자꾸 설명이 길어지는데, 일단 처음이니까 세세하게 살펴볼 필요가 있습니다.

다시 본론으로 들어가서 정말 action 클래스를 살펴보도록 할게요.



HelloWorld.java

package action;


public class HelloWorld {

private String msg;

public String getMsg() {    return msg; }

public String execute() throws Exception{

this.msg = "welcome to Struts2 World";

return "success";

} //end

} //class END

=====================================================

이 액션 클래스는 POJO 형식으로 만들어졌습니다. 자바의 가장 고전적인 형태라고 생각하시면 되고, 너무 깊에 파고들 필요는 없을 것 같네요.

여기서 msg 라는 private String 변수를 선언하였고 execute() 메소드에서 변수에 문자열 대입 및 값을 리턴 시켜주었습니다.

Java Beans 에서는 대개 private 으로 변수 선언을 한 후 setter/getter 메소드를 만들어주는데, 여기서는 외부에서 값을 변경하지 못하고, 액션에서 설정한 값만을 가져다 사용만 할 수 있도록 하기 위해 setter 는 생략하였습니다. 

execute() 메소드는 액션 요청이 들어올 때, 액션 클래스가 인스턴스화 되면서 자동으로 호출이 되어버리는 메소드입니다. 스트럿츠2 에서의 기본 실행 리폴트 메소드입니다.

execute() 메소드 실행 후 그 값을 리턴시켜 주는데요. 리턴값을 리절트 코드인 success 로 인해서 다음에 실행될 페이지가 결정됩니다. 

리절트 코드는 앞서 말씀드린 struts.xml 에서 매핑 시켜주면서 그 결과 연결될 페이지로 이동시켜주는 것으로 기본 로직이 마무리 됩니다.

그럼 끝으로 struts.xml 페이지를 살펴봄으로써 이번 포스팅은 마무리 하겠습니다.

수고하셨습니다.



struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

    

<struts>

<package name="Web0723" extends="struts-default">

<action name="HelloWorld" class="action.HelloWorld"></action>

<result name="success">/HelloWorld.jsp</result>

</package>

</struts>





반응형

loading