[JSP] 간단한 로그인[2] 로그아웃

델버·2022년 7월 23일
0

JSP

목록 보기
2/8
  • 로그인을 했으면 다시 메인 페이지로 돌아왔을 때 로그인을 계속 유지하거나 로그아웃을 하는 것을 해보려고한다.

  • 파일

  1. Member.java
    • 회원 정보를 담을 파일이다.
  2. main.jsp
    • 로그인 성공 시 보여질 메인화면이다. 여기서 로그아웃 버튼을 누르면 로그아웃이 된다.
  3. logout.jsp
    • 로그인되어 있는 회원 정보를 지우고 로그인 메인 페이지를 넘겨준다.
  4. index.jsp
    • 만약 회원 정보 객체가 있으면 바로 메인 페이지로 넘기는 역할이다.

1. Member

  • 로그인에 성공하였으면 회원 정보를 받아 저장할 공간이다.
  • 나중에 새로 만들 table에 연결시킬 것이기 때문에 기본 정보만 만들어 놓는다.
package practice;

public class Member {
    int pid;
    String id;
    String name;

    public Member(int pid, String id, String name) {
        this.pid = pid;
        this.id = id;
        this.name = name;
    }

    public int getPid() {
        return pid;
    }

    public void setPid(int pid) {
        this.pid = pid;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

2. 로그인 성공 시 회원 정보 담기

  • 저번에는 로그인에 성공했을 경우 성공했다는 페이지로만 넘어갔다. 이젠 앞서 만든 Member 객체를 넘겨주어 메인 페이지에서 확인할 수 있게 만들어줄 것이다.

  • loginReg.jsp에서 successlogin을 새로 만들어 줄 메인 페이지로 바꿔주고 Member 객체를 만들어 준다.

  • Member 객체 부분은 후에 다른 table을 만들어 정보를 불러오는 로직으로 만들 것이다

  • 중요한 것은 application.setAttribute()를 사용하여 객체를 넘겨준다. 만약 사용자가 다른 페이지에 넘어갔다가 와도 로그인은 유지되게 만들려고 하기 때문이다.

if(!(member_info == null)) {
        if(member_info.getPassword().equals(login_pw)) {

            successLogin = "../main/main.jsp";
            Member user_member = new Member(member_info.getPid(),member_info.getId(),"델버");
            msg = "델버님 안녕하세요!";
            // "델버" 이 부분은 나중에 다른 table과 연결 지을 것이므로 일단 하드코딩
            application.setAttribute("member", user_member);

        }
    }

2. 메인 페이지

  • 로그인 성공시 보게 될 메인 페이지를 만들어 준다.

  • application.getAttribute()를 사용해 회원 정보를 가진 객체를 받아 화면에 표시한다.

  • a 태그를 이용해 간단하게 로그아웃을 만들고 logout.jsp를 연결해 준다.

<%@ page import="practice.Member" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    Member user_member = (Member) application.getAttribute("member");

%>
<html>
<head>
    <title>main</title>
</head>
<body>
    <h1><%=user_member.getName()%></h1>
  <h1>main</h1>
    <a href="../login/logout.jsp">로그아웃</a>
</body>
</html>

3. 로그아웃 logout.jsp

  • 메인 페이지에서 로그아웃을 눌렀을 경우 넘어오는 곳이며 loginReg와 마찬가지로 사용자에겐 보이지 않는 곳이다.

  • loginReg.jsp와 구조는 같은데 application.removeAttribute()로 회원 정보 객체를 지워주는 부분이 있다.

  • 알람 확인을 누르면 다시 로그인 메인 페이지로 넘어가게 한다.

<%@ page import="practice.Member" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    Member user_member = (Member) application.getAttribute("member");
		// alert()의 회원 이름을 띄우기 위해 객체를 지우기 전 변수에 담아둔다.
    application.removeAttribute("member");

%>
<script type="text/javascript">
    alert("<%=user_member.getName()%>님 로그아웃되었습니다!")
    location.href = "loginMain.jsp"
</script>

4. index.jsp

  • 로그인을 하고나서 다른 페이지에 있다가 다시 내가 만든 홈페이지에 들어가면 재로그인을 해야된다. 이때 setAttribute()를 사용하여 넘겨준 정보가 남아있어 재로그인하지 않을 상황을 만들려고 한다.

  • 기본 값은 로그인 메인 페이지로 해놓고 만약 회원 정보 객체가 있다면 메인 페이지로 바로 넘어가게 만드는 것이다.

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String go = "login/loginMain.jsp";
    if( !(application.getAttribute("member") == null)) {
        go = "main/main.jsp";
    }
%>

<script type="text/javascript">

    location.href = "<%=go%>"

</script>

  • 회원 가입이 남았다..

0개의 댓글