음.. html, css, java, servlet, jsp, oracle까지 연동되는 홈페이지 제작 함의 2편임
1편이 궁금하면 해당 링크 클릭!
기본 기능!
- 회원가입
-로그인 페이지(로그인 구현 x)
-회원정보 조회(id, pw, nick)
중 회원가입 페이지는 저번 글에서 작성완료!
오늘은 그 중 계정 조회 ㄱㄱㄱㅇㅇㅇ
목차
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
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>
'KDT > servlet(jsp)' 카테고리의 다른 글
| [JSP]회원가입 및 조회 기능이 있는 간단한 홈페이지 제작 3편 (로그인/로그아웃 편) (0) | 2026.01.28 |
|---|---|
| [JSP]회원가입 및 조회 기능이 있는 간단한 홈페이지 제작 1편 (회원가입 기능 편) (0) | 2026.01.26 |