반응형
HeidiSQL
member 테이블 생성
mno(pk,auto) / mid(10) / mpw(20) / mname(10) / mdate(datetime) / mgrade(1)
INSERT INTO member (mid,mpw,mname)
VALUES ('test1', '01234567', 'test1'),
('test2', '01234567', 'test2'),
('test3', '01234567', 'test3'),
('test4', '01234567', 'test4'),
('test5', '01234567', 'test5'),
('test6', '01234567', 'test6');
SELECT COUNT(*) AS count, mname FROM member
WHERE mid='test' AND mpw='0000';
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!-- 선언문 core태그 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 페이지입니다.</title>
<link href="./css/index.css" rel="stylesheet">
<link href="./css/menu.css" rel="stylesheet">
<script type="text/javascript" src="./js/menu.js"></script>
<style type="text/css">
html, body {
height: 100%;
margin: 70px auto;
}
body {
align-items: center;
}
#name_field, #pw_field{
width: 400px;
height: 30px;
text-align: left;
border-collapse: collapse;
border-bottom: 1px solid black;
border-left-style: none;
border-right-style: none;
border-top-style: none;
margin: 0 autopx;
padding-top: 10px;
display: flex;
align-items: center;
}
.h1{
text-align: center;
color : #8E44EC;
font-size: 50px;
}
#login_form, #reset_form{
width: 100%;
padding: 7px;
border: none;
border-radius: 5px;
color: white;
font-weight: bold;
background-color: #8E44EC;
cursor: pointer;
outline: none;
}
</style>
<script type="text/javascript">
function err(){
let errBox = document.querySelector("#errorMSG");
errBox.innerText="\n올바른 id와 pw를 입력하세요.";
errBox.style.color="#E84636";
errBox.style.fontSize="10pt"
}
</script>
</head>
<body>
<header>
<jsp:include page="menu.jsp"></jsp:include>
<!-- jsp: 는 출력 결과만 화면에 나옴 -->
</header>
<div class="main">
<div class="mainStyle">
<article>
<h1 class="h1">Login </h1>
<c:if test="${param.error ne null}">
<script type="text/javascript">
alert("올바른 암호와 아이디를 입력하세요.");
</script>
</c:if>
<div class="login">
<form action="./login" method="post" style="width: 400px; margin: 0 auto; padding-top: 10px;">
<input type="text" id="name_field" name="id" placeholder="아이디를 입력하세요."><br>
<input type="password" id="pw_field" name="pw" placeholder="암호를 입력하세요."><br><br>
<button type="reset" id="reset_form" style="width: 49%;"> 지우기 </button>
<button type="submit" id="login_form" style="width: 49%;">로그인</button>
<div id="errorMSG"></div>
</form>
</div>
</article>
</div>
</div>
<c:if test="${param.error ne null }">
<script type="text/javascript">
err();
</script>
</c:if>
</body>
</html>
login.java
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.websocket.Session;
import com.coffee.dao.MemberDAO;
import com.coffee.dto.MemberDTO;
@WebServlet("/login")
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
public Login() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
rd.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 2024-01-12 웹 서버 프로그래밍 구현
if(request.getParameter("id") != null && request.getParameter("pw") != null) {
MemberDTO dto = new MemberDTO();
dto.setMid(request.getParameter("id"));
dto.setMpw(request.getParameter("pw"));
MemberDAO dao = new MemberDAO();
dto = dao.login(dto);
if(dto.getCount() == 1) {
System.out.println("정상 로그인");
// 세션 만들기
HttpSession session = request.getSession();
session.setAttribute("mname", dto.getMname()); // mname이라는 이름으로 세션 생성
session.setAttribute("mid", dto.getMid()); // mid라는 이름으로 세션 생성
// 페이지 이동 = board
response.sendRedirect("./board");
} else {
System.out.println("로그인 불가 오류");
// 페이지 이동 = login?error=4567
response.sendRedirect("./login?error=4567");
}
} else {
}
}
}
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 39일차 TIL] 마이페이지, pw 변경 (1) | 2024.01.16 |
---|---|
[국비 38일차 TIL] 로그인 페이지 세션, 로그아웃 (1) | 2024.01.15 |
[국비 36일차 TIL] 게시판 만들기 (Delete, Util. update) (0) | 2024.01.11 |
[국비 35일차 TIL] 게시판 만들기 (게시글, 글쓰기) (1) | 2024.01.10 |
[국비 34일차 TIL] jstl 기초 시작 (0) | 2024.01.09 |
댓글