본문 바로가기

Web Language/JSP

JSP와 DB연결 - 로그인 기능(DB연결)

  로그인기능

 

예전에 했던 로그인 기능을 생각해 보자.

session을 응용하여 파일 내에서 선언해둔 변수(아이디,패스워드)의 값과 일치 불일치를 따져보고 로그인에 성공하고 실패하고 유지되는 작업을 해보았었다.

하지만 오늘 할 로그인 기능은 데이터베이스에 저장된 아이디, 패스워드 값을 로그인폼에서 입력한 값과 비교를 하여 로그인에 성공하고 실패하고 유지되는 작업을 해볼것이다.

 


 

▶ 로그인 기능 구현

1. 파일 구성

 

WebContent 폴더 하위에 login 폴더와 index.jsp 파일을 만들었다. index.jsp파일은 로그인 유지가 되는 메인 홈 화면이고, login 폴더 안의 jsp파일은 각각

 - login_form : 로그인 정보를 입력할 수 있는 화면이다.

 - login_pro : 데이터베이스에 연결하여 로그인 정보와 데이터베이스 정보를 비교하는 작업등을 한다.

 - logout : 로그아웃 버튼을 클릭시, 세션이 종료되는 기능을 제공한다.

WEB-INF -lib 폴더 하위에는 mysql에서 제공하는 드라이버를 다운받았다.

 

2. 로그인 폼 구성

<form action="<%= request.getContextPath() %>/login/login_pro.jsp" method="post">
	아 이 디: <input type="text" name="id">	
	비밀번호 : <input type="password" name="pw">	
	<input type="submit" value="로그인버튼">
</form>

 

로그인 폼을 간단하게 구성해보았다.

 - 폼 : submit 버튼 클릭시, action의 url로 정보와 같이 이동한다. post 타입으로 입력한 정보가 url에 표시되지 않는다.

 - 아이디 : text타입의 입력창이다.

 - 비밀번호 : password 타입의 입력창으로, 입력시 노출이 되지 않는다 ******

 

3. 로그인 기능 구성

 

 

코드를 설명하자면,

데이터베이스의 연결을 위해 jdbc 객체를 사용한다. 그렇기 때문에 이전에 했던 작업들과 기본적으로 구성은 같다.

다른점이 있다면, 위 폼에서 입력한 데이터를 받아와서 쿼리문에 적용하고, rs에 담긴 결과(일치하는 id)가 있다면next함수를 호출하여 그 결과(아이디)의 비밀번호와 비교하여 본다. 만약 비밀번호도 같다면 세션에 "name"이라는 이름을 저장한다.

그리고 객체를 종료하기 전, login_pro.jsp 파일은 화면구성을 전혀 하지 못하므로 index.jsp파일로 경로를 이동시켜준다.

 

4. 로그인폼 수정

<%
  String name = (String)session.getAttribute("name");
  if(name == null){
%>
<form action="<%= request.getContextPath() %>/login/login_pro.jsp" method="post">
	아 이 디: <input type="text" name="id">	
	비밀번호 : <input type="password" name="pw">	
	<input type="submit" value="로그인버튼">
</form>
<%
}else{
	%>
    <%=name%>로그인님 중
    <a href="<%= request.getContextPath() %>/login/logout.jsp">로그아웃</a>
    <%
}
%>

 

폼만 만들어둿던 로그인 폼을 약간 수정하였다.

수정한 내용으로는, 세션에서 "name"이라는 이름을 받아와서 name이라는 변수에 저장하였다.

그 후, name값이 있다면, 로그인 상태로 로그인폼이 보이지 않고, 로그인상태와 로그아웃 링크를 보여준다.

name값이 없다면 비 로그인 상태이므로 로그인을 할 수 있게 로그인폼을 보여준다.

 

5.  화면 구성

 

인덱스 메인 화면에서 로그인을 할 수 있게 폼을 include 했다.

 

6. 로그아웃 기능

세션을 종료하여 로그아웃 하였다


▶ 결과 캡쳐

- 화면

- 로그인 성공

 

- 데이터베이스 데이터

- 로그아웃

 

 


 

'Web Language > JSP' 카테고리의 다른 글

MVC 패턴 - model2  (0) 2020.05.13
forward 와 redirect  (0) 2020.04.13
JSP와 DB연결 - DELETE  (0) 2020.04.01
JSP와 DB연결 - UPDATE *  (0) 2020.04.01
JSP와 DB연결 - SELECT  (0) 2020.04.01