# LoginProc.jsp (로그인 프로세스)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="hewon.MemberDAO" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>id,passwd확인</title>
</head>
<body>
<%
//id,passwd를 받아서 loginCheck()호출->true->LoginSuccess.jsp
String mem_id=request.getParameter("mem_id");
String mem_passwd=request.getParameter("mem_passwd");
System.out.println("mem_id=>"+mem_id);
System.out.println("mem_passwd=>"+mem_passwd);
//->member=>loginCheck()호출
MemberDAO memMgr=new MemberDAO();
boolean check=memMgr.loginCheck(mem_id, mem_passwd);
System.out.println("LoginProc.jsp의 check=>"+check);
%>
<%
//check->LoginSuccess.jsp(인증화면),LogError.jsp(에러메세지)
if(check){
session.setAttribute("idKey",mem_id);//키명,저장할값(id)
response.sendRedirect("LoginSuccess.jsp");
}else{//check=false (id X passwd X)
response.sendRedirect("LogError.jsp");
}
%>
</body>
</html>
# LoginSuccess.jsp (로그인 성공 페이지)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//로그인했는지 안했는지 체크 session.setAttribute("idKey",mem_id);
String mem_id=(String)session.getAttribute("idKey");
System.out.println("LoginSuccess.jsp의 mem_id ->"+mem_id);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>인증성공 페이지</title>
</head>
<body>
<%
if(mem_id!=null){
%>
<b><%=mem_id%></b>님 환영합니다.<p>
당신은 제한된 기능을 사용할 수 있습니다.<p>
<a href="Logout.jsp">로그아웃</a>
<%}else { %>
<script>
alert("먼저 로그인해주세요.");
</script>
<%} %>
</body>
</html>
# Logout.jsp (로그아웃)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();
%>
<script>
alert("정상적으로 로그아웃 되었습니다.");
location.href="Login.jsp"
</script>
# MemberDTO
package hewon;//기능별로 분리=>패키지역할(회원,설문조사,고객,,,)
/*
* 웹상에서 입력받은 데이터를 테이블의 필드에 1:1 대응에 맞게
* 저장할 수 있도록 설계된 클래스(=데이터 저장빈) DTO=>VO(스프링)
*/
public class MemberDTO {
//입력받은 갯수만큼 멤버변수를 선언
//input type="text" name="mem_id"
private String mem_id;//회원id
private String mem_passwd;//암호
private String mem_name;//이름
private String mem_email;//이메일
private String mem_phone;//전번
private String mem_zipcode;//우편번호
private String mem_address;//주소지
private String mem_job;//직업
public String getMem_id() {
return mem_id;
}
public void setMem_id(String mem_id) {
this.mem_id = mem_id;
}
public String getMem_passwd() {
return mem_passwd;
}
public void setMem_passwd(String mem_passwd) {
this.mem_passwd = mem_passwd;
}
public String getMem_name() {
return mem_name;
}
public void setMem_name(String mem_name) {
this.mem_name = mem_name;
}
public String getMem_email() {
return mem_email;
}
public void setMem_email(String mem_email) {
this.mem_email = mem_email;
}
public String getMem_phone() {
return mem_phone;
}
public void setMem_phone(String mem_phone) {
this.mem_phone = mem_phone;
}
public String getMem_zipcode() {
return mem_zipcode;
}
public void setMem_zipcode(String mem_zipcode) {
this.mem_zipcode = mem_zipcode;
}
public String getMem_address() {
return mem_address;
}
public void setMem_address(String mem_address) {
this.mem_address = mem_address;
}
public String getMem_job() {
return mem_job;
}
public void setMem_job(String mem_job) {
this.mem_job = mem_job;
}
}
# MemberDAO
package hewon;
//웹상에서 호출할 메서드를 작성(업무분석)=>DB연결된 후 호출(has a)
import java.sql.*;//DB연결
import java.util.*;//Vector,ArrayList,,,
public class MemberDAO {
//1.멤버변수에 연결할 클래스의 객체를 선언
private DBConnectionMgr pool=null;
//getConnection()->Connection필요,freeConnection() 해제
//1-1) 공통으로 접속할 경우(필요로하는 멤버변수)
private Connection con=null;
private PreparedStatement pstmt=null;//sql실행목적
private ResultSet rs=null;//select
private String sql="";//실행시킬 SQL구문 저장 목적
//2.생성자를 통해서 자동으로 객체를 얻어올 수 있도록 연결
public MemberDAO() {
try {
pool=DBConnectionMgr.getInstance();
System.out.println("pool=>"+pool);
}catch(Exception e) {
System.out.println("DB연결실패=>"+e);//e.toString()
}
}
//3.요구분석에 따른 웹상에서 호출할 메서드를 작성=>flow-chart
//1)회원로그인->id,passwd
public boolean loginCheck(String id,String passwd) {
//1.DB연결
boolean check = false;
//2.sql구문
try {
con=pool.getConnection();
System.out.println("con->"+con);
sql="select id,passwd from member where id=? and passwd=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,passwd);
rs=pstmt.executeQuery();
check=rs.next();
} catch(Exception e) {
System.out.println("login check-> 실행에러유발"+e);
}finally {//3.메모리 해제
pool.freeConnection(con,pstmt,rs);
}
return check;
}
//2)중복id를 체크
//3)우편번호 검색->직접 테이블을 생성->입력->찾기, OpenAPI
//4)회원가입
//5)회원수정->특정회원찾기
//6)찾은회원 수정
//7)회원탈퇴
//8)회원리스트->게시판의 글목록보기=>관리자
}
# Register.jsp (회원가입 페이지)
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<title>회원가입</title>
<link href="style.css" rel="stylesheet" type="text/css">
<script language="JavaScript" src="script.js"></script>
</head>
<body bgcolor="#996600" onLoad="regForm.mem_id.focus()">
<br><br>
<table align="center" border="0" cellspacing="0" cellpadding="5" >
<tr>
<td align="center" valign="middle" bgcolor="#FFFFCC">
<table border="1" cellspacing="0" cellpadding="2" align="center">
<form name="regForm" method="post" action="RegisterProc.jsp">
<tr align="center" bgcolor="#996600">
<td colspan="3"><font color="#FFFFFF"><b>회원 가입</b></font></td>
</tr>
<tr>
<td width="16%">아이디</td>
<td width="57%"> <input type="text" name="mem_id" size="15">
<input type="button" value="ID중복확인"
onClick="idCheck(this.form.mem_id.value)"></td>
<td width="27%">아이디를 적어 주세요.</td>
</tr>
<tr>
<td>패스워드</td>
<td> <input type="password" name="mem_passwd" size="15"> </td>
<td>패스워드를 적어주세요.</td>
</tr>
<tr>
<td>패스워드 확인</td>
<td> <input type="password" name="mem_repasswd" size="15"> </td>
<td>패스워드를 확인합니다.</td>
</tr>
<tr>
<td>이름</td>
<td> <input type="text" name="mem_name" size="15"> </td>
<td>고객실명을 적어주세요.</td>
</tr>
<tr>
<td>이메일</td>
<td> <input type="text" name="mem_email" size="27"> </td>
<td>이메일을 적어주세요.</td>
</tr>
<tr>
<td>전화번호</td>
<td> <input type="text" name="mem_phone" size="20"> </td>
<td>연락처를 적어 주세요.</td>
</tr>
<tr>
<td>우편번호</td>
<td> <input type="text" name="mem_zipcode" size="7">
<input type="button" value="우편번호찾기" onClick="zipCheck()"></td>
<td>우편번호를 검색 하세요.</td>
</tr>
<tr>
<td>주소</td>
<td><input type="text" name="mem_address" size="70"></td>
<td>주소를 적어 주세요.</td>
</tr>
<tr>
<td>직업</td>
<td><select name=mem_job>
<option value="0">선택하세요.
<option value="회사원">회사원
<option value="연구전문직">연구전문직
<option value="교수학생">교수학생
<option value="일반자영업">일반자영업
<option value="공무원">공무원
<option value="의료인">의료인
<option value="법조인">법조인
<option value="종교,언론,에술인">종교.언론/예술인
<option value="농,축,수산,광업인">농/축/수산/광업인
<option value="주부">주부
<option value="무직">무직
<option value="기타">기타
</select></td>
<td>직업을 선택 하세요.</td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="button" value="회원가입" onclick="inputCheck()">
<input type="reset" value="다시쓰기">
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
'국비학원 > 공부' 카테고리의 다른 글
30일차 jsp(5) 모델1 - 회원가입 (로그인) (0) | 2023.07.03 |
---|---|
29일차 jap(4) 메인페이지 + 자바빈즈 + 쿠키 (0) | 2023.07.03 |
28일차 jsp(3) (0) | 2023.07.03 |
27일차 jsp(2) (0) | 2023.07.03 |
26일차 jsp(1) (0) | 2023.07.03 |