jsp)로그인 연결

leeeexxxx·2022년 5월 26일
0

JSP

목록 보기
8/9

문제)아이디가 admin이면 로그인이 되게 처리하는법

기본html

1. login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login.jsp" method="post">

<fieldset>
<legend>로그인</legend>
아 이 디 :<input type="text" name="id" id="id" placeholder="아이디를 입력하세요">
<br>
<input type="submit" value="로그인"> 

</fieldset>
</form>
</body>
</html>

mariadb사용해 테이블생성 값 추가

member table
value(id,name)

2. sql


member 테이블 생성후 데이터 값을 넣어준다 (admin,관리자)

jsp

3.login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.lang.ProcessBuilder.Redirect" %>    
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*"  %>
<%
	//외부접속 막기
	if(request.getHeader("referer")==null)
		response.sendRedirect("login.html");
        
	//객체 초기화
	Connection conn =null;
	String sql ="SELECT * FROM member";	
	PreparedStatement pstmt=null;
	ResultSet rs = null;
	String id =(String)request.getParameter("id");
	
    //연결이 성공하면 처리되는 경우
	try{
	     Context init = new InitialContext();
	     DataSource ds =(DataSource)init.lookup("java:comp/env/jdbc/mariaDB");
	 	conn=ds.getConnection();
	 	
	 	pstmt=conn.prepareStatement(sql);
	 	rs=pstmt.executeQuery();
	 	
	 	while(rs.next()){
	 		if(id !=null&& id.equals(rs.getString(1))){
	 			session.setAttribute("id", id);
	 			session.setAttribute("name", rs.getString(2));
	 			response.sendRedirect("member.jsp");
	 		}
            if(rs.next() == false){
 			response.sendRedirect("login.html");
            //데이터를 불러왔으면 트루 불러올게 없으면 false;
 			}
	 	}
		//오류가 나면 처리 되는 구문 (false)
	}catch(Exception e){
		out.println("<h3>레코드 등록실패</h3>");
		e.printStackTrace();  
	}
    //true false상관없이 실행되는 구문
	finally{
		try{
			rs.close();
			pstmt.close();
			conn.close();
            //close해주지 않으면 데이터 손실이 일어날수있다.
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}

%>

4.member.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	if(request.getHeader("referer") == null)
		response.sendRedirect("login.html");
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=(String)session.getAttribute("name") %>님 반갑습니다.
<button onclick="location.href='logout.jsp';">logout</button>
</body>
</html>

5.logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	if(request.getHeader("referer")==null){
		response.sendRedirect("login.html");
	}else{
		session.removeAttribute("id");
		response.sendRedirect("login.html");
	}

%>

칼럼 추가

칼럼을 추가하고 데이터값을 추가로 넣어준다.
alter table member add level int(11);
insert into member(id,name,level)values('admin','관리자',0), ('cat','야옹이',1),('dog','멍멍이',2);

login.jsp -> level value받을 곳을 추가해준다

member.jsp

아이디 <%=(String)session.getAttribute("id") %> (<%=(String)session.getAttribute("name") %>님) 반갑습니다.
레벨:<%=(Integer)session.getAttribute("level") %>

0개의 댓글