develope_kkyu

[Spring] oracle db와 연동하여 회원가입, 로그인 페이지 만들기 본문

JAVA/Java EE(Spring)

[Spring] oracle db와 연동하여 회원가입, 로그인 페이지 만들기

developekkyu37 2022. 12. 28. 17:05
728x90

jsp, mybatis 등을 활용하여 회원가입, 로그인 페이지 만들기

 

  • 기능
    • 회원가입시 비밀번호와 비밀번호 확인이 다를시 경고창
    • 회원가입 페이지에 빈칸이 있을시 '입력하시오' 경고
    • 회원가입 성공시 로그인 페이지로 넘어감
    • 로그인시 아이디나 비밀번호가 db에 없으면 다시 로그인
    • 로그인 성공시 홈페이지로 넘어가고 
    • 아이디와 로그아웃 링크 생성(session 사용)

home.jsp - 홈 화면

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
<%--<c:if test="${empty userid}">
<a href="/login">로그인하기</a>&nbsp;&nbsp;<a href="/signin">회원가입</a>
</c:if>
<c:if test="${not empty userid}">
<label>${userid }</label>&nbsp;&nbsp;<a href="/signout">로그아웃</a>
</c:if> --%>
<%
	if(session.getAttribute("gUserid")==null){
		out.print("<a href='/login'>로그인하기</a>&nbsp;&nbsp;<a href='/signin'>회원가입</a>");
	} else {
		out.print("<label>"+session.getAttribute("gUserid")+"</label>&nbsp;&nbsp;<a href='/signout'>로그아웃</a>");
	}
%>
<h1>Welcome Home Page</h1>
</body>
</html>

login.jsp - 로그인 화면

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
<%--<c:if test="${empty userid}">
<a href="/login">로그인하기</a>&nbsp;&nbsp;<a href="/signin">회원가입</a>
</c:if>
<c:if test="${not empty userid}">
<label>${userid }</label>&nbsp;&nbsp;<a href="/signout">로그아웃</a>
</c:if> --%>
<%
	if(session.getAttribute("gUserid")==null){
		out.print("<a href='/login'>로그인하기</a>&nbsp;&nbsp;<a href='/signin'>회원가입</a>");
	} else {
		out.print("<label>"+session.getAttribute("gUserid")+"</label>&nbsp;&nbsp;<a href='/signout'>로그아웃</a>");
	}
%>
<h1>Welcome Home Page</h1>
</body>
</html>

signin.jsp - 회원가입 화면

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>signin</title>
</head>
<body>
<form action="/register" id=frmSignin>
<table>
<tr>
	<td>로긴아이디</td><td><input type="text" name=userid id=userid></td>
</tr>
<tr>
	<td>비밀번호</td><td><input type="password" name=password id=password></td>
</tr>
<tr>
	<td>비밀번호확인</td><td><input type="password" name=password2 id=password2></td>
</tr>
<tr>
	<td>실명</td><td><input type="text" name=name id=name></td>
</tr>
<tr>
	<td>모바일</td><td><input type="text" name=mobile id=mobile></td>
</tr>
<tr>
	<td colspan=2 align=center>
		<input type="submit" value="회원가입" id=btnSubmit>
	</td>
</tr>
</table>
</form>
<table><tr><td>
<a href='/'>홈으로</a></td><td><a href='/login'>로그인하기</a></td></tr>
</table>
</body>
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<script>
$(document)
.on('submit','#frmSignin',function(){
	if($('#userid').val()==''||$('#password').val()==''||$('#password2').val()==''||$('#name').val()==''||$('#mobile').val()==''){
		alert('입력하시오');
		return false;
	}
	if($('#password').val()==$('#password2').val()){
		return true;
	} else {
		alert('비밀번호와 확인이 일치하지 않습니다.');
		return false;
	}
})
/*.on('click','#btnSubmit',function(){
	if($('#password').val()==$('#password2').val()){
		('#frmSignin').submit();
	} else {
		alert('비밀번호와 확인이 일치하지 않습니다.');
		return false;
	}
})*/
</script>
</html>

MyController.java - 서버

package com.human.springboot;

import java.util.ArrayList;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;

@Controller
public class MyController {
	@Autowired
	private MemDAO mem;
	
	@RequestMapping("/")
	public String home(HttpServletRequest req, Model model) {
//		HttpSession session=req.getSession();
//		String sess_info = (String) session.getAttribute("gUserid");
//		model.addAttribute("userid", sess_info);
		return "home";
	}
		
	@RequestMapping("/login")
	public String doLogin() {
		return "login";
	}
	
	@RequestMapping("/signout")
	public String doSignout(HttpServletRequest req) {
		HttpSession session=req.getSession();
		session.invalidate();
//		session.setAttribute("gUserid", null);
		return "redirect:/";
	}
	
	@RequestMapping("/checkuser")
	public String doCheck(HttpServletRequest req, Model model) {
		String id = req.getParameter("userid");
		String pw = req.getParameter("password");
		int cnt = mem.MemberCnt(id, pw);
		
		if(cnt == 1) {
			HttpSession session=req.getSession();				// 초기화
			session.setAttribute("gUserid", id);				// 값 설정
			session.setAttribute("gUserpw", pw);
			return "redirect:/";
		} else {
			return "redirect:/login";
		}
		
//		model.addAttribute("uid", id);
//		model.addAttribute("upw", pw);
//		
//		return "loginok";
	}
	
	@RequestMapping("/signin")
	public String doSignin() {
		return "signin";
	}
	
	@RequestMapping("/register")
	public String doUser(HttpServletRequest req, Model model) {
		String id = req.getParameter("userid");
		String pw = req.getParameter("password");
		String name = req.getParameter("name");
		String mobile = req.getParameter("mobile");
		
		ArrayList<Member> member = mem.list();
		model.addAttribute("loginid", member);
		mem.insertMember(id,pw,name,mobile);
		return "redirect:/login";
	}
	
}

Member.java

package com.human.springboot;

public class Member {
	private String loginid;
	private String passcode;
	private String name;
	private String mobile;
	
	public String getLoginid() {
		return loginid;
	}
	public void setLoginid(String loginid) {
		this.loginid = loginid;
	}
	public String getPasscode() {
		return passcode;
	}
	public void setPasscode(String passcode) {
		this.passcode = passcode;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	
	
}

MemDAO.java

package com.human.springboot;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface MemDAO {
	ArrayList<Member> list();
	void insertMember(String loginid, String password, String name, String mobile);
	int MemberCnt(String loginid, String passcode);
}

Mem.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
				 "http://mybatis.org/dtd//mybatis-3-mapper.dtd">

<mapper namespace="com.human.springboot.MemDAO">
<insert id="insertMember">
	insert into member values(#{param1},#{param2},#{param3},#{param4})
</insert>
<select id="list" resultType="com.human.springboot.Member">
	select loginid, passcode, name, mobile from member
</select>
<select id="MemberCnt" resultType="int">
	select count(*) from member where loginid=#{param1} and passcode=#{param2}
</select>
</mapper>

--

 

 

728x90