2019/10/16 Spring 로그인 폼
Login
1.loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login/loginForm.jsp</title>
</head>
<body>
<form method="post" action="login.do">
<table border=1>
<tr>
<td colspan=2 align=center>* 로그인 *</td>
</tr>
<tr>
<td>아이디</td>
<td><input type="text" name="id" size=20></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="pw" size=20></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type="submit" value="확인">
<input type="reset" value="취소">
</td>
</tr>
</table>
</form>
</body>
</html>
▲ 로그인 화면을 구현하는 loginForm 을 만들고 method 는 post 방식, action 은 login.do 로 취했다.
2. LoginVO
"VO" 라고 하면 지금까지 DTO,DAO를 사용하던 나에게는 무척 생소하다
LoginVO 라고 하는것은 Login 관련 DTO 와 같은 역할을 하는 것이다. 그렇기 때문에 전까지 만들어온 DTO와 같은 방법으로 만들어 주면 된다.
package kr.co.basicspring.test03;
public class LoginVO { // Value Object
// DTO 클래스
private String id;
private String pw;
public LoginVO() {}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
@Override
public String toString() {
return "LoginVO [id=" + id + ", pw=" + pw + "]";
}
}
※ 자세한 내용은 Srpring에 "DTO 와 VO 차이점" 게시글을 읽어보자
https://geminihoroscope.tistory.com/66
DTO 와 VO 의 차이점
오늘은 DTO와 VO에 관하여 알아보자 DTO는 Data Transfer Object의 약자로서, VO ( Value Object )랑 혼용해서 쓴다. 보통은 DTO와 VO를 혼용해서 사용들 하지만, 두 약자가 어떻게 다른지 알아보고 가도록 하자 D..
geminihoroscope.tistory.com
3. LoginCont
asd//사용자가 요청한 정보를 가져와서 처리하는 다양한 방법 //1) |
▲ 이전 게시물에서 배웠던 저 4가지의 처리방법 말고 한꺼번에 처리하는 방식도 존재한다
요청한 정보 동시 처리 방식
package kr.co.basicspring.test03;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller //URL에서 요청한 명령어를 처리하는 클래스
//<-스프링컨테이너(서버)에 의해서 자동으로 객체 생성된다.
public class LoginCont {
public LoginCont() {
System.out.println("-------------------------------LoginCont() 객체생성됨");
}//LoginCont end
//결과확인
//http://localhost:8090/basicspring/login.do
@RequestMapping(value="login.do",method=RequestMethod.GET)
public String loginForm() {
// /WEB-INF/views/login/loginForm.jsp
return "login/loginForm";
}//loginForm() end
@RequestMapping(value="login.do",method=RequestMethod.POST)
public ModelAndView loginProc(LoginVO vo,HttpServletRequest req,HttpSession session){
String id=vo.getId();
String pw=vo.getPw();
ModelAndView mav=new ModelAndView();
if(id.equals("겨울밤")&&pw.equals("1234")) {
//로그인 성공
mav.setViewName("login/loginResult");
session.setAttribute("s_id", id);
session.setAttribute("s_pw", pw);
req.setAttribute("msg", "로그인이 되었다~~~~!!!");
}else {
//로그인 실패
mav.setViewName("login/msgView");
mav.addObject("msg", "<p>아이디와 비번이 일치하지 않습니다.</p>");
mav.addObject("link","<a href='javascript:history.back()'>[다시시도]</a>");
}
return mav;
}//loginProc() end
}
▲ 30 line 함수 매개변수를 (LoginVO vo,HttpServletRequest req,HttpSession session) 한꺼번에 올리는 것이 가능하다
ModelAndView 로 이동할 페이지 loginResult 와 msgView 를 만들어 이동을 하자