본문 바로가기
JSP Servlet

회원인증

by noddu 2021. 2. 16.
728x90
반응형

 

비연결->연결처럼 보이게 세션

MVC3 + 회원인증 만들기

 

context이름은 sin으로 간단하게 하기

 

session  -  접속 정보들

 

★request바인딩x                      ->        session바인딩o

(request한 get 1명가능(forward))              (get 여러명가능)

 

 

DB table에있는 column이름과 MemberVO 변수의이름이 같게해줘야한다.

 

 

 

●MemberMapper.xml (login )

<select id="memberLogin" parameterType="MemberVO" resultType="MemberVO">
       select * from memiot where id=#{id} and pass=#{pass}
</select>

 

●MemberDAOImpl.java

	@Override
	public MemberVO memberLogin(MemberVO vo) {
		SqlSession session = sqlSessionFactory.openSession();
		MemberVO vo1 = session.selectOne("memberLogin", vo);
		session.close();
		return vo1;

 

●LoginController.java

@WebServlet("/login.do")
public class LoginController extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String id = request.getParameter("id");
		String pass = request.getParameter("pass");
		MemberVO vo = new MemberVO();
		vo.setId(id);
		vo.setPass(pass);
		
		MemberDAO dao = new MemberDAOImpl();
		MemberVO vo1 = dao.memberLogin(vo);
		
		System.out.println(vo1); //vo1출력 -> 지정안해서 회원한명의 전체정보출력(값들을 하나의 String형태로 하나로만들어리턴 - toString - (생략되어있음))
									//toString메소드를 Override로 만들지 않아도 object를 상속받기때문에 에러는안나지만 , 번지(address)값이 나와버림
	}

}

 

   ▼있는 회원이면 정보가 toString이용해서 String형태로 나오고, 없는회원은 null로 출력되는걸 볼수있다. 

 

@WebServlet("/login.do")
public class LoginController extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String id = request.getParameter("id");
		String pass = request.getParameter("pass");
		MemberVO vo = new MemberVO();
		vo.setId(id);
		vo.setPass(pass);
		
		MemberDAO dao = new MemberDAOImpl();
		MemberVO vo1 = dao.memberLogin(vo);
		
		String cpath = request.getContextPath(); // <-   /sin
		
		//System.out.println(vo1); //vo1출력 -> 지정안해서 회원한명의 전체정보출력(값들을 하나의 String형태로 하나로만들어리턴 - toString - (생략되어있음))
									//toString메소드를 Override로 만들지 않아도 object를 상속받기때문에 에러는안나지만 , 번지(address)값이 나와버림
		
		if(vo1!=null) {
			//로그인성공 후에는 로그인이 성공된 후 서비스 되는 페이지로 전환(main,jsp)
			//redirect(.do) , forward(JSP)
			response.sendRedirect(cpath+"/main.jsp");
		}else {
			//로그인실패 ->다시 URL로그인 페이지로 돌리기
			response.sendRedirect(cpath+"/login.jsp");
		}
	}

}

회원인증 여부를 다른 페이지들도 가능하게 하기위해서

session set attribute해야함(세션바인딩)  ->  Http Session(메모리 공간)

 

 

개개인 로그인 요청하면 32자의 영숫자조합으로 세션id를만든다

그다음부터 로그인하면그 세션id(쿠키 - 흔적)  를가지고실행한다(개인의 정보로 실행하는것)

 f12, url엔터한번더치면 headers에있는 Cookie값나옴

 

처음에는 request?? ->

 

 

@WebServlet("/login.do")
public class LoginController extends HttpServlet {
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String id = request.getParameter("id");
		String pass = request.getParameter("pass");
		MemberVO vo = new MemberVO();
		vo.setId(id);
		vo.setPass(pass);
		
		MemberDAO dao = new MemberDAOImpl();
		MemberVO vo1 = dao.memberLogin(vo);
		
		String cpath = request.getContextPath(); // <-   /sin
		
		//System.out.println(vo1); //vo1출력 -> 지정안해서 회원한명의 전체정보출력(값들을 하나의 String형태로 하나로만들어리턴 - toString - (생략되어있음))
									//toString메소드를 Override로 만들지 않아도 object를 상속받기때문에 에러는안나지만 , 번지(address)값이 나와버림
		
		if(vo1!=null) {
			//로그인성공 후에는 로그인이 성공된 후 서비스 되는 페이지로 전환(main,jsp)
			HttpSession session = request.getSession();  //session이 안만들어져있으면 만드는것까지 하는메소드.
			session.setAttribute("vo", vo1);
			
			//redirect(.do) , forward(JSP)
			response.sendRedirect(cpath+"/main.jsp");
		}else {
			//로그인실패 ->다시 URL로그인 페이지로 돌리기
			response.sendRedirect(cpath+"/login.jsp");
		}
	}

}

session.get메소드중에 시간등을 알수있는것들있음 

 

 

●main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="kr.login.model.*"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="cpath" value = "${pageContext.request.contextPath}"/>

<c:if test="${vo==null}">
	<c:redirect url="login.jsp"/>  
</c:if>

null이면 main으로가지못하고 계속 login페이지에 머물게

반응형

'JSP Servlet' 카테고리의 다른 글

JSP 내장 객체  (0) 2023.09.22
MyBatis API 활용  (0) 2021.02.08
비동기식페이지2(JSON , Ajax)  (0) 2021.02.08
비동기식페이지(JQuery,Ajax,JSON)  (0) 2021.02.08
회원관리 MVC2+HandlerMapping+JSTL  (0) 2021.02.08