자바/Jsp
[Jsp] 개인 홈페이지 만들기(2)-로그인 페이지
taehee94
2022. 3. 9. 18:22
앞서 기본화면 페이지와 회원가입 페이지를 만들었으니 참고해주세요.
https://taehee94.tistory.com/8
[Jsp] 개인 홈페이지 만들기(1)-기본 화면,회원가입페이지
코딩공부가 목적이여서, 간단한 틀만 만들었습니다. 디자인이 목적이 아니니 코딩한것만 참고해주세요. Jsp와 Mysql 연동해서 회원가입, 로그인, 정보수정을 해보겠습니다. 1.기본화면입니다. <%@ p
taehee94.tistory.com
1.로그인 페이지를 만들겠습니다.
간단하게 아이디와 패스워드를 입력할 수 있는 로그인페이지를 생성했습니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login Page</title>
<script type="text/javascript">
var user_id = "<%=(String)session.getAttribute("user_id")%>";
function logout(){
window.location.href = "logout.php";
}
</script>
</head>
<body style="background:gray">
<script>
if (user_id == null){</script>
<div style="background:white;margin:-12px -0.5% 0px -20px; text-align:center;height:80px; border: 1px solid">
<h2>로그인 페이지</h2></div>
<div style="position:absolute; top:50%; left:50%; width:19%; height:80px; margin:-80px 0px 0px -200px; border:1px solid;">
<form name="login" method="post" action="Login_check.jsp">
아이디 : <input type="text" name="user_id"/><br />
패스워드 : <input type="password" name="user_pw" /><br />
<input type="submit" value="로그인">
</form>
<br>
<a href="../Page.html">맨 처음 페이지로</a>
<a href="../Join/JOIN.jsp">회원가입</a>
</div><br>
<script>} else {
alert("이미 로그인 된 상태입니다.");
document.location.href="../board_list.jsp";
}</script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
form,action을 통해 Login_check.jsp로 정보를 보내줍니다.세션에 저장되어있는 정보가 있다면, 이미 로그인 된 상태라고 alert메세지를 띄우고, 저장되어있는 정보가 없을땐 아이디와 패스워드를 입력할 수 있게 코딩되어있습니다.
하이퍼링크로되어있는 맨 처음 페이지로는 기존화면으로 보내주고,
회원가입은 회원가입 페이지로 보내주는 역할을 합니다.
다음은 정보를 받는 Login_check.jsp 입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.Statement"%>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<%
String user_id = "";
String user_pw = "";
String userLevel = "";
if(request.getParameter("user_id") == ""){ %>
<script>
alert("아이디를 입력하세요");
document.location.href='./Login.jsp'
</script>
<% }
else if(request.getParameter("user_pw") == ""){ %>
<script>
alert("비밀번호를 입력하세요");
document.location.href='./Login.jsp'
</script>
<% }
else{
user_id = request.getParameter("user_id"); //ID값 가져옴
user_pw = request.getParameter("user_pw"); //PW값 가져옴
//여기서 부터 DB 연결 코드
Class.forName("com.mysql.jdbc.Driver");
String DB_URL="jdbc:mysql://localhost:3306/ezen";
String DB_USER = "root";
String DB_PASSWORD= "oracle";
Connection conn;
Statement stmt;
conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
ResultSet rs = null;
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from USERS where ID = '" + user_id + "' AND PWD ='" + user_pw + "'");
//stmt.executeUpdate(sql);
Boolean check = false;
while(rs.next()) // 결과값을 하나씩 가져와서 저장하기 위한 while문
{
String id = rs.getString("ID"); //DB에 있는 ID가져옴
//String lv = rs.getString("USER_LEVEL"); // 사용제 레벨 가져옴(필수 아님)
session.setAttribute("user_id", id); //DB값을 세션에 넣음
//session.setAttribute("userLevel", lv); // 세션에 레벨값 넣음
check = true;
}
if(check){ //ID,PW가 DB에 존재하는 경우 게시판으로 이동하는 코드
%>
<script>
//alert('로그인되었습니다.');
document.location.href='../Board/usersinfo.jsp'
</script> <%
rs.close();
conn.close();
} else { //ID,PW가 일치하지 않는 경우
%>
<script>
alert("ID 또는 PW를 잘못 입력했습니다.");
document.location.href='Login.jsp'
</script>
stmt.close();
conn.close();
<% }
} %>
</html>
정보를 받은 user_id와 user_pw를 Mysql의 테이블정보와 확인하고 로그인 해주어 회원정보를 볼 수 있는 페이지로 이동시켜줍니다.
로그인 정보가 잘못됐을때는 alert메세지를 띄우게 코딩하였습니다.
다음은 회원정보 수정 및 삭제하는 페이지로 이어집니다.