간단한 로그인 구현.
![clip_image001[4] clip_image001[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0014-3.png)
먼저 UserVo.java 생성
CREATE TABLE user (
id varchar(25) NOT NULL,
pw varchar(45) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
(데이터베이스에는 위와 같이 생성한다. 미리 id, pw를 적절히 넣어 두자.)
![clip_image002[4] clip_image002[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0024-1.png)
UserDao.java 를 만들어서, 추후에 myBatis(iBatis)에서 매핑된 쿼리의 결과를 객체로 저장(리스트가 아니기 대문에 queryForObject()를 사용하면 된다.)
![clip_image003[4] clip_image003[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0034-1.png)
User.xml을 만들어서 DB 쿼리 결과를 저장.
![clip_image004[4] clip_image004[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0044-1.png)
SqlMapConfig.xml에서 새로 추가한 User.xml 을 인식시켜준다.
![clip_image005[4] clip_image005[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0054-1.png)
로그인화면(login.jsp)에서 id, pw를 받는 폼을 간단히 만들어주고,
![clip_image006[4] clip_image006[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0064-1.png)
struts.xml에 login관련 Action을 매칭해준다.(LoginAction.java)
먼저 로그인 화면(loginUserAction.action)은 method=”form”을 써서 화면만 나타나게 해주고,(setter로 폼 데이터를 받아옴)
실제로 로그인을 처리할 loginAction.action에서는 SUCCESS, ERROR의 경우를 서로 다른 페이지로 보여주도록 설정했다.(getter로 폼 데이터를 받아올 수 있다.)
![clip_image007[4] clip_image007[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0074-1.png)
LoginAction의 form()에서는 화면만 뿌려주므로 별도의 처리가 필요 없고,
![clip_image008[4] clip_image008[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0084-1.png)
execute()가 실행될 loginAction.action에서 map 형태로 id를 받아와서 위에서 작성한 dao의 내용을 수행, DB에도 사용자를 찾아서 객체가 잘 만들어지면 로그인 성공을,
![clip_image009[4] clip_image009[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0094-1.png)
loginSuccess.jsp
아니면 실패를 보여주게 설정했다. 성공의 경우 SUCCESS가 리턴되고, 실패하면 ERROR가 리턴됨.
![clip_image010[4] clip_image010[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0104-1.png)
loginError.jsp
![clip_image011[4] clip_image011[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0114-1.png)
로그인화면 ( user/loginUserAction.action )
![clip_image012[4] clip_image012[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0124-1.png)
성공 시
![clip_image013[4] clip_image013[4]](http://archmond.net/wp-content/uploads/2016/11/clip_image0134-1.png)
실패 시