Spring/Model1 _2(MVC)
1017 JSP - (Funweb) 로그인 여부 체크 메서드
jeoniee
2022. 10. 17. 17:46
728x90
반응형
Contents
MemberFrontController
// MemberLoginAction() 객체생성
action = new MemberLoginAction();
try {
forward = action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}// MemberLoginAction.e 끝
else if(command.equals("/Main.me")) {
System.out.println(" C : /Main.me 호출");
System.out.println(" C : [패턴1] DB사용X, view페이지 이동");
forward = new ActionForward();
forward.setPath("./main/main.jsp");
forward.setRedirect(false);
}// Main.me 끝
else if(command.equals("/MemberLogout.me")) {
System.out.println(" C : /MemberLogout.me 호출");
System.out.println(" C : [패턴2] 비즈니스로직, 페이지 이동");
//logout 객체 호출! 10.17
action = new MemberLogoutAction();
try {
forward = action.execute(request, response);
action.execute(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
else if(command.equals("/MemberInfo.me")) {
System.out.println(" C : /Memberinfo.me 호출");
System.out.println(" C : 패턴3) DB 사용 o, 페이지 출력");
//MemberInfoAction()
}
로그인 여부 체크 메서드 memberLogin(ID, PW)
memberDAO
public int memberLogin(String id, String pw) {
int result = -1;
try {
con = getConnection();
sql = "select pw from itwill_member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if(rs.next()) {
//회원
if(pw.equals(rs.getString("pw"))) {
//로그인 성공
result = 1;
}else {
//로그인 실패
result = 0;
}
}else {
result = -1;
System.out.println(" DAO : 로그인 체크 ("+result+")");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
closeDB();
}
return result;
}
MemberLoginAction
package com.itwillbs.member.action;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.itwillbs.member.db.MemberDAO;
public class MemberLoginAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println(" M : MemberLoginAction_execute() 호출 ");
// 한글처리(생략)
// 전달정보 저장(id, pw)
String id = request.getParameter("id");
String pw = request.getParameter("pw");
// DAO 객체 - 로그인 여부 체크 메서드
MemberDAO dao = new MemberDAO();
int result = dao.memeberLogin(id, pw);
// 체크 결과에 따른 페이지 이동(JS)
if(result == 0) {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<script>");
out.print("alert('비밀번호 오류!'); ");
out.print("history.back(); ");
out.print("</script>");
out.close();
return null;
}
if(result == -1) {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<script>");
out.print("alert('회원정보 없음!'); ");
out.print("history.back(); ");
out.print("</script>");
out.close();
return null;
}
// result == 1
// 로그인 성공 -> 아이디 세션영역에 저장
HttpSession session = request.getSession();
session.setAttribute("id", id);
ActionForward forward = new ActionForward();
forward.setPath("./Main.me");
forward.setRedirect(true);
return forward;
}
}
top.jsp
이동해야하는 주소 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<header>
<div id="login">
<c:if test="${id == null }">
<a href="./MemberLogin.me">login</a> | <a href="./MemberJoin.me">join</a>
</c:if>
<c:if test="${id != null }">
<a href="./MemberInfo.me">${id }'s info</a> | <a href="./MemberLogout.me">logut</a>
</c:if>
</div>
<div class="clear"></div>
<!-- 로고들어가는 곳 -->
<div id="logo">
<img src="./images/logo.gif" width="265" height="62" alt="Fun Web">
</div>
<!-- 로고들어가는 곳 -->
<nav id="top_menu">
<ul>
<li><a href="./Main.me">HOME</a></li>
<li><a href="./company/welcome.jsp">COMPANY</a></li>
<li><a href="#">SOLUTIONS</a></li>
<li><a href="./center/notice.jsp">CUSTOMER CENTER</a></li>
<li><a href="#">CONTACT US</a></li>
</ul>
</nav>
</header>
회원 정보 메서드 만들기 - getMember
MemberDAO
//회원정보 조회 메서드 getMember(ID)
public MemberDTO getMember(String id) {
MemberDTO dto = null;
try {
con = getConnection();
sql = "select * from itwill_member where id=?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
//5.데이터 처리
if(rs.next()){
//회원정보 저장 (MemberBean)
//rs(DB정보) -> MemberBean
dto = new MemberDTO();
dto.setId(rs.getString("id"));
dto.setPw(rs.getString("pw"));
dto.setName(rs.getString("name"));
dto.setBirth(rs.getString("birth"));
dto.setGender(rs.getString("gender"));
dto.setEmail(rs.getString("email"));
dto.setAddr(rs.getString("addr"));
dto.setTel(rs.getString("tel"));
dto.setRegdate(rs.getTimestamp("regdate"));
}
System.out.println(" DAO : 회원 정보 저장완료!");
} catch (Exception e) {
e.printStackTrace();
}finally {
closeDB();
}
return null;
}
//회원정보 조회 메서드 getMember(ID)
MemberInfoAction
package com.itwillbs.member.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.itwillbs.member.db.MemberDAO;
import com.itwillbs.member.db.MemberDTO;
public class MemberInfoAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println(" M : MemberInfoAction_execute() 호출");
// 세션 제어
HttpSession session = request.getSession();
String id = (String)session.getAttribute("id");
ActionForward forward = new ActionForward();
if(id==null) {
forward.setPath("./Main.me");
forward.setRedirect(false);
return forward;
}
// DAO - 회원 정보 가져오는 메서드 (getMember(ID))
MemberDAO dao = new MemberDAO();
MemberDTO dto = dao.getMember(id);
// 정보를 request 영역에 저장(view 전달)
request.setAttribute("dto", dto);
// ./member/info.jsp페이지 이동
forward.setPath(id);
forward.setRedirect(false);
return forward;
}
}
join 복붙 -> info로 바꿔주기
회원정보 수정하기
updateAction
join 복붙 -> update로 바꿔주기
728x90
반응형