로그인을 했으면 다시 메인 페이지로 돌아왔을 때 로그인을 계속 유지하거나 로그아웃을 하는 것을 해보려고한다.
파일
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>