[23.02.08] 74일차 [프론트엔드]

W·2023년 2월 8일
0

국비

목록 보기
111/119
  • MemberFrontController.java
package com.itwillbs.member.action;

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;

public class MemberFrontController extends HttpServlet{
	//주소매핑
	// 가상주소 http://localhost:8080/Model2/InsertForm.me
	
	//메서드 호출 => 자동으로 메서드 호출할려면
	//=> 처리담당자(서블릿) 만들기=> 자동으로 doGet() doPost() service() 호출
	
	//메서드 오버라이딩 alt shift s -> v
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("MemberFrontController doGet()");
		//방식 상관없이 호출
		doProcess(request, response);
	}//doGet()

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("MemberFrontController doPost()");
		//방식 상관없이 호출
		doProcess(request, response);
	}//doPost()


	protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("MemberFrontController doProcess()");
		//주소매핑
		// 가상주소 http://localhost:8080/Model2/InsertForm.me
		//   /InsertForm.me  가상주소 뽑아오기
		System.out.println("뽑은 가상주소 : "+request.getServletPath());
		String sPath=request.getServletPath();
		
		// 이동정보를 저장하는 자바파일 선언
		ActionForward forward = null;
		
		// 부모 인터페이스 틀 선언
		Action action=null;
		
		if(sPath.equals("/MemberInsertForm.me")) {
			System.out.println("가상주소 /MemberInsertForm.me => 실제페이지 member/insertForm.jsp 이동");
			// 실제페이지  member/insertForm.jsp 이동
//			response.sendRedirect("member/insertForm.jsp");
			
			// 주소가 변경되지 않고 request, response 가지고 이동
//			RequestDispatcher dispatcher=
//					request.getRequestDispatcher("member/insertForm.jsp");
//			dispatcher.forward(request, response);
						
			forward = new ActionForward();

			forward.setPath("member/insertFrom.jsp");
			forward.setRedirect(false);
			
		}else if(sPath.equals("/MemberInsertPro.me")) {
			System.out.println("가상주소 /MemberInsertPro.me => 실제자바파일 연결");
			// 실제페이지 (처리) 자바 InsertPro.java <=> (디비)자바
			// 패키지 com.itwillbs.member.action
			// 파일이름 InsertPro.java
			// execute(HttpServletRequest request, HttpServletResponse response) 메서드 정의
			
//			// InsertPro 객체생성
//			InsertPro insertPro = new InsertPro();			
//			// execute(request, response) 메서드 호출
//			try {
//				insertPro.execute(request, response);
//			} catch (Exception e) {
//				e.printStackTrace();
//			}
			// 부모 = 자식 객체 생성
			action = new MemberInsertPro();
			try {
				forward=action.execute(request, response);
			} catch (Exception e) {
				
			}
//		
			// 주소이동
//			response.sendRedirect("MemberLoginForm.me");
			
		} else if (sPath.equals("/MemberLoginForm.me")) {
//			member/loginForm.jsp
//			RequestDispatcher dispatcher=
//					request.getRequestDispatcher("member/loginForm.jsp");
//			dispatcher.forward(request, response);
			
			// 이동정보 저장
			forward = new ActionForward();
			forward.setPath("member/loginForm.jsp");
			forward.setRedirect(false);
			
		} else if (sPath.equals("/MemberLoginPro.me")) {
			// 자바객체 생성 -> 메서드 호출
			// 패키지 com.itwillbs.member.action
			// 파일이름 LoginPro.java
			// execute2(HttpServletReuqest request, HttpServletResponse response) 메서드 정의
			
			LoginPro loginPro = new LoginPro();
			try {
				loginPro.execute2(request, response);
			} catch (Exception e) {
				e.printStackTrace();
			}
			// 주소를 변경하면서 이동
//			response.sendRedirect("Main.me");
		} else if(sPath.equals("/MemberMain.me")) {
			// member/main.jsp 주소변경없이 이동
//			RequestDispatcher dispatcher=
//					request.getRequestDispatcher("member/main.jsp");
//			dispatcher.forward(request, response);
			
			forward = new ActionForward();
			forward.setPath("member/main.jsp");
			forward.setRedirect(false);
		}
		
		// 이동 => 이동정보 (주소정보, 이동방식) => 이동 정보 저장하는 자바파일
		
//		String path ="주소정보";
//		boolean isRedirect = true;
		// 이동정보 자바파일 있는지 확인
		if(forward != null) {
			// 이동방식 비교
			if(forward.isRedirect()==true) {
				response.sendRedirect(forward.getPath());
			}else{
				RequestDispatcher dispatcher=
						request.getRequestDispatcher(forward.getPath());
				dispatcher.forward(request, response);
			}
		}
		
		
	}//doProcess()
	
}//클래스
  • InsertPro.java
package com.itwillbs.member.action;


import java.sql.Timestamp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.itwillbs.member.db.MemberDAO;
import com.itwillbs.member.db.MemberDTO;

public class InsertPro {
	
	// 메서드 정의
	public void execute(HttpServletRequest request, HttpServletResponse response) throws Exception{
		System.out.println("InsertPro execute()");
		
		request.setCharacterEncoding("utf-8");
		// request 태그이름에 해당하는 값을 가져오기 => 변수에 저장
		String id=request.getParameter("id");
		String pass=request.getParameter("pass");
		String name=request.getParameter("name");
		//가입날짜 => 시스템 날짜 
		// java.sql.Timestamp 자바내장객체 => 날짜 
		Timestamp date=new Timestamp(System.currentTimeMillis());

		// id, pass, name, date,age,gender,email,phone,mobile,address,postcode,...
		// => 하나의 자바파일에 담아서 전달(MemberDTO :member 데이터 전송 객체)
		// => 패키지 member 파일이름 MemberDTO
		// => id, pass, name, date 멤버변수, set get메서드()
		// => MemberDTO 객체생성 => 기억장소 할당
		MemberDTO dto=new MemberDTO();
		System.out.println("MemberDTO 바구니 주소 : "+dto);
		// => 기억장소에 id, pass, name, date 값을 저장
		dto.setId(id);
		dto.setPass(pass);
		dto.setName(name);
		dto.setDate(date);

		// 1~4단계 자바파일(MemberDAO:member 디비접근객체) 에 
		// => Java Resources - src/main/java - 패키지 member 파일이름 MemberDAO
		// insertMember() 메서드 정의해서 
		// 자바파일 객체생성하고 메서드호출
		MemberDAO dao=new MemberDAO();
		System.out.println("MemberDAO 주소 : "+dao);
		// dao.insertMember(id, pass, name, date);
		dao.insertMember(dto);
	}

}
  • LoginPro.java
package com.itwillbs.member.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.itwillbs.member.db.MemberDAO;
import com.itwillbs.member.db.MemberDTO;

public class LoginPro {
	public void execute2(HttpServletRequest request, HttpServletResponse response){
		System.out.println("LoginPro execute2()");
		
		String id=request.getParameter("id");
		String pass=request.getParameter("pass");

		MemberDAO dao=new MemberDAO();

		MemberDTO dto=dao.userCheck(id, pass);
		if(dto !=null){
			// 세션 객체 생성
			HttpSession session = request.getSession();
			session.setAttribute("id", id);
//		    response.sendRedirect("main.jsp"); -> 컨트롤러에서 이동
		}else{
			// id, pass 틀리면 MemberDTO 빈(null) 바구니 가져오기
			// => script   "아이디 비밀번호 틀림" 뒤로이동
//		    %>
//		    <script type="text/javascript">
//				alert("아이디 비밀번호 틀림");
//				history.back();
//		    </script>
			//
//		    <%
		} // else
		return;
	} // execute2 메서드
}// 클래스
  • ActionForward.java
package com.itwillbs.member.action;

public class ActionForward {
//	String path ="주소정보";
//	boolean isRedirect = true;
	// true => response.sendRedirect()
	// false => dispatcher.forward()
	
	private String path;
	private boolean isRedirect;
	
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
	public boolean isRedirect() {
		return isRedirect;
	}
	public void setRedirect(boolean isRedirect) {
		this.isRedirect = isRedirect;
	}
	
	
}
  • Action.java
package com.itwillbs.member.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 클래스 만들기 위한 부모의 공통적인 틀

public interface Action {
	// 추상메서드 : 부모의 공통적인 메서드 틀
	// 리턴할형 이동정보를 담아서 리턴
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception;
	
}
  • MemberInsertPro.java
package com.itwillbs.member.action;

import java.sql.Timestamp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.itwillbs.member.db.MemberDAO;
import com.itwillbs.member.db.MemberDTO;

public class MemberInsertPro implements Action {

	@Override
	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println("InsertPro execute()");
		
		request.setCharacterEncoding("utf-8");
		// request 태그이름에 해당하는 값을 가져오기 => 변수에 저장
		String id=request.getParameter("id");
		String pass=request.getParameter("pass");
		String name=request.getParameter("name");
		//가입날짜 => 시스템 날짜 
		// java.sql.Timestamp 자바내장객체 => 날짜 
		Timestamp date=new Timestamp(System.currentTimeMillis());

		// id, pass, name, date,age,gender,email,phone,mobile,address,postcode,...
		// => 하나의 자바파일에 담아서 전달(MemberDTO :member 데이터 전송 객체)
		// => 패키지 member 파일이름 MemberDTO
		// => id, pass, name, date 멤버변수, set get메서드()
		// => MemberDTO 객체생성 => 기억장소 할당
		MemberDTO dto=new MemberDTO();
		System.out.println("MemberDTO 바구니 주소 : "+dto);
		// => 기억장소에 id, pass, name, date 값을 저장
		dto.setId(id);
		dto.setPass(pass);
		dto.setName(name);
		dto.setDate(date);

		// 1~4단계 자바파일(MemberDAO:member 디비접근객체) 에 
		// => Java Resources - src/main/java - 패키지 member 파일이름 MemberDAO
		// insertMember() 메서드 정의해서 
		// 자바파일 객체생성하고 메서드호출
		MemberDAO dao=new MemberDAO();
		System.out.println("MemberDAO 주소 : "+dao);
		// dao.insertMember(id, pass, name, date);
		dao.insertMember(dto);
		
		// 이동정보 저장
		ActionForward forward = new ActionForward();
		forward.setPath("MemberLoginForm.me");
		forward.setRedirect(true);
		return forward;
	}

	
	
}

0개의 댓글