본문 바로가기

자바/JSP기초(이클립스)

JSP 게시판 만들기 No3

이번 게시물에서는 회원가입을 구현해보도록 하겠습니다.

 

-설계

해당 프로젝트에선 View 즉 jsp파일은 WebContent 안에 WEB-INFO 안에 넣음 으로써 브라우저상에서 직접 접근 하지 못하게 했습니다. 때문에 View 접근은 Controller로 접근해야합니다.

 

-구현 서블릿

RegisterController-> Login.jsp에서 회원가입 버튼을 누를 시  Register.jsp로 접근 할 수 있도록 하기 위한 컨트롤러

RegisterTryController -> 가입하기 버튼을 눌렀을 시 해당 서블릿으로 이동해 MemberDAO를 통해 입력한 아이디와 비밀번호를 비교해 로그인 성공 여부를 확인합니다.

 

-기능

RegisterController에서 Register.jsp 접근 전에 DAO로 부터 아이디 목록을 불러와 JSP로 넘겨줘 아이디를 입력했을 떄 해당 아이디가 중복되었으면 사용하지 못하게 한다.

RegisterTryController 각각 입력값들을 받아 들여 DAO로 전송해 INSERT하게 한다.

 

Register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="/css/register.css">
        <title>회원가입</title>
    </head>
    <body>
        <form action="/register/try" id="register_form" method="POST">

            <div class="content">
                <a href=""><img src="/images/main_logo.png" alt="로고자리" id="logo"></a>
                <input id = "mid" name="mid" type="text" placeholder="아이디" required onblur="id_check(this.value)">
                <input id ="mpassword" name="mpassword" type="password" placeholder="비밀번호" required>
                <input id ="rmpassword" type="password" placeholder="비밀번호확인" required onblur="password_check(this.value)">
                <input name="mname" type="text" placeholder="이름" required>
                <input name="memail" type="email" placeholder="이메일" required>
                <input name="mphone" type="tel" placeholder="전화번호" required>
                <input type="submit" value = "가입하기">
                <input id="id_list" type="hidden" value ="${id_list}">
            </div>

        </form>
        
        <script src="/js/register.js"></script>
    </body>
</html>

 

Register.css

body {
    margin: 0px;
    padding: 0px;
    background-color: rgb(231, 245, 240);
}

#login_form {
    background-color: white;
    height: 854px;
    width: 700px;
    margin: auto;
}

#logo {
    margin-bottom: 100px;
    height: 200px;
    width: 200px;
}

.content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.content input {
    font-weight: bold;
    font-size: 20px;
    width: 400px;
    height: 40px;
    margin-bottom: 30px;
}

.sub_btn a {
    text-decoration: none;
}

 

Register.js

 

let id_list = document.getElementById("id_list").value;
let mid = document.getElementById("mid");
id_list =id_list.replace("[","");
id_list =id_list.replace("]","");
id_list =id_list.replaceAll(" ","");

function id_check(value) {
	if(id_list.includes(value)) {
		alert("중복 된 값입니다 다시 입력해주세요.");
		mid.value ="";
	}
}

function password_check(value) {
	let mpassword =document.getElementById("mpassword").value;
	let rmpassword =document.getElementById("rmpassword");

	if(value !== mpassword) {
		alert("비밀번호가 다릅니다 다시 입력해주세요");
		rmpassword.value="";
	}
}

 

RegisterController.java -Register.jsp를 보여준다.

package register.controller;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

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 member.model.MemberDAO;
@WebServlet("/register")
public class RegisterController extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	
	List<String> id_list = new ArrayList<String>();
	MemberDAO dao = new MemberDAO();
	id_list = dao.getmidList();
	
	req.setAttribute("id_list", id_list);
	req.getRequestDispatcher("/WEB-INF/view/Register.jsp").forward(req, resp);
	
}
}

RegisterTryController.java

package register.controller;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

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 member.model.MemberDAO;

@WebServlet("/register/try")
public class RegisterTryController extends HttpServlet {
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
			
			req.setCharacterEncoding("UTF-8");
			String mid = req.getParameter("mid");
			String mpassword = req.getParameter("mpassword");
			String mname =req.getParameter("mname");
			String memail = req.getParameter("memail");
			String mphone = req.getParameter("mphone");
			MemberDAO dao = new MemberDAO();
			dao.Register(mid, mpassword, mname, memail, mphone);
	
			resp.sendRedirect("/login");
		
	}

}

 

'자바 > JSP기초(이클립스)' 카테고리의 다른 글

JSP 게시판 만들기 No5  (0) 2021.04.11
JSP 게시판 만들기 No4  (0) 2021.04.11
JSP 게시판 만들기 No2  (0) 2021.04.09
JSP 게시판 만들기 No1  (0) 2021.04.08
JSP로 게시판 구현하기!  (0) 2021.04.08