로그인MVC2(2)

최현석·2022년 10월 26일
0

JSP

목록 보기
11/13

🧩index.jsp

<body>
	<a href="app/user/joinview.jsp">회원가입</a><br>
	<a href="${pageContext.request.contextPath}/user/UserLogin.us">로그인</a>
</body>

🧩loginview.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    

<body>
	<c:if test="${not empty param.flag}">
		<c:if test="${not param.flag }">
			<script>
				alert("로그인 실패!");
			</script>
		</c:if>
	</c:if>
	<form action="${pageContext.request.contextPath }/user/UserLoginOk.us" method="post">
		<p>
			아이디 <input type="text" name="userid">
		</p>
		<p>
			패스워드 <input type="password" name="userpw">
		</p>	
		<p>
			<input type="submit" value="로그인하기">
		</p>
	</form>
</body>

🧩UserFrontController.java

protected void doProcess(HttpServletRequest req, HttpServletResponse resp) 
			throws ServletException, IOException {
		String requestURI = req.getRequestURI();
		ActionForward forward = null;
		
		if( requestURI.equals("/user/UserJoin.us") ) {
			System.out.println("frontcontroller 도착");
			forward = new UserJoinAction().execute(req, resp);
			//로그인
		} else if( requestURI.equals("/user/UserLogin.us") ) {
			forward = new ActionForward(false, "/app/user/loginview.jsp");
		   // 로그인 db처리
		} else if( requestURI.equals("/user/UserLoginOk.us") ) {
			forward = new UserLoginOkAction().execute(req, resp);
		}

🧩UserLoginOkAction.java

public class UserLoginOkAction implements Action {
	// DB처리
	@Override
	public ActionForward execute(HttpServletRequest req, HttpServletResponse resp) {
		ActionForward forward = new ActionForward();
		UserDAO udao = new UserDAO();
		
		String userid = req.getParameter("userid");
		String userpw = req.getParameter("userpw");
		
		if(udao.login(userid, userpw)) {
			// 로그인 성공
			forward.setPath("/app/main/mainview.jsp");
		} else {
			// 로그인 실패
            
			forward.setPath("/app/user/loginview.jsp?flag=false");
		}
		
		forward.setRedirect(false);
		return forward;
	}

}

🧩UserDAO.java

public boolean login(String userid, String userpw) {
		HashMap<String, String> datas = new HashMap<>();
		datas.put("userid", userid);
		datas.put("userpw", userpw);
		boolean result = false;
        
		// User.login -> user라는 xml파일안에 login만들어준다
        // 결과값이 object로 떨어져서 interger로 바꿔준다
		if((Integer)sqlsession.selectOne("User.login",datas) == 1) {
			result = true;
		}

		return result;
	}

🧩user.xml

	<!--resultType="_int" = count로 받아올거라 _int사용 -->
	<select id="login" parameterType="hashmap" resultType="_int">
		select count(*) from "USER" where userid = #{userid} and userpw = #{userpw}	
	</select>

🧩결과


0개의 댓글