[정보처리산업기사 과정평가형 - 실기] 회원가입 만들기

    회원가입 만들기가입 만들기


     

     

    회원가입을 만들겠습니다.

    먼저 제일 처음에 만든 join.jsp를 준비하시면 됩니다.

     

    여기서 등록버튼을 누르게 되었을 경우를 가정하게 됩니다.

     

    join.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("UTF-8");
    %>
    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <head>
    <title>Hi</title>
    </head>
    <body>
    	<center>
    		<h1>홈쇼핑 회원 등록</h1>
    		<form action="joinAction.me" method="post">
    			<table border="1">
    				<tr>
    					<td>회원번호(자동발생)</td>
    					<td><input type="text" name="num"></td>
    				</tr>
    				<tr>
    					<td>회원성명</td>
    					<td><input type="text" name="name"></td>
    				</tr>
    				<tr>
    					<td>회원전화</td>
    					<td><input type="text" name="tel"></td>
    				</tr>
    				<tr>
    					<td>회원주소</td>
    					<td><input type="text" name="address"></td>
    				</tr>
    				<tr>
    					<td>가입일자</td>
    					<td><input type="text" name="joindate"></td>
    				</tr>
    				<tr>
    					<td>고객등급</td>
    					<td><input type="text" name="grade"></td>
    				</tr>
    				<tr>
    					<td>도시코드</td>
    					<td><input type="text" name="city"></td>
    				</tr>
    				<tr>
    					<td colspan="2"><center><input type="submit" value="등록"> <input
    						type="button" value="조회"></center></td>
    				</tr>
    			</table>
    		</form>
    	</center>
    </body>
    </html>

     

    submit을 누를경우 form의 action이 동작됩니다.

    이때 경로를 joinAction.me로 지정을 하게됩니다.

     

    web.xml에 설정된 *.me를 통해 Controller에 정상적으로 접속을 확인할 수 있습니다.

     

    System.out.println을 이용하여 체크하기

    등록버튼을 눌렀을 경우, System.out.println을 활용하여 정상적으로 실행여부를 체크 할 수 있게 됩니다.

     

     

    이제 Console에 뜬 결과를 equals를 활용하여 실행하도록 하겠습니다.

     

    if문을 활용하여 각 기능에 대한 동작구현을 준비합니다.

     

    생성한 MemberDAO를 만들어서 Controller에 객체를 추가 후에

    MemberDAO는 예외처리가 되어있으므로, throws을 Exception으로 통일시킵니다.

     

    또한 doProcess가 예외처리가 되어있으므로, doGet 메소드와 doPost 메소드 또한 예외처리 작업을 진행하도록 합니다.

     

     

    DAO , 회원가입 부분 만들기 ( Insert)

    가장 처음 부분입니다.

     

    String sql을 통해서 DB의 INSERT문을 미리 작성 후

     

    PreparedStatement를 통해 값을 삽입하는 방법 입니다.

    이제 PreparedStatement의 도움으로 sql문에 지정된 ? 자리에 값을 지정 할 수 있게 됩니다.

     

    여기서 크게 db의 숫자를 입력할 경우 setInt, 문자를 입력할 경우 setString 입니다.

    이는 시간 또한 마찬가지이며 만약 (시, 분, 초)를 삽입할 경우 setString으로 처리시 에러가 발생하므로 주의하시길 바랍니다.

    이제 이와 같이 응용을 한다면 이렇게 사용 할 수 있습니다.

    원래 시간 같은 경우, Timestamp를 활용하지만

    전 이번 시험을 겪고보니 시간 같은 경우 시, 분, 초는 문제에서 잘 등장하지 않는다는 점을 활용하여

    String으로 통일 시켰습니다.

     

     

    결과 확인하기

    형식에 맞게 이렇게 입력합니다.

     

    결과창은 1이 출력되며, 성공을 의미합니다.

     

    db에 정상적으로 등록 된 것을 확인 할 수 있습니다.

     

    이제 FINALLY와 return값을 주어서 DAO 부분을 마무리 짓도록 하겠습니다.

     

    마무리 하기

    Controller 채우기

    이제 아까전에 비웠던 Controller를 꾸미면 됩니다.

     

    이 2줄만 채우면 끝. 회원가입은 정상적으로 실행 되는 것을 확인 할 수 있습니다.

     

     

     

     

    코드 확인하기

    Controller

    package MemberDB;
    
    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 MemberController extends HttpServlet {
    	
    	
    	
    	protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws Exception {
    		
    		//URL 확인하기
    		String uri = request.getRequestURI();
    		String context = request.getContextPath();
    		String command = uri.substring(context.length());
    		
    		String sit = null;
    		
    		System.out.println("command : "+command);
    		
    		MemberDAO member = new MemberDAO();
    		
    		//회원가입 버튼 클릭
    		if(command.equals("/joinAction.me"))
    		{
    			//member의 JoinAction 메소드 실행시키기.
    			
    			sit = member.JoinAction(request, response);
    			
    			//main화면 출력을 나타내기.  회원가입후 다시 회원가입 화면으로 보낸다.
    			request.setAttribute("pp", "join");
    		}
    
    		
    		
    		//결과 수행
    		RequestDispatcher dispatcher = request.getRequestDispatcher(sit);
    		dispatcher.forward(request, response);
    		
    	}
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		try {
    		doProcess(request, response);
    		}catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		try
    		{
    		doProcess(request, response);
    		}
    		catch(Exception e)
    		{
    			e.printStackTrace();
    		}
    	}
    
    }
    

     

    MemberDAO

    package MemberDB;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MemberDAO {
    	Connection con;
    	PreparedStatement pstmt;
    	ResultSet rs;
    
    	MemberDAO() throws Exception {
    		con = getConnection();
    	}
    
    	public static Connection getConnection() throws Exception {
    		Class.forName("oracle.jdbc.OracleDriver");
    		Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/xe", "hr", "hr");
    		return con;
    	}
    
    	// 회원가입하기
    	// request와 response는 암기하지 말고, servlet으로 생성될때 매개변수를 복사해서 가져오면 된다.
    	public String JoinAction(HttpServletRequest request, HttpServletResponse response) {
    		// db sql문
    		// preparedStatement는 ?의 순서에 따라 값이 등록된다.
    		String sql = "insert into member_tbl_02 values(member_seq.nextval, ?, ?, ?, ?, ?, ?)";
    
    		try {
    			PreparedStatement pstmt = con.prepareStatement(sql);
    
    			// submit을 눌렀을 때 form안의 name이 Parameter값으로 변환된다.
    			String name = request.getParameter("name");
    			String tel = request.getParameter("tel");
    			String address = request.getParameter("address");
    			String joindate = request.getParameter("joindate");
    			String grade = request.getParameter("grade");
    			String city = request.getParameter("city");
    
    			// 이를 sql에 접목 시킨다.
    			// 1번째 ?에 name의 값을 넣는다.
    			pstmt.setString(1, name);
    			// 2번째 ?에 tel의 값을 넣는다.
    			pstmt.setString(2, tel);
    			// 3번째 ?에 address의 값을 넣는다.
    			pstmt.setString(3, address);
    			// 4번째 ?에 joindate의 값을 넣는다.
    			pstmt.setString(4, joindate);
    			// 5번째 ?에 grade의 값을 넣는다.
    			pstmt.setString(5, grade);
    			// 6번째 ?에 city의 값을 넣는다.
    			pstmt.setString(6, city);
    
    			// 완료가 되었으면 값을 지정한다.
    			int cnt = pstmt.executeUpdate();
    			
    			//결과값이 0일 경우 실패, 1일 경우 성공이다
    			System.out.println(cnt);
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		//완료가 되었으면 닫아 준다.
    		finally
    		{
    			try
    			{
    				if(pstmt != null)
    					pstmt.close();
    				if(con != null)
    					con.close();
    			}
    			catch(Exception e)
    			{
    				e.printStackTrace();
    			}
    		}
    
    		return "template.jsp";
    	}
    
    }
    

     

     

     

     

    전체 목록


    [정보처리산업기사 과정평가형] 시험보기 앞서

    [정보처리산업기사 과정평가형] 0. 만드려는 모습

    [정보처리산업 과정평가형 - 실기] DB 만들기

    [정보처리산업 과정평가형 - 실기]JSP 화면 만들기

    [정보처리산업 과정평가형 - 실기] Java 만들기

    [정보처리산업기사 과정평가형 - 실기] DAO 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기2

    [정보처리산업기사 과정평가형 - 실기] 회원가입 만들기3

    [정보처리산업기사 과정평가형 - 실기] 회원 목록 만들기

    [정보처리산업기사 과정평가형 - 실기] 회원 정보 가져오기

    [정보처리산업기사 과정평가형 - 실기] 회원 정보 수정하기

    [정보처리산업기사 과정평가형 - 실기] 매출 표현하기

    [정보처리산업기사 과정평가형 - 실기] 코드 가져가기


     

    반응형

    댓글

    Designed by JB FACTORY