728x90
데이터베이스 연결
members 테이블 생성(회원가입 테이블)
id, pw, email, 이름, 생년월일, 연락처, 성별,회원가입날짜,...
id pw 이름 회원가입날짜를 필수 조건으로 간단하게 만들기
create table members(
id varchar(20),
pw varchar(20),
name varchar(20),
date timestamp,
primary key(id));

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4.insert.jsp</title>
</head>
<body>
<h1>jsp4.insert.jsp</h1>
<h1>회원가입</h1>
<form action="insertPro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
이름 : <input type="text" name="name"><br>
<input type="submit" value="가입">
</form>
</body>
</html>
<%@page import="java.sql.Timestamp"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="com.mysql.cj.xdevapi.PreparableStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/insertPro.jsp</title>
</head>
<body>
<h1>jsp4/insertPro.jsp</h1>
<h1>회원가입완료</h1>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String name = request.getParameter("name");
//Timestamp 자바내장객체 : 자바에 날짜 시간 관련 정보를 저장하는 내장객체
//시스템 현 날짜 가져오기 → System.currentTimeMillis()
Timestamp date = new Timestamp(System.currentTimeMillis());
//1단계 Driver.class 파일 불러오기
Class.forName("com.mysql.cj.jdbc.Driver");
//2단계 불러온 파일을 이용해 DB연결
String dbUrl ="jdbc:mysql://localhost:3306/jspdb?serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPw);
//3단계 연결 정보를 이용해서 SQL 구문을 만들고 실행할 수 있는 객체 생성
String sql = "insert into members(id,pw,name,date) value(?,?,?,?)"; //괄호 확인하자
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
pstmt.setString(3, name);
pstmt.setTimestamp(4, date); //넣어줘야함
//4단계 SQL구문 실행
pstmt.executeUpdate();
%>
회원가입완료 <%=pstmt %>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp/login.jsp</title>
</head>
<body>
<h1>jsp4/login.jsp</h1>
<h1>로그인</h1>
<form action="02_loginPro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/loginPro.jsp</title>
</head>
<body>
<h1>jsp4/loginPro.jsp</h1>
<h1>로그인 화면</h1>
<!-- 폼에서 입력한 내용이 서버에 전달 →서버에 request 내장객체에 저장
request에서 id, pass태그값(파라미터값)을 가져와서 변수에 저장 -->
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
//1단계 Driver.class 자바실행 파일 불러오기
Class.forName("com.mysql.cj.jdbc.Driver");
//2단계 불러온 파일을 DB 연결
String dbUrl ="jdbc:mysql://localhost:3306/jspdb?serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPw);
//3단계 연결정보를 이용해 SQL구문을 만들고 실행할 수 있는 객체 생성
String sql = "select * from members where id=? and pw=?"; //괄호 확인하자
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
//4단계 SQL구문 실행 → 실행 후 결과 저장(select) → ResultSet 내장객체 저장
//조건 db, form id, pw가 일치하면 → ResultSet 내장객체 저장
ResultSet rs = pstmt.executeQuery();
//5단계 결과를 이용해 다음 행 이동 → 아이디, 비밀번호 일치 출력, 아이디, 비밀번호 불일치
if(rs.next()){
out.println("아이디, 비밀번호 일치<br>");
out.println("로그인 성공<br>");
out.print(pstmt);
} else{
out.println("아이디, 비밀번호 불일치<br>");
out.println("로그인 실패<br>");
out.print(pstmt);
}
%>
</body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4.insert.jsp</title>
</head>
<body>
<h1>jsp4.insert.jsp</h1>
<h1>회원가입</h1>
<form action="01_insertPro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
이름 : <input type="text" name="name"><br>
<input type="submit" value="가입">
</form>
</body>
</html>
<%@page import="javax.websocket.SendResult"%>
<%@page import="java.sql.Timestamp"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="com.mysql.cj.xdevapi.PreparableStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/insertPro.jsp</title>
</head>
<body>
<h1>jsp4/insertPro.jsp</h1>
<h1>회원가입완료</h1>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String name = request.getParameter("name");
//Timestamp 자바내장객체 : 자바에 날짜 시간 관련 정보를 저장하는 내장객체
//시스템 현 날짜 가져오기 → System.currentTimeMillis()
Timestamp date = new Timestamp(System.currentTimeMillis());
//1단계 Driver.class 파일 불러오기
Class.forName("com.mysql.cj.jdbc.Driver");
//2단계 불러온 파일을 이용해 DB연결
String dbUrl ="jdbc:mysql://localhost:3306/jspdb?serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPw);
//3단계 연결 정보를 이용해서 SQL 구문을 만들고 실행할 수 있는 객체 생성
String sql = "insert into members(id,pw,name,date) value(?,?,?,?)"; //괄호 확인하자
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
pstmt.setString(3, name);
pstmt.setTimestamp(4, date); //넣어줘야함
//4단계 SQL구문 실행
pstmt.executeUpdate();
response.sendRedirect("02_login.jsp");
//login.jsp 이동
%>
회원가입완료 <%=pstmt %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp/login.jsp</title>
</head>
<body>
<h1>jsp4/login.jsp</h1>
<h1>로그인</h1>
<form action="02_loginPro.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/loginPro.jsp</title>
</head>
<body>
<h1>jsp4/loginPro.jsp</h1>
<h1>로그인 화면</h1>
<!-- 폼에서 입력한 내용이 서버에 전달 →서버에 request 내장객체에 저장
request에서 id, pass태그값(파라미터값)을 가져와서 변수에 저장 -->
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
//1단계 Driver.class 자바실행 파일 불러오기
Class.forName("com.mysql.cj.jdbc.Driver");
//2단계 불러온 파일을 DB 연결
String dbUrl ="jdbc:mysql://localhost:3306/jspdb?serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
Connection con = DriverManager.getConnection(dbUrl, dbUser, dbPw);
//3단계 연결정보를 이용해 SQL구문을 만들고 실행할 수 있는 객체 생성
String sql = "select * from members where id=? and pw=?"; //괄호 확인하자
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
//4단계 SQL구문 실행 → 실행 후 결과 저장(select) → ResultSet 내장객체 저장
//조건 db, form id, pw가 일치하면 → ResultSet 내장객체 저장
ResultSet rs = pstmt.executeQuery();
//5단계 결과를 이용해 다음 행 이동 → 아이디, 비밀번호 일치 출력, 아이디, 비밀번호 불일치
if(rs.next()){
out.println("아이디, 비밀번호 일치<br>");
out.println("로그인 성공<br>");
out.print(pstmt);
//아이디 비밀번호 일치하면 로그인 표시 설정(연결되어 있는 동안 페이지 상관없이 값을 유지)
//세션에 로그인 표시 저장("세션에 로그인 표시이름", 값)
session.setAttribute("id",id);
response.sendRedirect("03_main.jsp");//main.jsp 이동
} else{
out.println("아이디, 비밀번호 불일치<br>");
out.println("로그인 실패<br>");
out.print(pstmt);
response.sendRedirect("02_login.jsp");//login.jsp 이동
}
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/main.jsp</title>
</head>
<body>
<h1>jsp4/main.jsp</h1>
<%=session.getAttribute("id") %>님 환영합니다.<br>
<a href="04_logout.jsp">로그아웃</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp4/logout.jsp</title>
</head>
<body>
<h1>jsp4/logout.jsp</h1>
<%=session.getAttribute("id") %>님 안녕히 가십시오.<br>
<%
session.invalidate();//로그인표시 저장된 세션전체 삭제
response.sendRedirect("03_main.jsp"); //main.jsp 이동(세션이 삭제되었는지 확인)
%>
</body>
</html>
728x90
'KDT > WEB' 카테고리의 다른 글
231215 WEB - JSP12(데이터베이스 연결, MVC) (0) | 2023.12.15 |
---|---|
231214 WEB - JSP11(데이터베이스 연결) (0) | 2023.12.14 |
231211 WEB - JSP9(데이터베이스 연결) (0) | 2023.12.11 |
231208 WEB - JSP8(데이터베이스 연결) (0) | 2023.12.08 |
231207 WEB - JSP7(쿠키) (0) | 2023.12.07 |