| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 직장 병행
- go
- gin recovery
- go air
- go 환경변수
- gin logger
- go recover
- 신입개발자
- gopath 환경변수
- 개발자 사이버대
- go 맥 air
- go clean architecture
- 좀비고루틴
- 직장인 사이버대
- clean architecture middleware
- 개발자
- go디자인패턴
- git
- go air 환경변수
- golang gopher
- 골랑 고퍼
- 세종사이버대 정보보호학과
- air 환경변수
- 2년차개발자
- go 캐릭터
- gin middleware
- go 맥
- go middleware
- go 맥 air 환경변수
- go 마스코트
Archives
- Today
- Total
뽀미의 개발노트
로그인 체크할때 loginedMemberId와 loginedMember 차이 - 해결 본문
로그인 체크할 때
rq에서 oginedMemberId 사용 안 하고 loginedMember 만 사용하고 싶어서
@Getter
private Member loginedMember;
private HttpServletRequest req;
private HttpServletResponse resp;
private HttpSession httpSession;
public Rq(HttpServletRequest req,
HttpServletResponse resp, HttpSession httpSession,
MemberService memberService) {
this.req = req;
this.resp = resp;
this.httpSession = req.getSession();
Member loginedMember = null;
if(httpSession.getAttribute("loginedMember") != null) {
loginedMember = (Member)httpSession.getAttribute("loginedMember");
}
this.loginedMember = loginedMember;
this.req.setAttribute("rq", this);
}
public void login(Member member) {
httpSession.setAttribute("loginedMember", member);
}
public void logout() {
httpSession.removeAttribute("loginedMember");
}
Rq에 이렇게 설정한 다음
<c:if test="${rq.getLoginedMember() == null }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${rq.getLoginedMember() != null }">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
<c:if test="${Util.empty(rq.getLoginedMember()) }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${Util.empty(rq.getLoginedMember()) == false}">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
<c:if test="${rq.loginedMember == null }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${rq.loginedMember != null }">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
<c:if test="${rq.getLoginedMember().equals(null) }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${rq.getLoginedMember().equals(null) == false}">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
이렇게 다양한 방법으로 써봤는데 로그아웃은 한번도 안 나왔다...
그래서 어쩔수 없이 loginedMemberId 써서 rq 이렇게 바꿔주고 했더니
@Getter
private int loginedMemberId;
@Getter
private Member loginedMember;
private HttpServletRequest req;
private HttpServletResponse resp;
private HttpSession httpSession;
public Rq(HttpServletRequest req,
HttpServletResponse resp, HttpSession httpSession,
MemberService memberService) {
this.req = req;
this.resp = resp;
this.httpSession = req.getSession();
int loginedMemberId = 0;
Member loginedMember = null;
if(httpSession.getAttribute("loginedMemberId") != null) {
loginedMemberId = (int)httpSession.getAttribute("loginedMemberId");
loginedMember = (Member)httpSession.getAttribute("loginedMember");
}
this.loginedMemberId = loginedMemberId;
this.loginedMember = loginedMember;
this.req.setAttribute("rq", this);
}
public void login(Member member) {
httpSession.setAttribute("loginedMemberId", member.getId());
}
public void logout() {
httpSession.removeAttribute("loginedMemberId");
}
<c:if test="${rq.getLoginedMemberId() == 0 }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${rq.getLoginedMemberId() != 0 }">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
로그인/ 로그아웃 체크 잘 됨!!! 왜일까? 계속 씨름하느니 일단 loginedMemberId 살려서 해두겠음....
다시 해보니까 됐음!! 그냥 interceptor랑 webmvcconfigurer 안 해줘서 안 됐던거였음...
그런데
<c:if test="${Util.empty(rq.getLoginedMember()) }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${Util.empty(rq.getLoginedMember()) == false}">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
얘는 여전히 안됨. 아예 오류나서 화면이 안 나와버림
<c:if test="${rq.getLoginedMember().equals(null) }">
<div><a href="../member/memberlogin">로그인</a></div>
<div><a href="../member/memberjoin">회원가입</a></div>
</c:if>
<c:if test="${rq.getLoginedMember().equals(null) == false}">
<div><a href="../member/doMemberLogout">로그아웃</a></div>
</c:if>
이것도 안 됨. 왜냐면 equals는 string을 비교할때 쓰는 거기 때문임.
일줄 알았는데.. 다시 검색해보니 equals는 string말고 object도 비교할 수 있다는데.. 그럼 저건 왜 안돼지?ㅠㅠ
일단 넘어가자~!!!
'Trouble_Shooting' 카테고리의 다른 글
| form 에 적힌 여러 정보를 list로 받아 controller로 한번에 보내기 (0) | 2023.05.24 |
|---|---|
| 다중 셀렉트 박스 만들기 (0) | 2023.05.23 |
| 프로젝트 진행시 '과정'을 기록할 방법 (1) | 2023.05.15 |
| 프로젝트 결정!!! 수학인강사이트 (1) | 2023.05.15 |
| Git clone해서 원하는 시점 내려받기 (1) | 2023.03.15 |