728x90
반응형
package miniProjectPrivateBMK_memberFrm;
/*
* id varchar2(10) NOT NULL
, pw varchar2(15) NOT NULL
, name varchar2(30) NOT NULL
, age number(3) NOT NULL
, gender varchar2(3) NOT NULL
, phone varchar2(20) NOT NULL
, email varchar2(100) NOT NULL
, address varchar2(1000) NOT NULL
, regidate DATE DEFAULT sysdate NOT NULL
, PRIMARY KEY(id)
*/
import java.sql.Date;
public class MemberVO {
private String id;
private String pw;
private String name;
private int age;
private String gender;
private String phone;
private String email;
private String address;
private Date regidate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Date getRegidate() {
return regidate;
}
public void setRegidate(Date regidate) {
this.regidate = regidate;
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="../css/login.css">
</head>
<body>
<div class="wrap">
<form name="frmLogin" method="post" class="frmLogin"
enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<div class="loginFrm">
<div class="frmList">
<h2>로그인</h2>
<div class="login_id">
<label><span>아이디 : </span><input class="text" type="text" name="user_id" placeholder="아이디"></label>
</div>
<div class="login_pw" >
<label><span>비밀번호 : </span><input class="password" type="password" name="user_pw" placeholder="비밀번호"></label>
</div>
<div class="login_btn">
<input type="checkbox" name="user_save"> 아이디/패스워드 저장
<input class="btnSubmit" type="submit" value="로그인">
</div>
<div class="sign_up">
<a class="join" href="memberForm.html">회원가입</a>
<a class="searchIdAndPwd" href="searchId.html">아이디찾기</a>
<a class="searchIdAndPwd" href="searchPwd.html">패스워드찾기</a>
</div>
</div>
</div>
</form>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>아이디 찾기</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="../css/searchId.css">
<script type="text/javascript">
function id_search() {
var frm = document.searchIdScreen;
if (frm.name.value.length < 1) {
alert("이름을 입력해주세요");
}
else if (frm.email.value.length == 0) {
alert("이메일을 정확하게 입력해주세요");
}
else{
frm.method = "post";
frm.action = "searchIdDB";
frm.submit();
}
}
</script>
</head>
<body>
<div class="wrap">
<form name="searchIdScreen" method="post">
<div class="screenId"><h1>아이디 찾기</h1></div>
<section class="frmSearch">
<div class="nameSearch">
<label>이름</label><input type="text" class="memberName" name="name" placeholder="이름을 입력하세요.">
</div>
<br>
<div class="phoneSearch">
<label>이메일</label><input type="text" class="memberEmail" name="email" placeholder="이메일을 입력하세요.">
</div>
<br>
</section>
<div class="btnSearch">
<input type="button" name="enter" value="찾기" onClick="id_search()">
<input type="reset" name="cancel" value="취소" onClick="history.back()">
<input type="hidden" name="command" value="searchId">
</div>
</form>
</div>
</body>
</html>
package miniProjectPrivateBMK_memberFrm;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/miniProject/html/searchIdDB") //서블릿 매핑 이름
public class MemberServletMemberSearchId extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//전송된 리퀘스트를 가져옴
String name = request.getParameter("name");
String email = request.getParameter("email");
// memberVO를 만들어서 리퀘스트에서 불러온 값을 저장
MemberVO memberVO = new MemberVO();
memberVO.setName(name);
memberVO.setEmail(email);
MemberDAO dao = new MemberDAO();
String flag = dao.searchId(memberVO);
// 조회한 값이 맞다면, MSMSI(MemberServletMemberSearchId)로 이동
if(flag != null) {
RequestDispatcher d = request.getRequestDispatcher("MSMSI");
d.forward(request, response);
}
else {
RequestDispatcher d = request.getRequestDispatcher("searchId.html");
d.forward(request, response);
}
}
}
package miniProjectPrivateBMK_memberFrm;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/miniProject/html/MSMSI") //서블릿 매핑 이름
public class MSMSI extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//전송된 리퀘스트를 가져옴
String name = request.getParameter("name");
String email = request.getParameter("email");
//전송된 리퀘스트 값이 제대로 왔는지 확인
System.out.println(name);
System.out.println(email);
// memberVO를 만들어서 리퀘스트에서 불러온 값을 저장
MemberVO memberVO = new MemberVO();
memberVO.setName(name);
memberVO.setEmail(email);
MemberDAO dao = new MemberDAO();
PrintWriter out = response.getWriter();
out.println("아이디는 "+dao.searchId(memberVO)+"입니다.");
out.print("<html><body><div><a href='login.html'>로그인 창으로 이동</a></div></body></html>");
}
}
package miniProjectPrivateBMK_memberFrm;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.RequestDispatcher;
import javax.sql.DataSource;
/*
* id varchar2(10) NOT NULL
, pw varchar2(15) NOT NULL
, name varchar2(30) NOT NULL
, age number(3) NOT NULL
, gender varchar2(3) NOT NULL
, phone varchar2(20) NOT NULL
, email varchar2(100) NOT NULL
, address varchar2(1000) NOT NULL
, regidate DATE DEFAULT sysdate NOT NULL
, PRIMARY KEY(id)
*/
public class MemberDAO {
private Connection conn;
private PreparedStatement pstmt;
private DataSource dataFactory;
private ResultSet rs;
public MemberDAO() {
try {
Context ctx = new InitialContext();
Context envContext = (Context)ctx.lookup("java:/comp/env"); //JDNI에 접근하기 위해 기본경로를 지정함
dataFactory = (DataSource)envContext.lookup("jdbc/oracle"); // 톰캣 context.xml에 설정한 name 값인 jdbc/oracle을 이용해 톰캣이 미리 연결한 DataSource를 받아옴
} catch (NamingException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
public String searchId(MemberVO memberVO) {
// id값을 null
String result = null;
// 조회한 레코드의 각 컬럼 값을 받아옴
String name = memberVO.getName();
String email = memberVO.getEmail();
// 조회한 값이 제대로 넘어왔는지 확인
System.out.println("이름:"+name);
System.out.println("이메일"+email);
try {
conn = dataFactory.getConnection(); //DataSource를 이용해 DB 연결
String query = "SELECT id FROM MEMBERFORM";
query += " WHERE name=? AND email=?";
//메서드로 전달된 이름과 이메일을 이용해 SQL문을 작성한 후 DB에 조회함
pstmt = conn.prepareStatement(query); //prepareStatement() 메서드에 SQL문을 전달해 객체 생성함
pstmt.setString(1, name); // 첫번째 '?'에 전달된 name을 인자로 넣음
pstmt.setString(2, email); // 두번째 '?'에 전달된 email을 인자로 넣음
//미리 설정한 SQL문을 실행함
ResultSet rs = pstmt.executeQuery();
rs.next();
result = rs.getString("id");
System.out.println("id = " + result);
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
return result;
}
}
728x90
반응형
'Project Development > Java_programming' 카테고리의 다른 글
공지사항 페이지 레이아웃 (0) | 2021.12.15 |
---|---|
비밀번호 찾기 - 메일 인증 (0) | 2021.12.15 |
회원가입 - DB 연결 (0) | 2021.12.14 |
쇼핑몰 홈페이지 (0) | 2021.12.14 |
회원가입 페이지 (0) | 2021.12.14 |
댓글