본문 바로가기

Programing/Struts

Struts환경 설정 및 예제1

 

기존의 JSP Model1에서도 자바 빈을 잘 사용하면 표현과 비즈니스 로직을 분리 할 수 있지만 때에 따라서는

View 역할을 하는 JSP가 일부 로직을 처리하는 역할을 맡게 되어 로직을 정확히 구분하지 못하는 경우가 발생 하게 된다.

이로 인하여 Model2작업을 생각하게 되는데 이것은 다음과 같은 흐름으로 이루어 진다.

사용자 삽입 이미지

                                                          [그림 1 Struts의 구조]

 

 하지만 이런 Model2가 모든 문제를 해결하는 방법은 아니다. 위 그림을 보면 알 수 있듯이 [컨트롤러 영역]에 있는 객체들로 인해

항상 View역할을 하는 JSP를 지정해야 하며 또한 컨트롤러 역할을 하는 객체들을 설계하는 것이 사실 보통 일은 아니다.

이런 컨트롤러 객체(Servlet)들을 설계하느라 노력과 시간이 많이 투자되어야 하므로 오히려

JSP Beans작업보다 개발 속도에 대해서는 그 누구도 보장할 수 없는 실정이다.(실용 부재 촉발)

하지만 서버의 동시 접속 량이 몇 백 명 이상이라면 모르지만 그렇지 않는다면 도입을 고려 해봐야 한다.

그럼 [컨트롤러 영역]의 각 객체들의 역할을 알아보도록 하자!

객체

상위객체

설명

ActionServlet

org.apache.struts.ActionServler

요청을 처음 받는 곳이며 웹 Application의 전체적인 흐름을 제어하는 중요한 객체이다.

Action

org.apache.struts.Action

요청된 일을 실제 처리하도록 Model전용 클래스의 비지니스 로직을 호출하는 부분

ActionForward

org.apache.struts.ActionForward

jsp페이지와 1:1로 매핑되어 있으며 jsp페이지로 이동시 필요한 정보를 담고 있다.

 

그럼 환경부터 설정하고 간단한 예제를 살펴보도록 하자!

1) 환경설정

1) http://struts.apache.org/ 로 접속하여 [Prior Releases]항목을 선택한 후 원하는 버전을 선택한다. 우린

   struts-1.2.9버전을 선택하여 왼쪽에 있는 [Download]에 있는 [Binaries]를 선택한다. 그리고

[Older Releases] 파트에 있는 Archive Site.를 선택하자! 또 다시 [binaries/]를 클릭한 후

struts-1.2.9-bin.zip 파일을 내려 받는다. 그리고

   적당한 위치에 압축을 풀어둔다. 압축이 풀린 곳의 lib/struts.jar파일을 복사하여

   JDK가 설치된 곳의 jre/lib/ext에 붙여넣기 해 둔다.

 

2) 원하는 웹 컨텐트에 WEB-INF라는 폴더에 lib라는 폴더를 만들어 두고

   Struts가 압축이 풀린 곳의 lib라는 폴더에 있는 .jar파일들을 복사해둔다. 같은 방법으로

   같은 WEB-INF라는 폴더에 tlds라는 폴더에 확장자가 .tld파일들을 복사해 둔다.

 

3) WEB-INF라는 폴더에 config라는 폴더를 만들어 두고 다음과 같은 XML문서를 작성하여

이름을 struts-config.xml로 저장한다.

 

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

 

<!DOCTYPE struts-config PUBLIC

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

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

 

<struts-config>

  <data-sources />

  <form-beans/>

  <global-exceptions />

  <global-forwards/>

  <action-mappings>

           <action path="/test" forward="/strutsTest.jsp"/>

</action-mappings>

<controller/>

  <message-resources parameter="test"/>

</struts-config>

 

 

 

다음은 스트럿츠를 위한 기본적인 web.xml문서의 수정이 필요하다. 다음은 일반적인 web.xml문서인데 여기에 다음과 같은

 내용을 추가 하여야 한다.

 

일반 web.xml문서

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app id="WebApp_ID" 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">

       <display-name>s_Test</display-name>

       <welcome-file-list>

             <welcome-file>index.html</welcome-file>

             <welcome-file>index.htm</welcome-file>

             <welcome-file>index.jsp</welcome-file>

             <welcome-file>default.html</welcome-file>

             <welcome-file>default.htm</welcome-file>

             <welcome-file>default.jsp</welcome-file>

       </welcome-file-list>

</web-app>

수정 web.xml문서

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app id="WebApp_ID" 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">

       <display-name>s_Test</display-name>

      

       <servlet> <!—이것이 ActionServlet이다 -->

             <servlet-name>action</servlet-name>

             <servlet-class>

                    org.apache.struts.action.ActionServlet

             </servlet-class>

             <init-param>

                    <param-name>config</param-name>

                    <param-value>/WEB-INF/config/struts-config.xml</param-value>

             </init-param>

 

             <!-- ActionServlet 웹어플리케리션이 시작시에 같이 시작되어야 한다. -->

             <load-on-startup>1</load-on-startup>

       </servlet>

      

       <!-- 확장자가 su 끝나는 모든 URL들은 ActionServlet 거쳐서 수행되어야 한다. -->

       <servlet-mapping>

             <servlet-name>action</servlet-name>

             <url-pattern>*.st</url-pattern>

       </servlet-mapping>

      

       <welcome-file-list>

             <welcome-file>index.html</welcome-file>

             <welcome-file>index.htm</welcome-file>

             <welcome-file>index.jsp</welcome-file>

             <welcome-file>default.html</welcome-file>

             <welcome-file>default.htm</welcome-file>

             <welcome-file>default.jsp</welcome-file>

       </welcome-file-list>

</web-app>

 

~ 이제 그럼 다음과 같은 jsp페이지를 작성하여 strutsTest.jsp라는 이름으로 해당 웹 컨텐트에 저장해두자!!

strutsTest.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<html>

<head>

<title>Insert title here</title>

</head>

<body>

<h1>아싸 ! 첫번째 스트럿츠!!</h1>

<hr>

</body>

</html>

 

위와 같이 작업이 되었다면 다음 그림과 같이 웹 브라우저에서 입력하고 결과를 확인해 보자!

사용자 삽입 이미지