반응형
Dynamic Web Project : 10-member
[클라이언트]
Folder : member
JSP File : WebContent/member/loginForm.jsp
Folder : script
javascript File : WebContent/script/memberScript.js(수정)
[서버]
JSP File : WebContent/member/login.jsp
Package : member.bean
Class File : src/member.bean/MemberDTO.java(수정없이 그대로 사용) ( DTO : Data Transfer Objecr)
Package : member.dao
Class File : src/member.dao/MemberDAO.java(수정) (DAO : Data Access Object)
실행 결과:
<작업 순서>
1. 10-member/WebContent/script/memberScript.js
function checkWrite(){
if(document.writeForm.name.value == ""){
alert("이름을 입력하세요 ");
document.writeForm.name.focus();
}else if(document.writeForm.id.value == ""){
alert("아이디를 입력하세요 ");
}else if(document.writeForm.pwd.value == ""){
alert("비밀번호를 입력하세요 ");
}else if(document.writeForm.pwd.value != document.writeForm.repwd.value){
alert("비밀번호가 맞지 않습니다.");
}else {
document.writeForm.submit();
}
}
function checkLogin(){
if(document.loginForm.id.value ==""){
alert("아이디를 입력하세요");
document.loginForm.id.focus();
}else if(document.loginForm.pwd.value == ""){
alert("비밀번호를 입력하세요");
}else{
document.loginForm.submit();
}
}
2. 10-member/WebContent/member/loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
<script type="text/javascript" src="../script/memberScript.js">
</script>
</head>
<body>
<form name="loginForm" method ="post" action ="login.jsp">
<table border ="1">
<tr>
<td width="70" align="center">아이디</td>
<td><input type="text" name="id" size="25"></td>
</tr>
<tr>
<td width="70" align="center">비밀번호</td>
<td><input type="password" name="pwd" size="30"></td>
</tr>
<tr>
<td colspan="2" align ="center">
<input type="button" value="로그인" onclick="javascript:checkLogin()">
<input type="button" value="회원가입"
onclick="javascript:location.href='writeForm.jsp'">
</td>
</tr>
</table>
</form>
</body>
</html>
3. 10-member/src/member.dao/MemberDAO.java
package member.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import member.bean.MemberDTO;
public class MemberDAO {
private String diver = "oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String username = "jspexam2";
private String password = "m1234";
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public MemberDAO(){
try{
Class.forName(diver);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public Connection getConnection(){
try {
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
public int write(MemberDTO memberDTO){
int su = 0;
conn = getConnection();
String sql =
"insert into member values (?,?,?,?,?,?,?,?,?,?,sysdate)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberDTO.getName());
pstmt.setString(2, memberDTO.getId());
pstmt.setString(3, memberDTO.getPwd());
pstmt.setString(4, memberDTO.getGender());
pstmt.setString(5, memberDTO.getEmail1());
pstmt.setString(6, memberDTO.getEmail2());
pstmt.setString(7, memberDTO.getTel1());
pstmt.setString(8, memberDTO.getTel2());
pstmt.setString(9, memberDTO.getTel3());
pstmt.setString(10, memberDTO.getAddr());
su = pstmt.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally{
try {
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return su;
}
public String login(String id, String pwd){
String name="null";
conn = getConnection();
String sql = "select * from member where id=? and pwd=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pwd);
rs = pstmt.executeQuery();
if(rs.next()){
name = rs.getString("name"); //rs.getString(1);
}
} catch(SQLException e){
e.printStackTrace();
}
finally {
// TODO: handle finally clause
try{
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
return name;
}
}
4. 10-member/WebContent/member/login.jsp
<%@page import="java.net.URLEncoder"%>
<%@page import="member.dao.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<%
//데이터 읽어오기
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
//DB
MemberDAO memberDAO = new MemberDAO();
String name = memberDAO.login(id, pwd);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
</head>
<body>
<% if(name == null){ %>
아이디 또는 비밀번호가 틀렸으니 다시 로그인 하세요.
<% }else { %>
<%=name%> 님이 로그인
<% } %>
</body>
</html>
반응형
'IT > Programming' 카테고리의 다른 글
JSP 게시판의 로그인 전/후 분리하기 (0) | 2023.04.19 |
---|---|
JSP 회원가입 및 로그인 - 5. 회원등록시 ID 중복 체크하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 3. 회원가입 정보를 DB에 저장하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 2. 회원가입 폼 만들기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 1. 회원 DB만들기 (0) | 2023.04.19 |