IT 공부/JSP

회원가입 (Controller, Logic)

toraa 2022. 8. 8. 16:19

[Logic]

Member_info.java

package Logic;

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

import mycontroller.Command_Abstract;

public class Member_info implements Command_Abstract{

	@Override
	public String process(HttpServletRequest req, HttpServletResponse resp) {
		//회원정보조회 업무처리
		
		//결과
		req.setAttribute("update", "회원정보수정");
		
		//페이지
		return "m2_member_infoUpdate.jsp";
	}

}

Member_join.java

package Logic;

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

import mycontroller.Command_Abstract;

public class Member_join	implements Command_Abstract {

	@Override
	public String process(HttpServletRequest req, HttpServletResponse resp) {
		
		//회원가입관련 업무처리(로직처리)
		req.setAttribute("join","회원가입");
		
		return "m2_member_join.jsp";
	}

}

Member_login.java

package Logic;

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

import mycontroller.Command_Abstract;

public class Member_login implements Command_Abstract{

	@Override
	public String process(HttpServletRequest req, HttpServletResponse resp) {

		//로그인 관련 업무처리
				
		//결과
		req.setAttribute("login", "회원로그인");
		
		//페이지
		return "m2_member_login.jsp";
	}

}

Member_null.java

package Logic;

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

import mycontroller.Command_Abstract;

public class Member_null implements Command_Abstract{
	
	@Override
	public String process(HttpServletRequest req, HttpServletResponse resp) {
		
		//null로 방문한 비즈니스 로직처리
		
		req.setAttribute("null", "로직처리할 내용이 없습니다. 단순방문으로 필요하면 회원가입창으로 이동합니다.");
				
		return "m2_member_view_null.jsp";
	}
	
}

Member_update.java

package Logic;

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

import mycontroller.Command_Abstract;

public class Member_update implements Command_Abstract{

	@Override
	public String process(HttpServletRequest req, HttpServletResponse resp) {
		
		//회원정보수정업무처리
		
		//결과
		req.setAttribute("update", "회원정보수정");	
		
		//페이지
		return "m2_member_infoUpdate.jsp";
	}

}

[mycontroller]

Command_abstract.java

package mycontroller;

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

public interface Command_Abstract {

	public String process(HttpServletRequest req, HttpServletResponse resp);
	
}

M1_Servlet.java

package mycontroller;

public class M1_Servlet {

}

M2_Servlet_cmd.java

package mycontroller;

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 M2_Servlet_cmd extends HttpServlet{
	
	
		@Override
		protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		req.setCharacterEncoding("utf-8");
		String cmd =req.getParameter("cmd");
		
		Object obj = null;
		String view = null;
		
		if(cmd==null) {
			view = "m2_member_view_null.jsp";
		}
		else if(cmd.contentEquals("member_join")) {
			view="m2_member_join.jsp";
		}
		else if (cmd.contentEquals("member_info")) {
			view="m2_member_info.jsp";
		}
		else if(cmd.equals("member_infoUpdate")) {
			view = "m2_member_infoUpdate.jsp";
		}
		else if(cmd.equals("member_login")) {
			view = "m2_member_login.jsp";
		}
		
		req.setAttribute("result", obj);
		
		RequestDispatcher dispatcher = req.getRequestDispatcher(view);
		dispatcher.forward(req, resp);
	}
}

M2_Servlet_Processor.java

package mycontroller;

import java.io.IOException;

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

//컨트롤러
@WebServlet("/CommandProcessor")
public class M2_Servlet_Processor extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		req.setCharacterEncoding("utf-8");
		String cmd = req.getParameter("cmd");
		
		Command_Abstract processor = null;	//부모
		String view = null;
		
		if(cmd == null) {
			processor = new Logic.Member_null();  //업캐스팅
		}
		else if(cmd.equals("member_join")) {
			processor = new Logic.Member_join();
		}                                    
		else if(cmd.equals("member_info")) {
			processor = new Logic.Member_info();
		}
		else if(cmd.equals("member_login")) {
			processor = new Logic.Member_login();
		}
		else if(cmd.equals("member_update")) {
			processor = new Logic.Member_update();
		}
		
		view = processor.process(req, resp);  //모델(비즈니스로직)의 return값
		
		RequestDispatcher dispatcher = req.getRequestDispatcher(view);
		dispatcher.forward(req, resp);
	}
}

[WebContent]

index_member.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 align="center">
	<h1>홈페이지에 오신 것을 환영합니당ㅇㅅㅇ</h1>
	<br>
	<img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTGttL37rh3x5t8B9EiYh9Y7j9ObUtFMYBRVAoAurfxjnFCOzUpT2Jemh0sVHLy5HwhyZU&usqp=CAU">
	<br><br>
		<h3><a href="http://Localhost:8080/Ch13/CommandProcessor?cmd=member_login">로그인</a></h3>
		<h3><a href="http://Localhost:8080/Ch13/CommandProcessor?cmd=member_join">회원가입</a></h3>
		<h3><a href="http://Localhost:8080/Ch13/CommandProcessor?cmd=member_update">회원수정</a></h3>
		<h3><a href="http://Localhost:8080/Ch13/CommandProcessor?cmd=member_info">회원정보</a></h3>		
</body>
</html>

m2_member_info.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>
	<h2>회원정보를 보여주는 페이지입니당</h2>
	<%-- 
	<%
		request.setCharacterEncoding("utf-8");
		String code = (String) request.getAttribute("");
		String name = (String) request.getAttribute("");
	%> 
	--%>
	
	<table border="1">
		<tr><td>회원번호</td><td>회원이름</td></tr>
		<tr><td><%="10001" %></td><td><%="서대길" %></td></tr>
		
	</table>
	
</body>
</html>

m2_member_infoUpdate.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>
	<h2>여기는 회원정보를 수정하는 페이지입니당</h2>
	<form action="">
		회원번호 : <input type="text" name="code" size="10"><p>
		회원이름 : <input type="text" name="name"><p>
		
		<input type="submit" value="수정">&nbsp;&nbsp;
		<input type="reset" value="취소"><p>
		
		<a href = "">수정확인</a>
	</form>
</body>
</html>

m2_member_join.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>
	<h2>여기는 회원가입 </h2>
	<form action="#">
		회원번호 : <input type="text" name="code" size="10"><p>
		회원이름 : <input type="text" name="name"><p><br>
		
		<input type="submit" value="등록">
		<input type="reset" value="취소"><p>
		
		<a href="">등록확인</a>
	</form>
</body>
</html>

m2_member_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>
	<h2>로그인</h2>
	<form action="">
		아이디 : <input type="text" name="id"><p>
		비밀번호 : <input type="password" name="pw"><p>
		
		<input type="submit" value="로그인">
	</form>
</body>
</html>

m2_member_view_null.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>
	<h2>환영합니당</h2>
	<h2>여기는 null값으로 입력된 결과를 보여주는 페이지입니당</h2>
	
</body>
</html>

 

'IT 공부 > JSP' 카테고리의 다른 글

Database 연동2  (0) 2022.08.04
Database 연동1  (0) 2022.08.03
Taglib  (0) 2022.08.03
EL (표현언어)  (0) 2022.08.02
Session  (0) 2022.08.02