728x90
처음 로그인 상태로 가보자.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="menu.jsp"%>
<div class="text-center">
<br/>
<br/>
<%@ include file="./process/IdSaveMain2.jsp"%>
<br/>
<br/>
</div>
<hr>
<%@ include file="./footer/footer.jsp"%>
</body>
</html>
중간에 IdSaveMain2.jsp로 이동하게 된다.
그전에 쓰던 1버전을 구버전으로 만들고 세션으로 로그인을 판별해보자.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="utils.CookieManager" %>
<%
String loginId = CookieManager.readCookie(request, "loginId");
//CookieManager.java에서 static으로 Cookie객체가 생성되기 때문에
//import해온 IdSaveMain.jsp에서는 새로 객체를 생성할 필요가 없다.
String cookieCheck = "";
if(!loginId.equals("")){
cookieCheck = "checked";
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session</title>
</head>
<body>
<h2>로그인 페이지</h2>
<span style="color: red; font-size: 1.2em;">
<%= request.getAttribute("LoginErrMsg") == null ?
"" : request.getAttribute("LoginErryMsg") %>
</span>
<%
// 로그인 상태 확인
if(session.getAttribute("UserID") == null) {
// 로그아웃 상태
%>
<script>
function validateForm(form) {
if (!form.user_id.value) {
alert("아이디를 입력하세요.");
return false;
}
if (form.user_pw.value == "") {
alert("패스워드를 입력하세요.");
return false;
}
}
</script>
<form action="/WebMarketY/Web/LoginProcess.jsp" method="post">
<br/>
회원님을 기억할까요?
<input type="checkbox" name="save_check" value="Y" <%= cookieCheck %> />
<br/>
<br/>
<input class="form-control form-control-lg" type="text" name="user_id" value="<%= loginId %>" placeholder="아이디를 입력해 주세요!!" aria-label=".form-control-lg example">
<br/>
<br/>
<input class="form-control form-control-lg" type="text" name="user_pw" placeholder="비밀번호를 입력해 주세요!!" aria-label=".form-control-lg example">
<br/>
<br/>
<button type="submit" class="btn btn-success">로그인하기</button>
<button type="button" class="btn btn-primary" onclick="location='./signUp/addUser.jsp'">회원가입</button>
</form>
<%
} else {
%>
<%= session.getAttribute("UserName") %> 회원님, 로그인하셨습니다.<br/>
<a href="Logout.jsp">[로그아웃]</a>
<%
}
%>
</body>
</html>
기본적인 틀은 동일하다.
여기에서 값을 받아서 처리하는 코드를 다르게 할 것이다.
form 에서 받은 값이 LoginProcess.jsp 로 넘어가서 판별 할 것이다.
우선 필요한 기능을 임포트해서 불러와 준다.
<%@ page import="membership.MemberDTO" %>
<%@ page import="membership.MemberDAO" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="utils.CookieManager" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="utils.JSFunction" %>
<%@ page import="common.JDBConnect" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%
// 로그인 폼으로 부터 받은 아이디와 패스워드
String id = request.getParameter("user_id");
String pass = request.getParameter("user_pw");
// web.xml 에서 가져온 데이터베이스 연결 정보
String oracleDriver = application.getInitParameter("OracleDriver");
String oracleURL = application.getInitParameter("OracleURL");
String oracleId = application.getInitParameter("OracleId");
String oraclePwd = application.getInitParameter("OraclePwd");
String user_pw = request.getParameter("user_pw");
String save_check = request.getParameter("save_check");
MemberDAO dao = new MemberDAO(oracleDriver, oracleURL, oracleId, oraclePwd);
MemberDTO memberDTO = dao.getMemberDTO(id, pass);
dao.close();
if (memberDTO.getId() != null) { // 로그인 성공
if(save_check != null && save_check.equals("Y")){
CookieManager.makeCookie(response, "loginId", id, 86400);
}else {
CookieManager.deleteCookie(response, "loginId");
}
session.setAttribute("id", memberDTO.getId());
session.setAttribute("name", memberDTO.getName());
JSFunction.alertLocation("로그인에 성공했습니다", "./signUp/LoginS.jsp", out);
}
else { // 로그인 실패
request.setAttribute("LoginErrMsg", "로그인 오류입니다.");
request.getRequestDispatcher("LoginDisplay.jsp").forward(request, response);
}
%>
이번은 오라클을 접속하는 방법을 달리 해보았다.
web.xml 에서 로그인 정보를 가져오게 되었다.
JDBConnect 를 불러와서 데이터 베이스를 연결한다.
로그인이 성공한다면,
이제 세션에 값을 저장할 것이다.
그 저장한 값을 가지고 다음에는 로그인 유지를 기능을 만들어 볼 것이다.
로그인 값이 정확하지 않다면
로그인 페이지로 되돌리게 만들었다.
728x90
'국비교육 [完] > WebMarket' 카테고리의 다른 글
8. 로그인이 안되어 있으면 로그인 창으로 (0) | 2023.03.09 |
---|---|
7. 로그인 유지 기능 (0) | 2023.03.09 |
5. 회원 가입 (0) | 2023.03.02 |
4. 데이터 베이스 로그인 기능 구현 (0) | 2023.03.01 |
3. 상품 목록 만들기 (0) | 2023.03.01 |