고래씌

[MyBatis] 1-3. 회원가입 만들기 본문

Server/MyBatis

[MyBatis] 1-3. 회원가입 만들기

고래씌 2023. 12. 20. 10:22

1. 회원가입 폼 만들기

■ memberEnroolForm.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>
	<jsp:include page="../common/menubar.jsp"/>
	<div class="outer">
		<br>
		<h1 align='center'>회원가입</h1>
		
		<form action='insert.me' method='post'>
			<table align="center">
				<tr>
					<td>* ID</td>
					<td><input type="text" name="userId" required></td>
				</tr>
				<tr>
					<td>* PWD</td>
					<td><input type="password" name="userPwd" required></td>
				</tr>
				<tr>
					<td>* NAME</td>
					<td><input type="text" name="userName" required></td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;EMAIL</td>
					<td><input type="email" name="email"></td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;BIRTHDAY</td>
					<td><input type="text" name="birthday" placeholder="생년월일(6자리)"></td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;GENDER</td>
					<td align="center">
						<input type="radio" name="gender" value="M" checked> 남
						<input type="radio" name="gender" value="F"> 여
					</td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;PHONE</td>
					<td><input type="text" name="phone" placeholder="-포함"></td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;ADDRESS</td>
					<td><input type="text" name="address"></td>
				</tr>
			</table>
			<br>
			<div align="center">
				<button type="reset">초기화</button>
				<button type="submit">회원가입</button>
			</div>
		</form>
	
	</div> <!-- outer div끝  -->
</body>
</html>

 

 

▶ MemberInsertController.java (Servelt)

package com.kh.member.controller;

import java.io.IOException;

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

import com.kh.member.model.service.MemberServiceImpl;
import com.kh.member.model.vo.Member;

/**
 * Servlet implementation class MemberInsertController
 */
@WebServlet("/insert.me")
public class MemberInsertController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

    public MemberInsertController() {
        super();
    }


	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.getRequestDispatcher("WEB-INF/views/member/memberEnrollForm.jsp").forward(request, response);
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// request.setCharacterEncoding("UTF-8"); => EncodingFilter에서 실행
		String userId = request.getParameter("userId");
		String userPwd = request.getParameter("userPwd");
		String userName = request.getParameter("userName");
		String email = request.getParameter("email");
		String birthday = request.getParameter("birthday");
		String gender = request.getParameter("gender");
		String phone = request.getParameter("phone");
		String address = request.getParameter("address");
		
		Member m = Member.builder()
				.userId(userId)
				.userPwd(userPwd)
				.userName(userPwd)
				.email(email)
				.birthday(birthday)
				.gender(gender)
				.phone(phone)
				.address(address).build();
		
		int result = new MemberServiceImpl().insertMember(m);
		
		HttpSession session = request.getSession();
		
		if(result > 0) { // 성공시
			session.setAttribute("alertMsg", "회원가입 성공");
		}else {
			session.setAttribute("alertMsg", "회원가입 실패");
		}
		response.sendRedirect(request.getContextPath());
	}

}

 

 

▶ 웹 인코딩(UTF-8이) 자동으로 되도록 설정

com.kh.common 폴더 밑에 EncodingFilter(Filter 파일) 생성

@WebFilter(urlPatterns="/*") // 모든 url요청에 대해서 서블릿이 실행되기 "전"에 이 필터를 거치게 함

 

package com.kh.common;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class EncodingFilter
 */
@WebFilter(urlPatterns="/*") // 모든 url요청에 대해서 서블릿이 실행도기ㅣ "전"에 이 필터를 거치게 함
public class EncodingFilter implements Filter {


    public EncodingFilter() {
    }


	public void destroy() {
	}


	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		request.setCharacterEncoding("UTF-8");
		chain.doFilter(request, response);
		// 현재 필터가 최종 필터일 경우 => Servlet을 호출
		// 현재 필터가 최종 필터가 아닐경우 => 또 다른 필터를 호출
	}


	public void init(FilterConfig fConfig) throws ServletException {
	}

}

 

 

▶ MemberServiceImpl.java

 

=> 우리는 전에 트랜잭션처리를 수동처리하겠다로 설정하였기 때문에 트랜잭션 처리를 작성해줌

 

 

 

▶ MemberDao.java

 

 

 

▶ member-mapper.xml

이 파일의 별칭은 memberMapper임

<mapper namespace="memberMapper">

 

 

 

 

 

 

 

'Server > MyBatis' 카테고리의 다른 글

[MyBatis] 3-1. 게시판 설정(페이징 설정)  (0) 2023.12.24
[MyBatis] 2. 암호화 설정  (0) 2023.12.24
[MyBatis] 1-2. 로그인 기능  (0) 2023.12.19
[MyBatis] 1-1. MyBaits 시작(lombok)  (0) 2023.12.19
[MyBatis] 0. MyBatis 설정  (0) 2023.12.19