고래씌
[MyBatis] 1-3. 회원가입 만들기 본문
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> EMAIL</td>
<td><input type="email" name="email"></td>
</tr>
<tr>
<td> BIRTHDAY</td>
<td><input type="text" name="birthday" placeholder="생년월일(6자리)"></td>
</tr>
<tr>
<td> GENDER</td>
<td align="center">
<input type="radio" name="gender" value="M" checked> 남
<input type="radio" name="gender" value="F"> 여
</td>
</tr>
<tr>
<td> PHONE</td>
<td><input type="text" name="phone" placeholder="-포함"></td>
</tr>
<tr>
<td> 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 |