2021. 4. 29. 21:46ㆍJSP 공부
이번에는 JSP 에서 JDBC를 이용하고, 회원가입 하는 페이지를 만들어 봅시다
회원가입 페이지 만들기
회원가입 페이지를 만들기 전에, 한번 생각을 해봅시다. 어떠한 흐름을 가져야 하는지....
먼저, 어떤 페이지가 있다면, 로그인 화면이 있겠고, 로그인 할 아이디를 먼저 만들기 위해서 회원가입을 누르겠죠?
그러면, 회원가입을 하고, 이 회원가입한 아이디와 비밀번호를 데이터베이스에 insert(추가) 하면 되겠죠?
회원가입이 완료되면, 로그인을 하는데, 로그인 할 때는 데이터베이스에 저장된 id를 가져와서 pw와 비교를 하고 로그인이 되겠죠?
이러한 흐름을 생각해서 간단한 회원가입 페이지를 만들어 봅시다.
회원가입 할 때, 필요한 정보를 <form> 양식에 만들어 주면 됩니다.
파일명 : join.jsp
<body>
<h2>회원가입</h2>
<form action="join_ok.jsp" method="post">
아이디:<input type="text" name="id"><br/>
비밀번호:<input type="password" name="pw"><br/>
이름:<input type="text" name="name"><br/>
전화번호:
<select name="phon1">
<option>010</option>
<option>02</option>
<option>031</option>
<option>051</option>
</select>
- <input type="text" name="phone2" size="5">
- <input type="text" name="phone3" size="5">
<br/>
<input type="radio" name="gender" value="m" checked>남자
<input type="radio" name="gender" value="f">여자
<input type="submit" value="가입">
</form>
</body>
form에 들어있는 name은, 데이터베이스에 존재하는 테이블의 속성(Attribute)과 같아야 합니다.
그래서, 데이터베이스에서 계정과, 데이터베이스를 만들어 줄 겁니다.
저는 oracle 18c를 사용하고, sql developer를 사용하고 있기 때문에, PDB 계정에서, JSP 계정을 만들고, 권한을 주고,
JSP 계정에 접속해서, 테이블을 만들어 줄거에요
PDB 계정
JSP 계정
이제 다시, 이클립스로 돌아와서..... 위와 같이 만든 회원가입 화면에서, 데이터를 입력하고 가입을 누르면 해당 정보를 데이터베이스에 연결해서 insert 해줄 건데요, 연결할 때는 JDBC 를 이용할 겁니다.
JDBC를 사용하기 위해서, 프로젝트 내의 lib 폴더 안에, ojdbc8.jar 파일을 넣어 줍시다.
저는 oracle 18c 버전을 사용하기 때문에, ojdbc8.jar 파일인데, 사용하고 있는 버전에 따라 넣어주면 됩니다.
※ 다운로드 및 사용법은 아래의 글을 참조해 주세요. 아래 글에서는 ojdbc8.jar 를 외부 라이브러리 참조로 했지만, JSP 환경에서는 프로젝트 내에 .jar 파일만 넣어주면 됩니다.
rsorry.tistory.com/162?category=945498
이렇게, ojdbc8.jar 를 추가했다면, 바로 사용을 해주면 됩니다.
파일명 : join_ok.jsp
join_ok.jsp 에서는, join.jsp 의 <form> 태그에 데이터를 데이터베이스의 MEMBERS 테이블에 insert 해줄 거에요
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String name = request.getParameter("name");
String phone1 = request.getParameter("phone1");
String phone2 = request.getParameter("phone2");
String phone3 = request.getParameter("phone3");
String gender = request.getParameter("gender");
// 1.변수선언
String url = "jdbc:oracle:thin:@localhost:1521/XEPDB1";
String uid = "JSP";
String upw = "JSP";
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "insert into members values(?, ?, ?, ?, ?, ?, ?)";
try{
// 1. 드라이버 로드
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2. conn 생성
conn = DriverManager.getConnection(url, uid, upw);
// 3. pstmt 생성
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
pstmt.setString(3, name);
pstmt.setString(4, phone1);
pstmt.setString(5, phone2);
pstmt.setString(6, phone3);
pstmt.setString(7, gender);
// 4. sql문 실행
int result = pstmt.executeUpdate();
if(result == 1){ // 성공
response.sendRedirect("join_succes.jsp");
} else{ // 실패
response.sendRedirect("join_fail.jsp");
}
} catch(Exception e){
e.printStackTrace();
} finally{
try{
if(conn != null) conn.close();
if(pstmt != null) pstmt.close();
} catch(Exception e){
e.printStackTrace();
}
}
%>
insert가 성공적으로 된다면, 회원가입에 성공했다는 거겠죠? join_succes.jsp 로 이동을 해서, 회원가입에 성공했다는 걸 알려줍시다. 그리고, 회원가입에 성공했다면, 로그인 화면으로 가는 링크를 걸어 주면 좋겠죠?
파일명 : join_succes.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>
<a href="login.jsp">로그인하기</a>
</body>
</html>
insert가 실패한다면, 회원가입에 실패했다는 거니까, join_fail.jsp 로 이동을 해서, 회원가입에 실패했다는 걸 알려줍시다.
그리고, 다시 회원가입 화면으로 가는 링크를 걸어 줍시다.
파일명 : join_fail.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>
<a href="join.jsp">다시 가입하기</a>
</body>
</html>
회원가입 페이지 만드는 걸 간단하게 알아 보았는데요,
위의 코드를 작성하기 위해서는 java, oracle, html, jsp 에 대해서 알고 있어야 하겠죠?
고생하셨습니다.
다음 글로 이어집니다.
'JSP 공부' 카테고리의 다른 글
Day54 - [JSP]정보수정 페이지 만들기 (0) | 2021.04.30 |
---|---|
Day 54 - [JSP]로그인 페이지 만들기 (1) | 2021.04.30 |
Day53 - [JSP]Action Tag (0) | 2021.04.29 |
Day52 - [JSP]forward (0) | 2021.04.28 |
Day52 - [JSP] 예외 페이지 (0) | 2021.04.28 |