struts로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts로 검색한 결과
등록일:2008-03-16 11:47:59
작성자:
제목:Struts 2 Tutorial - 12.Login 어플리케이션 개발


본 튜토리얼은 제가 struts 2를 공부할 목적으로 아래의 원문에 링크된 문서를 번역하여 정리한 것입니다.
원문: http://www.roseindia.net/struts/struts2/struts2login.shtml



스트럿츠2 로그인 어플리케이션 개발하기
이 번 장에서, 우리는 스트럿츠 2 프레임워크 기반으로 로그인 어플리케이션을 개발할 것이다. 우리의 로그인 어플리케이션은 데이터베이스와 연동되어 사용자를 확인하지 않는다. 대신에 로그인 이름과 패스워드(사용자: Admin, 패스워드: Admin)가 액션 클래스안에 하드코딩된 값으로 확인한다.

어플리케이션 작업
  1. 입력을 받기 위한 로그인 페이지가 표시됩니다.
  2. 사용자이름과 패스워드를 입력하고 "Login" 버튼을 클릭합니다.
  3. 액션클래스에서 사용자 검증이 끝나고 사용자가 사용자이름/패스워드로 Admin/Admin를 입력했다면, 성공페이지가 표시됩니다. 그렇지 않다면 에러메시지가 화면에 표시됩니다.
어플리케이션 개발단계
스트럿츠2 프레임워크를 사용하여 로그인 페이지를 개발하는 간단하고 쉬운 방법이 있습니다.

1.로그인폼 개발
어플리케이션의 GUI에는 로그인 폼(login.jsp)과 성공 메시지 페이지(loginsuccess.jsp)가 있습니다.
login.jsp 는 사용자에게 로그인페이지를 표시합니다. 우리 어플리케이션에서는 "webapps\struts2tutorial\pages\" 폴더에 저장됩니다. 아래는 login.jsp 의 코드입니다.

<%@ taglib prefix="s" uri="/struts-tags" %>
      <html>
      <head>
      <title>struts 2 Login Application!</title>

      <link href="<s:url value="/css/main.css"/>" rel="stylesheet" type="text/css"/>

      </head>
      <body>
      <s:form action="doLogin" method="POST">
      <tr>
      <td colspan="2">
      Login
      </td>

      </tr>

        <tr>
         <td colspan="2">
               <s:actionerror />
               <s:fielderror />
         </td>
        </tr>

      <s:textfield name="username" label="Login name"/>
      <s:password name="password" label="Password"/>
      <s:submit value="Login" align="center"/>

      </s:form>

      </body>

      </html>

아래의 코드
<s:actionerror />
<s:fielderror />
는 액션 에러들와 필드 검증에러를 표시한다.

아래의 코드
<s:form action="doLogin" method="POST">
는 어플리케이션을 위한 html 폼을 생성한다.

아래의 코드
<s:textfield name="username" label="Login name"/>
<s:password name="password" label="Password"/>
는 로그인 이름과 패스워드 필드를 생성한다.

submit 버튼은 <s:submit value="Login" align="center"/> 코드가 생성한다.

어플리케이션이 실행되면 아래의 html 코드가 생성된다.
      <html>
          <head>
              <title>struts 2 Login Application!</title>

              <link href="/struts2tutorial/css/main.css" rel="stylesheet"
                type="text/css"/>
                
          </head>
          <body>

      <form id="doLogin" name="doLogin" onsubmit="return true;"
      action="/struts2tutorial/roseindia/doLogin.action" method="POST">
      <table class="wwFormTable">
                  
       <tr>
             <td colspan="2">
                 Login
             </td>

         </tr>

         <tr>
          <td class="tdLabel"><label for="doLogin_username" class="label">
           Login name:</label>
          </td>
          <td><input type="text" name="username" value="" id="doLogin_username"/>
         </td>
        </tr>

       <tr>
          <td class="tdLabel"><label for="doLogin_password" class="label">
          Password:</label></td>
          <td><input type="password" name="password" id="doLogin_password"/>
      </td>
      </tr>

       <tr>
          <td colspan="2"><div align="center"><input type="submit"
           id="doLogin_0" value="Login"/>
      </div></td>
      </tr>
      </table></form>
          </body>

      </html>

위의 생성된 html 코드를 보면 스트럿츠 2가 자동으로 form과 html 테이블과, label의 html 요소들을 생성한다는 것을 알 수 있다. 이것은 스트럿츠 1.x와 비교되는 또 다른 큰 특징이다.

loginsuccess.jsp 페이지는 사용자가 성공적으로 로그인을 할 때 로그인 성공 메시지를 표시한다.
아래는 loginsuccess.jsp의 소스이다.
      <html>

      <head>

      <title>Login Success</title>

      </head>

      <body>

      <p align="center"><font color="#000080" size="5">Login Successful</font></p>

      </body>

      </html>

2.액션클래스 개발
이제 로그인 요청을 처리할 액션 클래스를 개발해보자. 스트럿츠 2에서는 액션 인터페이스를 구현하는 것이 필수적이지 않다. 실행 서명을 가진(with execute signature) 어떠한 POJO 객체라도 스트럿츠 2에서 사용될 수 있다. 스트럿츠 2 프레임워크는 일반적으로 사용되는 인터페이스를 구현한 기본 ActionSupport 클래스를 제공합니다. 우리의 액션 클래스(Login.java)에서 우리는 ActionSupport 인터페이스를 구현합니다. 우리의 "Login.java"는 "webapps\struts2tutorial\WEB-INF\src\java\net\roseindia" 폴더에 저장됩니다.
아래는 Login.java 액션 클래스의 소스입니다.
      package net.roseindia;
      import com.opensymphony.xwork2.ActionSupport;
      import java.util.Date;


      /**
       * <p> Validate a user login. </p>
       */
      public  class Login  extends ActionSupport {


          public String execute() throws Exception {
              System.out.println("Validating login");
          if(!getUsername().equals("Admin") || !getPassword().equals("Admin")){
                  addActionError("Invalid user name or password! Please try again!");
                  return ERROR;
          }else{
            return SUCCESS;
          }
        }


          // ---- Username property ----

          /**
           * <p>Field to store User username.</p>
           * <p/>
           */
          private String username = null;


          /**
           * <p>Provide User username.</p>
           *
           * @return Returns the User username.
           */
          public String getUsername() {
              return username;
          }

          /**
           * <p>Store new User username</p>
           *
           * @param value The username to set.
           */
          public void setUsername(String value) {
              username = value;
          }

          // ---- Username property ----

          /**
           * <p>Field to store User password.</p>
           * <p/>
           */
          private String password = null;


          /**
           * <p>Provide User password.</p>
           *
           * @return Returns the User password.
           */
          public String getPassword() {
              return password;
          }

          /**
           * <p>Store new User password</p>
           *
           * @param value The password to set.
           */
          public void setPassword(String value) {
              password = value;
          }

      }

3.액션매핑설정 (struts.xml)
이제 우리는 struts.xml 파일에 액션매핑을 만들것입니다. 아래의 코드를 struts.xml 파일에 추가하세요.
      <action name="showLogin">
      <result>/pages/login.jsp</result>
      </action>

      <action name="doLogin" class="net.roseindia.Login">
      <result name="input">/pages/login.jsp</result>
      <result name="error">/pages/login.jsp</result>
      <result>/pages/loginsuccess.jsp</result>
      </action>

위에 매핑된 "showLogin" 액션은 로그인 페이지를 표시하는데 사용되고 "doLogin"은 액션 클래스(Login.java)를 사용하여 사용자를 검증한다.

4.CSS 파일 (main.css)
이 css 파일은 로그인 폼의 프리젠테이션을 높이기 위해 사용됩니다. main.css는 "\webapps\struts2tutorial\css" 폴더에 저장됩니다. 아래는 main.css의 코드입니다.
      @CHARSET "UTF-8";

      body {
      font: 12px verdana, arial, helvetica, sans-serif;
      background-color:#FFFFFF;
      }

      table.wwFormTable {
      font: 12px verdana, arial, helvetica, sans-serif;
      border-width: 1px;
      border-color: #030;
      border-style: solid;
      color: #242;
      background-color: #ada;
      width: 30%;
      margin-left:35%;
      margin-right:35%;
      margin-top:15%;
      }

      table.wwFormTable th {
      }

      table.wwFormTable tr td {
      background-color: #dfd;
      margin: 5px;
      padding: 5px;
      }

      .tdLabel {
      /*
      border-width: 1px;
      border-color: #afa;
      border-style: solid;
      */
      font-weight: bold;
      align: top;
      }

      .label {
      }

      .errorMessage {
      color: red;
      font-size: 0.8em;
      }

      #headerDiv {
      border-style: solid;
      border-width: 1px 1px 0px;
      border-color: black;
      padding: 5px;
      background-color: #7a7;
      /* height: 22px; */
      height: 1.8em;
      /* margin-bottom: 12px; */
      }

      #buttonBar {
      border-width: 0px 1px 1px;
      border-style: solid;
      border-color: black;
      color: white;
      margin-bottom: 12px;
      background-color: #7a7;
      height: 1.6em;
      padding: 5px;
      }

      #appName {
      color: white;
      font-size: 1.8em;
      }

      #pageTitle {
      font-size: 1.4em;
      color: #dfd;
      clear: none;
      }

      #appName, #pageTitle {
      float: right;
      }

      #menuContainer {
      float: left;
      }

      #brandingContainer {
      float: right:
      text-align: right;
      }

아래는 http://localhost:8080/struts2tutorial/roseindia/showLogin.action 의 결과입니다.
http://localhost:8080/<font style='background-color: rgb(51, 51, 51);' color='#ffff00' size='4'>struts</font>2tutorial/roseindia/showLogin.action

http://localhost:8080/struts2tutorial/roseindia/showLogin.action

아래는 패스워드를 잘못입력했을 때의 화면입니다.
패스워드 틀림

패스워드 틀림

아래는 아무것도 입력하지 않고 Login 버튼을 클릭했을 때의 화면입니다.
입력값 없이 Login 버튼 클릭

입력값 없이 Login 버튼 클릭


다음 섹션에서, 우리는 로그인 어플리케이션에 검증을 추가하는 방법을 배웁니다.