- 로그인을 했으면 다시 메인 페이지로 돌아왔을 때 로그인을 계속 유지하거나 로그아웃을 하는 것을 해보려고한다.
- 파일
- Member.java
- main.jsp
- 로그인 성공 시 보여질 메인화면이다. 여기서 로그아웃 버튼을 누르면 로그아웃이 된다.
- logout.jsp
- 로그인되어 있는 회원 정보를 지우고 로그인 메인 페이지를 넘겨준다.
- 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>
끝

댓글