
idxDao.java
package idx.model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import mysql.db.DbConnect;
public class idxDao {
DbConnect db=new DbConnect();
//아이디를 통해서 name값을 얻는다..파라메타값을 아이디로..로그아웃을 하기 위해
public String getName(String id) {
Connection conn=db.getConnection();
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select * from idx where id=?";
String name="";
try {
pstmt=conn.prepareStatement(sql);
//?바인딩
pstmt.setString(1, id);
rs=pstmt.executeQuery();
//하나만 구할거니까 if
if(rs.next())
{
name=rs.getString("name");
}
} catch (SQLException e) {
} finally {
db.dbClose(rs, pstmt, conn);
}
return name;
}
//id와 pass가 일치하는지 확인하는 메서드..로그인을 하려고
public boolean isLogin(String id,String pass) {
boolean flag=false; //기본값을 false로 줌
Connection conn=db.getConnection();
PreparedStatement pstmt=null;
ResultSet rs=null;
String sql="select * from idx where id=? and pass=?";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pass);
rs=pstmt.executeQuery();
if(rs.next())
{
flag=true; //비밀번호가 맞는 데이터가 있으면 true
}
} catch (SQLException e) {
} finally {
db.dbClose(rs, pstmt, conn);
}
return flag;
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loginform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<%
//세션으로부터 아이디저장체크값saveok, 아이디값idok을 얻는다
String saveok=(String)session.getAttribute("saveok");
String idok=(String)session.getAttribute("idok");
%>
<body>
<form action="loginproc.jsp" method="post">
<table class="table table-bordered" style="width: 280px; border: 3px solid lightgray; margin: 0 auto;">
<caption><b style="font-size: 15pt;">세션로그인</b></caption>
<tr>
<td colspan="2" style="padding-left: 10px;">
<%
if(saveok==null) //체크 안했다면
{%>
<input type="checkbox" name="savechk">아이디저장
<%} else //체크했다면
{%>
<input type="checkbox" name="savechk" checked="checked">아이디저장
<%}
%>
<b>보안로그인</b>
</td>
</tr>
<tr height="30">
<th width="90">아이디</th>
<td width="150" style="padding-left: 10px;">
<%
if(saveok==null)
{%>
<input type="text" name="id" size="10" autofocus="autofocus"
required="required" class="form-control" value="">
<%} else
{%>
<input type="text" name="id" size="10" autofocus="autofocus"
required="required" class="form-control" value="<%=idok%>">
<%}
%>
</td>
</tr>
<tr height="30">
<th width="90">비밀번호</th>
<td width="150" style="padding-left: 10px;">
<input type="text" name="pass" size="10" required="required" class="form-control">
</td>
</tr>
<tr height="30">
<td colspan="2" align="center">
<input type="submit" value="로그인" class="btn btn-info">
<input type="button" value="회원가입" onclick="" class="btn btn-success">
</td>
</tr>
</table>
</form>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loginproc.jsp
<%@page import="idx.model.idxDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<!-- 폼에서 입력한 값을 request.getparameter로 받고 db와 일치하는지 확인 -->
<%
String id=request.getParameter("id");
String pass=request.getParameter("pass");
String savechk=request.getParameter("savechk");
//아이디와 비번이 맞는지 확인
idxDao dao=new idxDao();
boolean flag=dao.isLogin(id, pass);
//맞으면 세션 저장후 로그인메인으로 이동
if(flag)
{
//로그인중인지를 알수있는 세션저장
session.setAttribute("loginok", "yes");
//아이디와 체크값 저장
session.setAttribute("idok", id);
//체크값 선택하면 on, 안하면 null로 콘솔에 뜨는 걸 세션저장
session.setAttribute("saveok", savechk);
//세션유지시간
session.setMaxInactiveInterval(60*60*8); //8시간유지
//로그인메인으로 이동
response.sendRedirect("loginmain.jsp");
} else
{%>
<script type="text/javascript">
alert("아이디와 비밀번호가 맞지않습니다");
history.back();
</script>
<%}
%>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loginmain.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<%
String loginok=(String)session.getAttribute("loginok");
if(loginok==null || loginok.equals("")) //로그아웃상태
{%>
<jsp:include page="loginform.jsp"/>
<%} else //로그인상태
{%>
<jsp:include page="logoutform.jsp"/>
<%}
%>
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
logoutform.jsp
<%@page import="idx.model.idxDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<%
//세션으로부터 아이디를 읽어온다
String id=(String)session.getAttribute("idok");
//아이디에 해당하는 이름을 dao로부터 얻어온다
idxDao db=new idxDao();
String name=db.getName(id);
%>
<br><br>
<b style="color: magenta;"><%=name %></b>님이 로그인하였습니다
<input type="button" value="로그아웃" onclick="location.href='logoutproc.jsp'">
<hr>
<img alt="" src="../image/m09.jpg">
</body>
</html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
logoutproc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css2?family=Do+Hyeon&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<%
//로그인에 대한 세션값loginok 삭제remove
session.removeAttribute("loginok");
//로그인메인으로 이동..항상 메인을 통해 이동하도록
response.sendRedirect("loginmain.jsp");
%>
</body>
</html>



'JSP' 카테고리의 다른 글
211021_파일입출력 (0) | 2021.10.21 |
---|---|
211020_session (0) | 2021.10.20 |
211020_jsp로 게시판 만들기 (0) | 2021.10.20 |
211019_복습(jsp) (0) | 2021.10.19 |
211019_jsp로 게시판 만들기 (0) | 2021.10.19 |