Java파일
ProductBean.java
package myPkg;
public class ProductBean {
private int id;
private String name;
private int price;
private String company;
private String regdate;
public ProductBean() {
}
public ProductBean(int id, String name, int price, String company, String regdate) {
super();
this.id = id;
this.name = name;
this.price = price;
this.company = company;
this.regdate = regdate;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getRegdate() {
return regdate;
}
public void setRegdate(String regdate) {
this.regdate = regdate;
}
}
ProductDao.java
package myPkg;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class ProductDao {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String id = "sqlid";
String pw = "sqlpw";
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
private static ProductDao pdao = new ProductDao();
public static ProductDao getInstance() {
return pdao;
}
private ProductDao() {
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, id, pw);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}//
public int insertProduct(ProductBean pb){
int cnt = -1;
String sql = "insert into products values(seqprd.nextval,?,?,?,sysdate)";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, pb.getName());
ps.setInt(2, pb.getPrice());
ps.setString(3, pb.getCompany());
cnt = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(ps != null)
ps.close();
}catch(SQLException e) {
}
}
return cnt;
}//insertProduct
public ArrayList<ProductBean> getAllProduct(){
ArrayList<ProductBean> lists = new ArrayList<ProductBean>();
String sql = "select * from products order by id";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
ProductBean pb = new ProductBean();
pb.setId(rs.getInt("id"));
pb.setName(rs.getString("name"));
pb.setCompany(rs.getString("company"));
pb.setPrice(rs.getInt("price"));
pb.setRegdate(String.valueOf(rs.getDate("regdate")));
lists.add(pb);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(rs != null)
rs.close();
if(ps != null)
ps.close();
}catch(SQLException e) {
}
}
return lists;
}//getAllProduct
public ProductBean getOneProduct(String id){
ProductBean pb = null;
String sql = "select * from products where id=?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
while(rs.next()) {
pb = new ProductBean();
pb.setId(rs.getInt("id"));
pb.setName(rs.getString("name"));
pb.setCompany(rs.getString("company"));
pb.setPrice(rs.getInt("price"));
pb.setRegdate(String.valueOf(rs.getDate("regdate")));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(rs != null)
rs.close();
if(ps != null)
ps.close();
}catch(SQLException e) {
}
}
return pb;
}//getOneProduct
public int updateProduct(ProductBean pb) {
int cnt = -1;
try {
String sql = "update products set name=?, price=?, company=? where id=?";
ps = conn.prepareStatement(sql);
ps.setString(1, pb.getName());
ps.setInt(2, pb.getPrice());
ps.setString(3, pb.getCompany());
ps.setInt(4, pb.getId());
cnt = ps.executeUpdate();
} catch(SQLException e) {
e.printStackTrace();
} finally {
try {
if(ps != null) {
ps.close();
}
} catch(SQLException e) {
e.printStackTrace();
}
}
System.out.println("update: " + cnt);
return cnt;
}//updateProduct
public int deleteProduct(int id) {
int cnt = -1;
try {
String sql = "delete from products where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
cnt = ps.executeUpdate();
} catch(SQLException e) {
e.printStackTrace();
} finally {
try {
if(ps != null) {
ps.close();
}
} catch(SQLException e) {
e.printStackTrace();
}
}
System.out.println("delete: " + cnt);
return cnt;
}//eleteProduct
}
ProductController.java(서블릿 파일)
package myPkg;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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("*.prd") // 주의!!!
public class ProductController extends HttpServlet {
private static final long serialVersionUID = 1L;
ServletContext application;
public ProductController() {
super();
}
//ServletContext application = new ServletContext() 프로젝트당 1개 생성
//ServletConfig config = new ServletConfig() : 서블릿당 1개 생성
public void init(ServletConfig config) throws ServletException {
System.out.println("init()");
application = config.getServletContext();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAction(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doAction(request,response);
}
private void doAction(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ProductDao pdao = ProductDao.getInstance();
System.out.println("pdao:" + pdao);
request.setCharacterEncoding("UTF-8");
String uri = request.getRequestURI();
String contextPath = request.getContextPath();
int length = contextPath.length();
String command = uri.substring(length);
System.out.println("method:"+request.getMethod());
String page;
// insert.prd요청은 insertForm.jsp에서 submit클릭했을 때 요청할 수 있고, (DB insert)
// list.jsp에서 새로고침했을 때 insert.prd요청 할수 있다.(DB insertX)
if(command.equals("/insert.prd")) {
System.out.println("insert.prd 요청");
System.out.println("flag:"+application.getAttribute("flag"));
if(application.getAttribute("flag").equals("false")) { // insertForm.jsp submit클릭해서 요청
String name = request.getParameter("name");
int price = Integer.parseInt(request.getParameter("price"));
String company = request.getParameter("company");
ProductBean pb = new ProductBean(0,name,price,company,null);
int cnt = pdao.insertProduct(pb);
application.setAttribute("flag","true");
page = "select.prd";
}else {
page = "select.prd";
}
}
else if (command.equals("/updateForm.prd")) {
System.out.println("updateForm.prd 요청");
String id = request.getParameter("id");
ProductBean pb = pdao.getOneProduct(id);
request.setAttribute("pb", pb);
page = "updateForm.jsp";
}
else if (command.equals("/update.prd")) {
System.out.println("update.prd 요청");
//입력3 + hidden1
int id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
int price = Integer.parseInt(request.getParameter("price"));
String company = request.getParameter("company");
ProductBean pb = new ProductBean(id,name,price,company,null);
int cnt = pdao.updateProduct(pb);
page = "/select.prd";
}
else if (command.equals("/delete.prd")) {
System.out.println("delete.prd 요청");
int id = Integer.parseInt(request.getParameter("id"));
int cnt = pdao.deleteProduct(id);
page = "/select.prd";
}
else { // select.prd
System.out.println("select.prd 요청");
ArrayList<ProductBean> lists = pdao.getAllProduct();
request.setAttribute("lists", lists);
page = "list.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
dispatcher.forward(request, response);
System.out.println("-----------");
}
}
insertForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
application.setAttribute("flag", "false");
// 한 프로젝트에서 변수를 설정해서 사용할거라면 그 프로젝트 안에서 flag가 false가 들어있는것을 모든 파일에서 사용
%>
<form action="insert.prd" method ="post">
<b>상품 정보 입력</b><br>
상품명 : <input type="text" name="name" value="새우깡"><br>
가격 : <input type="text" name="price" value="1000"><br>
제조사 :
<select name="company">
<option value="농심">농심</option>
<option value="해태">해태</option>
<option value="오리온">오리온</option>
<option value="롯데">롯데</option>
</select>
<br><br>
<input type="submit" value="전송">
</form>
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
list.jsp<br>
<!-- ArrayList<> lists = pdao.selectAll()
for(x : lists){
}
-->
<table border="1" width="500px">
<tr>
<th>아이디</th>
<th>이름</th>
<th>제조사</th>
<th>단가</th>
<th>입고일자</th>
<th>수정</th>
<th>삭제</th>
</tr>
<c:forEach var="p" items="${lists}">
<tr>
<td>${p.getId()}</td>
<td>${p.name }</td>
<td>${p['price']}</td>
<td>${p.getCompany()}</td>
<td>${p.getRegdate()}</td>
<td><a href="updateForm.prd?id=${p.getId()}">수정</a></td>
<td><a href="delete.prd?id=${p.getId()}">삭제</a></td>
</tr>
</c:forEach>
</table>
<br>
<a href="insertForm.jsp">삽입</a>
updateForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
updateForm.jsp<br>
<form action="update.prd" method ="post">
<input type="hidden" name="id" value="${pb.id}">
<b>상품 정보 수정</b><br>
상품명 : <input type="text" name="name" value=""><br>
가격 : <input type="text" name="price" value=""><br>
제조사 :
<select name="company">
<%
String[] company = {"농심", "해태", "오리온", "롯데"};
%>
<c:forEach var="com" items="<%=company %>">
<option value="${com}" <c:if test="${pb.company==com}"> selected</c:if>>${com}</option>
</c:forEach>
</select>
<br><br>
<input type="submit" value="전송">
</form>
'▶ Java&JSP' 카테고리의 다른 글
| 27. Servlet (0) | 2025.09.16 |
|---|---|
| 26.JSP Programming - 표현 언어 EL (Expression Language) (0) | 2025.09.16 |
| 25. JSP_게시판 (0) | 2025.09.16 |
| 24 JSP + JDBC 다중 삭제 (multiDelete) 구현 (0) | 2025.09.15 |
| 23. JSP + JDBC delete예제 정리3 _ Movie (0) | 2025.09.15 |











