본문 바로가기
  • 초보개발일지
KDT/servlet(jsp)

[JSP]회원가입 및 조회 기능이 있는 간단한 홈페이지 제작 2편 (계정조회 기능 편)

by wooksWork 2026. 1. 27.

음.. html, css, java, servlet, jsp, oracle까지 연동되는 홈페이지 제작 함의 2편임

1편이 궁금하면 해당 링크 클릭!

a href = "1편으로 이동"

 

기본 기능!

- 회원가입

-로그인 페이지(로그인 구현 x)

-회원정보 조회(id, pw, nick)

중 회원가입 페이지는 저번 글에서 작성완료!

오늘은 그 중 계정 조회 ㄱㄱㄱㅇㅇㅇ

 

목차

1. 로그인 페이지

2.계정 조회

 


1. 로그인 페이지

 

로그인 페이지의 경우 회원가입 페이지 재활용함 -> 기능 중심 목적으로 디자인 신경 안씀

절대 못해서 그런거 아님 ㅎㅎ

 

어쨋든 저번 코드가 알맞게 됐다면 저번 회원가입 페이지에서 정상적으로 회원가입이 완료되면

요 페이지로 이동 후 db에 계정 정보가 저장됨

 

로그인 기능은 추후에 시간되면 구현해봄

<%@ 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>

    <form action="/app/member/login" method="post">

        <input type="text" name="userId" placeholder="아이디">
        <br>
        <input type="password" name="userPw" placeholder="패스워드">
        <br>
        <input type="submit" value="로그인">
    </form>

</body>
</html>
package com.kh.app.member;

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;

@WebServlet("/member/join")
public class MemberJoinController extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.getRequestDispatcher("/WEB-INF/views/member/join.jsp").forward(req, resp);

	}//method
	
	
//	view
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			String id = req.getParameter("userId");
			String pw = req.getParameter("userPw");
			String nick = req.getParameter("userNick");
			
			MemberVo vo = new MemberVo();
			vo.setId(id);
			vo.setPw(pw);
			vo.setNick(nick);
			
			int result = new MemberService().join(vo);
			
			if(result == 1) {
				resp.sendRedirect("/app/member/login");
			}else {
				throw new Exception("[ERROR-M001] 회원가입 에러 ");
			}//if
			
		}catch(Exception e) {
			e.printStackTrace();
			req.setAttribute("errMsg", "회원 가입 중 에러");
			req.getRequestDispatcher("/WEB-INF/views/common/error.jsp").forward(req, resp);
		}
		
	}//method

}//class

 


2.계정 조회

기능 중심 연습이라 별 다른건 없고

 

list 페이지로 접근시 저장되어있는 계정 중 탈퇴하지 않은 계정 중

id / pw / nick만 조회!

 

코드는 사실 저번 편의 회원가입 기능과 별 차이 없고

sql 문이랑 update가 아닌 query문만 차이 난다고 보면 됨!

 

코드 바로 이동

- MemberListController

- MemberService

- MemberDao

- list.jsp

 


MemberListController

 

package com.kh.app.member;

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

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

@WebServlet("/member/list")
public class MemberListController extends HttpServlet{
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		try {
			ArrayList<MemberVo> voList = new MemberService().selectMemberList();
			req.setAttribute("voList", voList);
			req.getRequestDispatcher("/WEB-INF/views/member/list.jsp").forward(req, resp);
		}catch(Exception e) {
			e.printStackTrace();
			req.setAttribute("ergMsg", "회원 목록 조회 중 에러");
			req.getRequestDispatcher("/WEB-INF/views/common/error.js").forward(req, resp);
		}
		
	}//method
	
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}//method
	

}//class

MemberService

package com.kh.app.member;

import java.sql.Connection;
import java.util.ArrayList;

import com.kh.app.db.JDBCTemplate;

public class MemberService {
	
//	join
	public int join(MemberVo vo) throws Exception {
		Connection conn = JDBCTemplate.getConn();
		
		int result = new MemberDao().join(conn, vo);
		
		if(result == 1) {
			JDBCTemplate.commit(conn);
		}else {
			JDBCTemplate.rollback(conn);
		}
		
		JDBCTemplate.close(conn);
		
		return result;
	}//method

	
//	list
	public ArrayList<MemberVo> selectMemberList() throws Exception {
		Connection conn = JDBCTemplate.getConn();
		
		ArrayList<MemberVo> voList = new MemberDao().selectMemberList(conn);
		
		JDBCTemplate.close(conn);
		
		return voList;
	}



}//class

MemberDao

package com.kh.app.member;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.kh.app.db.JDBCTemplate;

public class MemberDao {

	public int join(Connection conn, MemberVo vo) throws Exception {
		
		String sql = """
				INSERT INTO MEMBER(
					NO
					, ID
					, PW
					, NICK
				) VALUES(
					SEQ_MEMBER.NEXTVAL
					, ?
					, ?
					, ?
				)
				""";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setString(1, vo.getId());
		pstmt.setString(2, vo.getPw());
		pstmt.setString(3, vo.getNick());
		
		int result = pstmt.executeUpdate();
		
		JDBCTemplate.close(pstmt);
		return result;
		
	}//method

	public ArrayList<MemberVo> selectMemberList(Connection conn) throws Exception {
		String sql = """
				SELECT * 
				FROM MEMBER
				WHERE QUIT_YN = 'N'
				ORDER BY NO DESC
				""";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		ResultSet rs = pstmt.executeQuery();
		
		ArrayList<MemberVo> voList = new ArrayList<MemberVo>();
		
		while(rs.next()) {
			String no = rs.getString("NO");
			String id = rs.getString("ID");
			String pw = rs.getString("PW");
			String nick = rs.getString("NICK");
			String createdAt = rs.getString("CREATED_AT");
			String updatedAt = rs.getString("UPDATED_AT");
			String quitYn = rs.getString("QUIT_YN");
			
			MemberVo vo = new MemberVo(no, id, pw, nick, createdAt, updatedAt, quitYn); 
			voList.add(vo);
		}//while
		
		
		return voList;
	}//method

}//class

list.jsp

<%@page import="java.util.ArrayList"%>
<%@page import="com.kh.app.member.MemberVo"%>
<%@ 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>Member List!</h1>


    <table>
        <thead></thead>
        <tbody>
        	<%
        	ArrayList<MemberVo> voList = (ArrayList<MemberVo>)request.getAttribute("voList");
        	        		for(MemberVo vo : voList){
        	        			out.write("<tr>");
        	        			out.write("<td>"+ vo.getId() +"</td>");
        	        			out.write("<td>"+ vo.getPw() +"</td>");
        	        			out.write("<td>"+ vo.getNick() +"</td>");
        	        			out.write("</tr>");
        	        		}
        	%>
        </tbody>
        <tfoot></tfoot>
    </table>
    
</body>
</html>