국비학원/공부

30일차 jsp(5) 모델1 - 회원가입 (로그인)

mikan- 2023. 7. 3. 16:13

# Login.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 onload="document.login.mem_id.focus()" bgcolor="#FFFFCC">
  <center>
  <!-- mem_id의 상태에따라 로그인 처리 -->
  <br><br><br>
  

  <!-- 로그인 안된 상태 -->
     <TABLE>
    <form name="login" method="post" 
	                   action="LoginProc.jsp">
     <TR>
		<TD align="center" colspan="2">
		<h4>로그인</h4></TD>
     </TR>

     <TR>
		<TD>아이디</TD>
		<TD><INPUT TYPE="text" NAME="mem_id"></TD>
     </TR>
     <TR>
		<TD>비밀번호</TD>
		<TD><INPUT TYPE="password" NAME="mem_passwd"></TD>
     </TR>
     <TR>
		<TD colspan="2"><div align="center">
		<INPUT TYPE="button" value="로그인" onclick="loginCheck()">&nbsp;
		<INPUT TYPE="button" value="회원가입"
		onclick="memberReg()">
		</div>
		</TD>
     </TR>
	 </form>
     </TABLE>
  </center>
 </BODY>
</HTML>

 

# LoginError.jsp (에러 화면)

<%@page contentType="text/html;charset=UTF-8"%>
<HTML>
 <HEAD>
  <title>로그인 에러</title>
  <link href="style.css" rel="stylesheet"
        type="text/css">
 </HEAD>
 <BODY bgcolor="#FFFFCC">
  <center>
    <b>로그인에 실패하셨습니다.!<p>
	아이디및 비밀번호를 다시 확인요망!<p></b>
	<input type="button" value="다시쓰기"
	   onclick="history.back()">
  </center>
 </BODY>
</HTML>

 

# 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()"> 
              &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
             <input type="reset" value="다시쓰기"> 
            </td>
          </tr>
        </form>
      </table>
    </td>
  </tr>
</table>
</body>
</html>

 

# DB Connection

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>오라클 DB저속 확인</title>
</head>
<body>
	<%
	//TODO Auto-generated method stub
	Connection con = null;
	//형식) jdbc:oracle:thin:@상대방의 접속ip주소:접속포트번호:SID
	String url = "jdbc:oracle:thin:@localhost:1521:orcl";//접속 오라클의 위치

	Statement stmt = null;//create table
	PreparedStatement pstmt = null;//insert into
	Statement stmt2 = null;//select ~
	ResultSet rs = null;//select 검색결과를 표형태로 
	String sql = "";//sql구문을 저장

	try {
		//1.접속할 드라이버를 메모리에 올리기(상위패키지.하위패키지...클래스명)
		Class.forName("oracle.jdbc.driver.OracleDriver");
		//2.접속하기위해서 인증 ->1.접속경로 2.계정명 3.암호
		con = DriverManager.getConnection(url, "scott", "tiger");
		System.out.println("접속 con=>" + con);
		//3.테이블을 생성->create table->stmt
		stmt = con.createStatement();
		sql = "create table MyTest2(name varchar2(20),age number)";
		int create = stmt.executeUpdate(sql);
		System.out.println("테이블 성공유무(create)=>" + create);

		//4.insert 
		//sql="insert into Mytest values(?,?)";
		pstmt = con.prepareStatement("insert into Mytest2 values(?,?)");
		//형식)pstmt객체명.setString(or setInt,setDouble,,,(?의 순서,입력할값)
		pstmt.setString(1, "hong"); //pstmt.setString(1,tf1.getText())
		pstmt.setInt(2, 23);
		int insert = pstmt.executeUpdate();
		System.out.println("데이터가 입력성공유무(insert)=" + insert);
		//5.select->필드별로 출력해서 결과 보기
		stmt2 = con.createStatement();
		String sql2 = "select * from MyTest2";//* ->테이블의 만들어진 필드순서대로
		rs = stmt2.executeQuery(sql2);
		%>
		<table border = "1" cellspacing = "0" cellpadding = "0">
			<tr bgcolor = pink>
				<th>name</th> <th>age</th>
			</tr>
		
		<%
		while (rs.next()) {//이동시킬 레코드가 계속 존재하는한
		%>
			<tr>
			<td><%=rs.getString("name") %></td>
			<td><%=rs.getInt(2) %></td>
			</tr>
	 <% }
		rs.close(); stmt2.close(); pstmt.close(); stmt.close(); con.close();
		//6.메모리 해제->에러유발과 상관없이 반드시 처리하고 프로그램 종료
	} catch (Exception e) { //SQLException(SQL구문실행오류)
		System.out.println("DB접속에 실패했거나 SQL구문이 잘못됨=>" + e);
	}
	%>
</table>
</body>
</html>