본문 바로가기
study/Ajax

[Ajax] 23. Ajax를 이용한 로그인

by 금이패런츠 2022. 4. 28.
728x90
반응형
<!DOCTYPE html>
<!-- /jquery1/src/main/webapp/jqueryajax/jqueryajax2.html -->
<!-- 
	== 로그인 버튼 클릭시== 
   1. submit 버튼이 클릭된 경우 id,pass 두개의 값을 ajax2-1.jsp로 전송하기.
   2. ajax2-1.jsp 페이지에서 member 테이블을 읽어 id,pass 검증
      id,pass 일치 : 반갑습니다. name님 => message 부분에 출력
      id,pass 불일치 : 아이디 또는 비밀번호가 틀립니다 => message 부분에 출력
      
    === 아이디 중복 버튼 클릭시 ====
   1. id 파라미터를 ajax2-2.jsp로 전송      
      id가 존재 : 존재하는 아이디 입니다. => message 부분에 출력
                id 입력란을 지우기
      id가 존재하지 않으면 : 회원가입을 할 수 있는 아이디 입니다. => message 부분에 출력
-->
<html>
<head>
<meta charset="UTF-8">
<title>ajax를 이용한 로그인</title>
<script type="text/javascript" 
  src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
	$(function() {
		$("#submit").click(function(){
//			let param = "id=" + $("#id").val() + "&pass=" + $("#pass").val()
			let param = {id:$("#id").val(),pass:$("#pass").val()} //json 형태 (가독성이 좋음)
			$.ajax({
				url : "ajax2-1.jsp",
				type : "POST",
				data : param,
				success: function(data) {
					$("#message").html(data)
				},
				error : function(e) { 
					alert("서버 오류 :" + e.status)
				}
			})
			return false; //기본이벤트 기능 취소. submit 버튼의 기본 기능 제거
		})
		$("#btn").click(function(){
			$.ajax({
				url : "ajax2-2.jsp",
				type : "POST",
				data : {id:$("#id").val()},
				success: function(data) {
					$("#message").html(data)
					//h1태그의 class속성값이 find?
					if($("h1").is(".find")) {
						$("#id").val(""); //아이디 입력값을 내용을 지우기 (value값 초기화)
					}
				},
				error : function(e) { 
					alert("서버 오류 :" + e.status)
				}
			})
			return false;
		})
	})
</script>
</head>
<body>
<form name="f">
	아이디 <input type="text" id="id">
		 <input type="button" value="아이디중복" id="btn"><br>
  비밀번호 <input type="password" id="pass"><br>
		 <input type="submit" value="로그인" id="submit">
</form>
	<div id="message">
	</div>
</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"%>
<!-- /jquery1/src/main/webapp/jqueryajax/ajax2-1.jsp -->
<%
	request.setCharacterEncoding("utf-8");
	Class.forName("oracle.jdbc.driver.OracleDriver");
	Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","kic","1234");
	String id = request.getParameter("id");
	String pass = request.getParameter("pass");
	String sql = "select * from member where id = ? and pass = ?";
	PreparedStatement pstmt = conn.prepareStatement(sql);
	pstmt.setString(1,id);
	pstmt.setString(2,pass);
	ResultSet rs = pstmt.executeQuery();
	if (rs.next()) {
%>
	<h1>반갑습니다. <%=rs.getString("name") %>님</h1>
<% } else { %>
	<h1><font color="red">아이디 또는 비밀번호가 틀립니다.</font></h1>
<% } %>

<%@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"%>
<!-- /jquery1/src/main/webapp/jqueryajax/ajax2-2.jsp -->
<%
	request.setCharacterEncoding("utf-8");
	Class.forName("oracle.jdbc.driver.OracleDriver");
	Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","kic","1234");
	String id = request.getParameter("id");
	String sql = "select * from member where id = ?";
	PreparedStatement pstmt = conn.prepareStatement(sql);
	pstmt.setString(1,id);
	ResultSet rs = pstmt.executeQuery();
	if (rs.next()) {
%>
	<h1 class="find">존재하는 아이디입니다.</h1>
<% } else { %>
	<h1 class="notfound">회원가입을 할 수 있는 아이디 입니다.</font></h1>
<% } %>
728x90
반응형