본문 바로가기

Java 웹 개발

21.10.25 - 웹 개발 입문 51일차

홈페이지 구현하기(6)

 

관리자 포인트 상품 기능(관리/삭제/수정/추가) 만들기

- 포인트 상품 관리 (list.jsp) 만들기

<%@page import="java.text.DecimalFormat"%>
<%@page import="java.text.Format"%>
<%@page import="home.beans.CoinDto"%>
<%@page import="java.util.List"%>
<%@page import="home.beans.CoinDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- 입력 : 없음 --%>    

<%-- 처리 : List<CoinDto> --%>
<%
	CoinDao coinDao = new CoinDao();
	List<CoinDto> list = coinDao.list();
%>

<%-- 출력 --%>
<jsp:include page="/template/header.jsp"></jsp:include>

<h2>포인트 상품 관리</h2>

<table border="1" width="500">
	<thead>
			<tr>
			<td colspan="4" align="right">
				<a href="add.jsp">상품등록</a>
			</td>
		</tr>
		<tr>
			<th>상품번호</th>
			<th>상품이름</th>
			<th>상품금액</th>
			<th>관리메뉴</th>
		</tr>
	</thead>
	<tbody align="center">
		<%Format f = new DecimalFormat("#,##0"); %>
		<%for(CoinDto coinDto : list){ %>
		<tr>
			<td><%=coinDto.getCoinNo()%></td>
			<td><%=coinDto.getCoinName()%></td>
			<td align="right"><%=f.format(coinDto.getCoinAmount())%></td>
			<td>
				<a href="./edit.jsp?coinNo=<%=coinDto.getCoinNo()%>">수정</a>
				<a href="./delete.txt?coinNo=<%=coinDto.getCoinNo()%>">삭제</a>
			</td>
		</tr>
		<%} %>
	</tbody>
		<tfoot>
		<tr>
			<td colspan="4" align="right">
				<a href="add.jsp">상품등록</a>
			</td>
		</tr>
	</tfoot>
</table>

<jsp:include page="/template/footer.jsp"></jsp:include>

 

 

- CoinDao 삭제(delete) 기능 추가

public boolean delete(int coinNo) throws Exception{
	Connection con = JdbcUtils.connect(USERNAME, PASSWORD);

	String sql = "delete coin where coin_no = ?";
	PreparedStatement ps = con.prepareStatement(sql);
	ps.setInt(1, coinNo);
	int result = ps.executeUpdate();

	con.close();

	return result > 0;
}

 

- 포인트 삭제 처리 (CoinDeleteServlet.java) 만들기

package home.servlet.point;

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 home.beans.CoinDao;

@WebServlet(urlPatterns = "/admin/point/delete.txt")
public class CoinDeleteServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : coinNo
			int coinNo = Integer.parseInt(req.getParameter("coinNo"));			

			//처리 : 삭제
			CoinDao coinDao = new CoinDao();
			boolean success = coinDao.delete(coinNo);

			//출력 : 목록 페이지로 redirect
			resp.sendRedirect("list.jsp");
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.sendError(500);
		}
	}
}

 

 

 

- CoinDao 수정(edit) 기능 추가

public boolean edit(CoinDto coinDto) throws Exception {
	Connection con = JdbcUtils.connect(USERNAME, PASSWORD);

	String sql = "update coin set coin_name = ?, coin_amount = ? where coin_no = ?";
	PreparedStatement ps = con.prepareStatement(sql);
	ps.setString(1, coinDto.getCoinName());
	ps.setInt(2, coinDto.getCoinAmount());
	ps.setInt(3, coinDto.getCoinNo());
	int result = ps.executeUpdate();

	con.close();

	return result > 0;
}

 

- 포인트 수정 처리 (CoinEditServlet.java) 만들기

package home.servlet.point;

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 home.beans.CoinDao;
import home.beans.CoinDto;

@WebServlet(urlPatterns = "/admin/point/edit.txt")
public class CoinEditServlet extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : CoinDto(coinNo + coinName + coinAmount)
			CoinDto coinDto = new CoinDto();
			coinDto.setCoinNo(Integer.parseInt(req.getParameter("coinNo")));
			coinDto.setCoinName(req.getParameter("coinName"));
			coinDto.setCoinAmount(Integer.parseInt(req.getParameter("coinAmount")));

			//처리 : 변경(U)
			CoinDao coinDao = new CoinDao();
			boolean success = coinDao.edit(coinDto);

			//출력 : 목록 페이지로 redirect
			resp.sendRedirect("list.jsp");
			//resp.sendRedirect(req.getContextPath()+"/admin/point/list.jsp");
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.sendError(500);
		}
	}
}

 

 

- CoinDao 추가(add) 기능 추가

public void add(CoinDto coinDto) throws Exception {
	Connection con = JdbcUtils.connect(USERNAME, PASSWORD);

	String sql = "insert into coin(coin_no, coin_name, coin_amount) "
							+ "values(coin_seq.nextval, ?, ?)";
	PreparedStatement ps = con.prepareStatement(sql);
	ps.setString(1, coinDto.getCoinName());
	ps.setInt(2, coinDto.getCoinAmount());
	ps.execute();

	con.close();
}

 

 

- 포인트 상품 추가 add.jsp 만들기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- 입력 --%>

<%-- 처리 --%>

<%-- 출력 --%>
<jsp:include page="/template/header.jsp"></jsp:include>

<h2>포인트 상품 등록</h2>

<form action="add.kh" method="post">
	상품이름 : <input type="text" name="coinName" required>
	<br><br>
	상품금액 : <input type="number" name="coinAmount" required>
	<br><br>
	<input type="submit" value="등록">
</form>

<jsp:include page="/template/footer.jsp"></jsp:include>

 

 

 

- 포인트 추가 처리 (CoinAddServlet.java) 만들기

package home.servlet.point;

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 home.beans.CoinDao;
import home.beans.CoinDto;

@WebServlet(urlPatterns = "/admin/point/edit.txt")
public class CoinEditServlet extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : CoinDto(coinNo + coinName + coinAmount)
			CoinDto coinDto = new CoinDto();
			coinDto.setCoinNo(Integer.parseInt(req.getParameter("coinNo")));
			coinDto.setCoinName(req.getParameter("coinName"));
			coinDto.setCoinAmount(Integer.parseInt(req.getParameter("coinAmount")));

			//처리 : 변경(U)
			CoinDao coinDao = new CoinDao();
			boolean success = coinDao.edit(coinDto);

			//출력 : 목록 페이지로 redirect
			resp.sendRedirect("list.jsp");
			//resp.sendRedirect(req.getContextPath()+"/admin/point/list.jsp");
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.sendError(500);
		}
	}
}