로그인을 했으면 다시 메인 페이지로 돌아왔을 때 로그인을 계속 유지하거나 로그아웃을 하는 것을 해보려고한다.
파일
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;
}
}
저번에는 로그인에 성공했을 경우 성공했다는 페이지로만 넘어갔다. 이젠 앞서 만든 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);
}
}
로그인 성공시 보게 될 메인 페이지를 만들어 준다.
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>

메인 페이지에서 로그아웃을 눌렀을 경우 넘어오는 곳이며 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>
로그인을 하고나서 다른 페이지에 있다가 다시 내가 만든 홈페이지에 들어가면 재로그인을 해야된다. 이때 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>
