ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 211020_session으로 로그인/로그아웃
    JSP 2021. 10. 20. 16:07

    퀀텀db로 테이블 생성

     

     

    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">아이디저장

          <%}

          %>

            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

            <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>님이 로그인하였습니다

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

    <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

    댓글

Designed by Tistory.