IT/Programming / / 2023. 4. 19. 10:12

JSP 회원가입 및 로그인 - 4. 로그인 처리하기

반응형

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>
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유