JSP&Servlet/기초정리

JSP&Servlet 기초 - MVC Model2 방식

줘니(•̀ᴗ•́)و 2023. 2. 13. 12:20
728x90

3. MVC Model2 방식

: M / V / C 로 나눠 생각

 

 

 

 

 

저번 포스팅 Model1 방식의 실습을 이어서 로그인 기능을 Model2 방식으로 해보자!

 

 

 

 

 

 

 

Login.jsp/Main.jsp/Join.jsp 파일을 복사해 가져오고,

DAO.java/DAO.java 파일도 복사해 model패키지에 넣는다.

 

이러고 이제 나머지 실습을 진행하면 된다.

 

 

 

1. Main.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<a href="Join.jsp"><button>회원가입</button></a> 
	<br><br>
	<a href="Login.jsp"><button>로그인</button></a>
	
</body>
</html>

 

 

 

2. Login.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<form action="LoginProgram" method="post">
		<input type="text" name="id"> <br>
		<input type="password" name="pw"> <br>
		<input type="submit" value="로그인">
	
	</form>
	
</body>
</html>

 

 

 

3. LoginProgram.java

: 로그인에 대한 기능 연결하기

 

package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.smhrd.model.DAO;
import com.smhrd.model.DTO;


public class LoginProgram extends HttpServlet {
	private static final long serialVersionUID = 1L;


	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// 한글 인코딩 잡기
		request.setCharacterEncoding("utf-8");
		
		// 로그인에 대한 기능 연결하기
		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
		
		// DB에 해당하는 로그인 정보 전달하기
		// import 필요
		DAO dao = new DAO();
		DTO dto = new DTO(id, pw);
		
		// 로그인 메소드에 따른 결과값(String) 저장
		String result = dao.login(dto);
		
		// 로그인 성공 -> result = "테스트";
		// 로그인 실패 -> result = null;
		
		if(result != null) {
			// 성공! - 포워드 방식 사용
			RequestDispatcher rd = request.getRequestDispatcher("LoginSuccess.jsp");
			// 전달할 데이터 작성하기
			request.setAttribute("name", result);
			rd.forward(request, response);
		}else {
			// 실패
			response.sendRedirect("LoginFail.jsp");
		}
	}

}

 

 

 

4. LoginFail.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<h1>로그인 실패!</h1>
	<a href="Main.jsp"><button>main으로 돌아가기</button></a>
	<a href="Login.jsp"><button>login으로 돌아가기</button></a>
	
</body>
</html>

 

 

 

5. LoginSuccess.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<%
		String name = (String)request.getAttribute("name");
	%>
	
	<%= name%>님 환영합니다!
	
</body>
</html>

 

 

 

 

 

 

728x90