본문 바로가기
IT/Struts2

스트럿츠2 태그 - 로그인 처리

by Jeami 2013. 7. 29.
반응형




스트럿츠2 태그



스트럿츠2 는 고유의 태그를 가지고 있습니다. EL 태그, JSTL 태그와 같이 스트럿츠2에서만 사용되는 태그인데요.

그 태그를 이용한 로그인 처리를 간단히 진행보도록 하겠습니다.


태그의 종류는 정말 다양한데, 모든 것을 다 외우기엔 벅찹니다. 따라서 가장 많이 사용되고 또 연습할 수 있는 태그를 중심으로 해보도록 하겠습니다. 로그인 처리를 진행할 때 사용되는 태그를 연습해봄으로써 전반적인 흐름을 가지시면 됩니다.



사용될 태그

<s:form />

<s:submit /> 

<s:textfield />

<s:password />

<s:property />



코딩을 해보면서 태그가 어떻게 사용되는지 바로 알아보겠습니다.

전체적인 프로젝트 흐름은 아래와 같습니다.

로그인 화면에서 아이디와 패스워드 입력 ===> 서버송신 ===> 서버에서 아이디와 패스워드 확인 ===>

일치한다면 로그인 성공 메시지 출력




추천은 블로거에게 큰 힘이됩니다(로그인 불필요) 보다 좋은 정보로 보답할게요^^





Login.jsp  로그인 폼 페이지

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

    pageEncoding="EUC-KR"%>


<!-- 스트럿츠2 태그 라이브러리를 사용하기 위한 설정 부분 시작 -->

<%@ taglib prefix="s" uri="/struts-tags" %>

<!-- 스트럿츠2 태그 라이브러리를 사용하기 위한 설정 부분 끝 -->

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">

<title>[스트럿츠2 태그이용 로그인처리]</title>

</head>

<body>

<s:property value="username"/>

<s:property value="message"/>

<s:from action="Login2.action">

<s:textfield label="아이디" name="userid" value="%{userid}"/>

<s:password label="비밀번호" name="userpw" value="%{userpw}"/>

<s:submit value="로그인" />  // 로그인,취소 버튼은 아래 포스팅 된 결과페이지에는 나와있지않지만.

 <s:reset value="취 소" />      // 이대로 실행하시면 그 실행화면에는 보이실겁니다^^

   // 단 실행될 때 버튼이 위 아래 정렬되니까, 테이블로 만들어주시면

  // 가로로 정렬 되실거예요~

</s:from>


</body>

</html>





Login.java  로그인 액션처리 페이지

package action;


import com.opensymphony.xwork2.ActionSupport;


public class Login extends ActionSupport{

//상수: 실제로 DB가 사용되는 것이 아니기 떄문에 임의로 설정해주었습니다.

private static final String my_userid="Lee";

private static final String my_userpw="1234";

private static final String my_username="이순신";

private String userid;

private String userpw;

private String username="";

private String message="로그인하세요";

public String getUserid() { return userid; }

public void setUserid(String userid) { this.userid = userid; }

public String getUserpw() { return userpw; }

public void setUserpw(String userpw) { this.userpw = userpw; }

public String getUsername() { return username; }

public void setUsername(String username) { this.username = username; }

public String getMessage() { return message; }

public void setMessage(String message) { this.message = message; }

 // 입력받은 값이 널인지 아닌지 판단

public boolean isInvalid(String value){ 

 boolean flag = false ; 

 if(value==null || value.length()==0) { flag = false; } 

 return flag; 

 // 위의 3 줄을 이렇게 === >  return( value==null || value.length()==0 ); } 한 줄로 표현가능합니다.

 @Override public String execute() throws Exception {

System.out.println("Login.java execute() 실행완료");    // 굳이 필요없지만, 동작흐름 확인

 if( this.isInvalid(this.getUserid()) ) return INPUT; 

 if( isInvalid(getUserpw()) ) return INPUT;

 if( userid.equals(my_userid) && userpw.equals(my_userpw)){ 

 username = my_username; message = "님 환영합니다."; 

 return SUCCESS; 

 } else{ 

 message = "아이디 혹은 비밀번호가 잘못되었습니다."; 

 return INPUT;     // INPUT 리턴값은 입력하는 화면으로 돌아가라는 의미.

 }

 }//end 


}//class END




struts.xml  JSP페이지 맵핑

<?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="Web0724"     extends="struts-default">    

  <action name="login" class="action.Login">

  <result>/jsp/Login{1}</result>

    <result name="input">/jsp/Login{1}.jsp</result> // 실패했을 시 이동하는 겁니다.

// 성공했을 땐 자동으로 "success"

  </action> 

  </package>

 </struts>



실행결과는 아래와 같습니다^^

차근히 해보시고 궁금하신 내용은 댓글 달아주세요~





위와 같이 상수로 설정해놓은 로그인 정보를 

입력하고 Submit 클릭해주시면,

아래와 같이 페이지로 넘어간다면, 

퍼펙트 합니다~!!





반응형

loading