프로젝트/selfmade Blog - V1 (deprecated)
9. 유저 관련 기능 - 회원가입
zangsu_
2023. 8. 31. 21:51
회원가입
회원 가입 기능을 먼저 구현해 보자.
뷰 제작
가장 먼저 서버에서 값을 받아오기 위한 간단한 뷰를 제작해 본다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<body>
<div class="container">
회원 가입 페이지 입니다.
<form action="http://localhost:8080/user" method="post">
<p>아이디 : <input type="text" name="id"/><br></p>
<p>비밀번호 : <input type="password" name="password"/><br></p>
<input type="submit"/>
</form></div>
</body>
</html>
그리고, 회원 가입이 성공했을 떄 보여 줄 창은 다음과 같다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<body>
<div class="container">
success join
</div>
</body>
</html>
컨트롤러
다음으로, 뷰를 명시해 주고, 프론트의 데이터 전송을 받아줄 컨트롤러를 생성해 준다.
@Controller
@RequestMapping("/user")
public class UserController {
private final String viewPath ="view/user/";
@GetMapping("/join")
public String joinView() {
return viewPath + "join";
}
@PostMapping()
public String join(ServletRequest request) {
String id = request.getParameter("id");
String password = request.getParameter("password");
System.out.println(id + " " + password);
return viewPath + "successJoin";
}
}
localhost:8080/user/join 주소로 접속했을 때는 join.jsp 뷰로 이동시켜 준다.
그리고, 해당 뷰에서 데이터를 입력하면 데이터를 받아줄 메서드 join() 메서드에서는 입력받은 값을 콘솔에 출력해 주고, successJoin.jsp로 이동시켜 준다.
중간 결과
회원가입 페이지에서 값을 입력하면
콘솔에서 입력 값을 확인할 수 있고,
회원가입 성공 페이지로 이동한다.
DTO 생성
데이터 전송을 위한 DTO를 생성해 준다.
@Data
@NoArgsConstructor
public class UserReceivingDTO {
int idx;
String id;
String password;
public UserReceivingDTO(String id, String password) {
this.id = id;
this.password = password;
}
public User getUserObj(){
return new User(this.id, this.password);
}
}
서비스
DAO 객체와 Controller를 연결해 줄 Service를 생성해 준다.
@Service
public class UserService {
@Autowired
UserDAO userDAO;
public void join(UserReceivingDTO userDTO) throws SQLException {
userDAO.save(userDTO.getUserObj());
}
}
그리고, 컨트롤러에서 join() 메서드를 호출해 준다.
@PostMapping()
public String join(ServletRequest request) throws SQLException {
String id = request.getParameter("id");
String password = request.getParameter("password");
userService.join(new UserReceivingDTO(id, password));
return viewPath + "successJoin";
}
데이터를 입력하면
데이터가 성공적으로 입력되는 것을 확인할 수 있다.