희원96
코딩 공부 일기
희원96
전체 방문자
오늘
어제
  • 다이어리 (94)
    • 일상 (2)
      • #.일기 (2)
      • 정보처리기사 (0)
    • 코딩 공부 (90)
      • Python (11)
      • Java (12)
      • DB (18)
      • Arduino (5)
      • HTML,CSS (7)
      • JSP, Servlet (14)
      • Javascript (8)
      • jQuery (2)
      • Spring (1)
      • Android (8)
      • ML (4)
      • React (0)
    • 프로젝트 (1)
      • 미니프로젝트 (1)
      • 1차프로젝트 (0)
      • 2차프로젝트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 개발 공부 일기

인기 글

태그

  • 스프링
  • 데이터베이스
  • Python
  • arduino
  • 아두이노
  • CSS
  • DB
  • Ajax
  • Spring
  • HTML
  • java
  • 자바스크립트
  • 안드로이드
  • jQuery
  • 제이쿼리
  • JSP
  • 스마트인재개발원
  • JavaScript
  • JS
  • 파이썬
  • JavaFestival
  • ml
  • 화이팅
  • Android
  • 자바
  • Database
  • Servlet
  • 머신러닝

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
희원96

코딩 공부 일기

[mybatis]회원가입실습2
코딩 공부/JSP, Servlet

[mybatis]회원가입실습2

2022. 5. 17. 11:59

DAO.Java

package com.smhrd.model;

import java.util.ArrayList;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.smhrd.database.SqlSessionManager;

public class DAO {

	private SqlSessionFactory sqlSessionFactory = SqlSessionManager.getsqlSession();
	private SqlSession sqlSession = null;
	
	public int join(IotMember vo) {
		int row = 0;
		try {
		//1.db 연결
		// openSession(boolean) --> 안쪽에 true를 넣으면 auto commit 가능
		// openSession() ---> insert,delet,update할때마다 commit을 직접 해줘야 함!
	     sqlSession   = sqlSessionFactory.openSession(true);
		
		//2. 실행
	   row = sqlSession.insert("com.smhrd.model.DAO.memberinsert", vo);
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			//3. 자원반납
			sqlSession.close();
			
		}
		return row;
	}
	public int delete(IotMember vo) {
		int row = 0;
		try {
		     sqlSession   = sqlSessionFactory.openSession(true);
			//2. 실행
		   row = sqlSession.delete("com.smhrd.model.DAO.memberdelete",vo);
			}catch (Exception e) {
				e.printStackTrace();
			}finally {
				//3. 자원반납
				sqlSession.close();
				
			}
			return row;
	}
	
	public IotMember login(IotMember vo) {
		IotMember result = null;
		try {
			//1. DB 연결(SQL Session 연결)
			sqlSession = sqlSessionFactory.openSession(true);
			//2. 로그인(select 하나만)
			result = sqlSession.selectOne("com.smhrd.model.DAO.memberlogin",vo);
					
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			
			sqlSession.close();
		}
		
		return result;
	}
	
	//컴파일 상 문제가 발생할 수 있는 코드를 경고형태(노란밑줄)로 나타내는데
	//해당하는 걸 사용하지 않겠다고 명시해주는 annotaion
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public ArrayList<IotMember> selectAll() {
		ArrayList<IotMember> result = null;
		
		try {
		sqlSession	=sqlSessionFactory.openSession(true);
		// selectList : select 시 여러개의 값(행)들을 되돌려 받고 싶을 때 사용하는 메소드
		result =(ArrayList) sqlSession.selectList("com.smhrd.model.DAO.selectall");
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			sqlSession.close();
		}
		return result;
	}
	
}

JoinCon.java

package com.smhrd.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.smhrd.model.DAO;
import com.smhrd.model.IotMember;

@WebServlet("/JoinCon")
public class JoinCon extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1. 한글 인코딩
		request.setCharacterEncoding("UTf-8");
		//2. 데이터 전부 가져오기
		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
		String nickname = request.getParameter("nickname");
		int age = Integer.parseInt( request.getParameter("age"));
		
		//3.하나로 묶기
		IotMember vo = new IotMember(id, pw, age, nickname);
	
		//4. DB에 데이터 보내기
		DAO dao = new DAO();
		int row  = dao.join(vo);
		
		if(row >0) {
			response.sendRedirect("main.jsp");
		}else {
			response.sendRedirect("Join.jsp");
		}
	}

}

LoinCon.java

package com.smhrd.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.smhrd.model.DAO;
import com.smhrd.model.IotMember;

@WebServlet("/LoginCon")
public class LoginCon extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//한글 인코딩
		request.setCharacterEncoding("UTF-8");
		
		//데이터 가져오기
		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
	
	
		//2. 데이터 하나로 묶기
		IotMember vo = new IotMember(id, pw);
		
		//3. DB안에 있는 데이터를 조회하기
		DAO dao = new DAO();
		
		//4. dao.login 메소드 생성
	    IotMember result= dao.login(vo);
	    
	    //6.name값은 member, value는 result를 담는 session 생성
	    if(result != null){
			
			HttpSession session = request.getSession();
			session.setAttribute("member", result);
			
			//7. LoginSuccess.jsp로 이동
			response.sendRedirect("LoginSuccess.jsp");
			
		}else{
			//8. 로그인 실패했다면 Login.jsp로 이동
			response.sendRedirect("Login.jsp");
		}
	    
	}

}

DeleteCon.java

package com.smhrd.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.smhrd.model.DAO;
import com.smhrd.model.IotMember;


@WebServlet("/DeleteCon")
public class DeleteCon extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		//인코딩 모음
				request.setCharacterEncoding("UTF-8");
				response.setCharacterEncoding("UTF-8");
				response.setContentType("text/html; charset = UTF-8");

				
				//1. 데이터 전부 가져오기
				String id = request.getParameter("id");
				String pw = request.getParameter("pw");
		//2. 데이터 하나로 묶기
				IotMember vo = new IotMember(id, pw);
		//3. DB안에 있는 데이터를 삭제하기
				DAO dao = new DAO();
				int row  = dao.delete(vo);
		//4. 삭제 성공했다면 Main.jsp로 이동
	    //5. 실패했다면 회원탈퇴 실패라고 출력!
				if(row >0) {
					response.sendRedirect("main.jsp");
				}else {
					PrintWriter out =response.getWriter();
					out.print("회원탈퇴 실패!");
				}
		
	}

}

SelectAllCon.java

package com.smhrd.controller;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.smhrd.model.DAO;
import com.smhrd.model.IotMember;


@WebServlet("/SelectAllCon")
public class SelectAllCon extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	//아무런 조건 없이 데이터 모두 선택해서 가져올 예정
		
	//1.DB 데이터 전부 가져오기
		DAO dao = new DAO();
	//2.selectAll 메소드 생성
	ArrayList<IotMember> list =	dao.selectAll();
	
	//3.request 담아주기
	// 2-1) 공유하고 싶은 데이터를 request 객체에 담기
	request.setAttribute("list",list);
	// 2-2) 전송할 수 있는 도구를 하나 꺼내오기
	RequestDispatcher rd = request.getRequestDispatcher("select.jsp");
	// 2-3) 도구를 사용해서 데이터를 보내주기
	rd.forward(request, response);
	
	
	//4.foward방식으로 select.jsp로 이동하기
	
	
	
	
	}

}

Join.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	input {
	display : block;
	
	}
</style>
</head>
<body>
		<form action ="JoinCon" method = "post">
		ID : <input type ="text" name ="id">
		PW : <input type = "password" name = "pw">
		AGE : <input type = "text" name = "age">
		NickName : <input type ="text" name ="nickname">
		<input type ="submit" value = "회원가입">
		</form>
</body>
</html>

Login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
input{
	display : block;
	}
</style>
</head>
<body>
	<h1>로그인 페이지</h1>
	<form action = "LoginCon" method = "post">
		ID : <input type = "text" name = "id">
		PW : <input type = "password" name = "pw">
		<input type = "submit" value = "로그인">
	
	</form>
	
	
	
	
	
</body>
</html>

LoginSuccess.jsp

<%@page import="com.smhrd.model.IotMember"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>로그인 성공</h1>
	<!-- session 안에 있는 데이터들 중 nickname값을 꺼내와서
	 	oo님 환영합니다~ 출력 
	 	id : 실제 아이디
	 	nickname : 실제 닉네임
	 	age : 실제 나이
	 	-->
	<%
		//1. session안에 있는 데잍 가져오기
		IotMember member = (IotMember) session.getAttribute("member");
		
	%>
	<b><%=member.getNickname()%>님 환영합니다!</b>
	<br>
	<ul>
		<li>ID : <%=member.getId() %></li>
		<li>NickName : <%=member.getNickname() %> </li>
		<li>Age : <%=member.getAge() %> </li>
	
	</ul>

</body>
</html>

Main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h1>메인페이지</h1>
	<a href = "Join.jsp">회원가입</a>
	<br>
	<a href = "Login.jsp">로그인</a>
	<br>
	<a href = "SelectAllCon" >전체 회원 확인하기</a>
	<br>
	<a href = "Delete.jsp">회원탈퇴</a>
</body>
</html>

select.jsp

<%@page import="com.smhrd.model.IotMember"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	//1. request안에 들어있는 list 데이터 꺼내오기
	ArrayList<IotMember> list = (ArrayList <IotMember>)request.getAttribute("list");
	
	//2. table에 ID, NickName, Age순으로 출력
	%>
	<table border = "1px solid black">
	<tr>
		<td>아이디</td>
		<td>닉네임</td>
		<td>나이</td>
	</tr>
	   <%
      for (int i = 0; i < list.size(); i++) {
      out.print("<tr>");
      out.print("<td>" + list.get(i).getId() + "</td>");
      out.print("<td>" + list.get(i).getAge() + "</td>");
      out.print("<td>" + list.get(i).getNickname() + "</td>");
      out.print("</tr>");
   }
   %>
	</table>
	
</body>
</html>

Delete.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>

	input{
	display : block;
	}
</style>
</head>
<body>
	
	<form action ="DeleteCon" method = "post">
		ID : <input type = "text" name ="id">
		PW : <input type = "password" name ="pw">
		<input type = "submit" value = "회원탈퇴">
	
	
	
	</form>
</body>
</html>
    '코딩 공부/JSP, Servlet' 카테고리의 다른 글
    • [Mybatis]회원 가입 실습 xml
    • [MyBatis]환경 구축
    • (JSP) model2 실습
    • [JSP] MVC, JDBC(model1 실습)
    희원96
    희원96
    개발 공부

    티스토리툴바