jsp 소스코드
DAO 소스코드 **쿼리문 like~만 잘 활용하면 검색기능을 가진 메소드 만들 수 있다 쿼리문에서 공백 유의!
공유하기 게시글 관리 구독하기IT공부 일지'JSP' 카테고리의 다른 글[JSP] model1, model 2(MVC패턴) 개발 (0)2020.05.11JSP 정리!! (0)2020.05.01< 쇼핑몰 웹 사이트 개발 프로젝트 9단계 : 구현 - 상품 나열 및 상품 검색 기능 > 이번 프로젝트는 간단한 쇼핑몰 웹 사이트를 개발하는 것입니다. 프로젝트를 시작하기 전에 필요한 사전 지식으로 Tomcat 서버 운용, HTML, Java, 데이터베이스, JSP과 통합 개발 환경(IDE) 등 프로그래밍 기초 지식에 대한 전반 적인 이해가 필요합니다. 사실 이 프로젝트에 필요한 HTML과 Oracle 데이터베이스 부분은 기초 지식이면 충분하기 때문에 이러한 프로젝트 솔루션을 최대한 빠르게 완주하고 싶으신 분은 Java부터 집중적으로 공부하시길 추천합니다. Oracle 11g 강좌 : http://blog.naver.com/ndb796/220470405738 JAVA 기초 강좌 : http://blog.naver.com/ndb796/220504477115 JAVA 심화 강좌 : http://blog.naver.com/ndb796/220595701047 프로그래밍 능력은 '내가 원하는 것을 직접 만들 수 있는 능력'입니다. 자신의 필요에 근거해서 프로젝트의 방향을 바꿀 수 있는 융통성을 가집시다. -------------------------------------------------------------------------------------------- 지난 시간까지 잘 따라오셨다면 프로젝트 폴더는 아래와 같을 것입니다. 고객 & 관리자 권한으로 로그인할 수 있는 기능을 제공했고 그와 동시에 회원가입한 뒤에 만들어진 계정으로 다시 로그인할 수 있게 되었습니다. 이제 모델(Model) 부분을 수정하도록 하겠습니다. Product.java 라는 자바 클래스를 생성하도록 하겠습니다. 코드 생성하는 방법은 저번 시간에 알려드렸습니다. public class Product { int productid; public int getProductid() { public Product(int productid, String producttype, String productname, String explanation, int price, int inventory) { public void setProductid(int productid) { public String getProducttype() { public void setProducttype(String producttype) { public String getProductname() { public void setProductname(String productname) { public String getExplanation() { public void setExplanation(String explanation) { public int getPrice() { public void setPrice(int price) { public int getInventory() { public void setInventory(int inventory) { } 이쯤에서 데이터베이스의 shoppingproduct 테이블에 예시 데이터를 몇 개 삽입하도록 하겠습니다. insert into shoppingproduct values(1, 'Laptop', 'Gigabyte P55K V5', 참고로 모든 데이터 입력이 끝난 후에 Commit;는 잊지 말아주세요. 이제 데이터에 접근할 수 있는 클래스인 DAO(Data Access Object)를 생성하겠습니다. import java.sql.Connection; import util.DBConnectionPool; public class ProductDAO { private DBConnectionPool connPool; ArrayListallproductRetrieve() throws SQLException { ArrayListproductRetrieve(String productname) throws SQLException { void productInsert(String producttype, String productname, String explanation, int price, int inventory) { void productUpdate(int productid, String producttype, String productname, String explanation, int price, int inventory) { 위 코드를 잘 보면 총 4개의 SQL 문장이 준비되어있습니다. 하나는 shoppingproduct에서 모든 데이터를 뽑아오는 SQL문이고, 다른 3개는 shoppingproduct에 데이터를 입력하고 수정하는데 쓰이는 SQL문입니다. allproductRetrieve() : 모든 데이터를 뽑아옵니다. productRetrieve() : 검색된 단어를 포함하는 데이터를 뽑아옵니다. productInsert() : 새로운 상품 데이터를 입력합니다. productUpdate() : 상품 데이터를 수정합니다. 이제 ProductService.java를 만들도록 하겠습니다. import java.util.ArrayList; public class ProductService { private ProductDAO productDataAccess; public ProductService() { public ArrayListgetAllProduct() { public ArrayListgetProduct(String productname) { public void insertProduct(String producttype, String productname, String explanation, int price, int inventory) { public void updateProduct(int productid, String producttype, String productname, String explanation, int price, int inventory) { 이제 먼저 상품 나열 기능부터 제공하도록 하겠습니다. 지난 시간에 작성했던 LoginServlet.java파일을 다음과 같이 바꿔줍니다. import domain.Product; public final class LoginServlet extends HttpServlet { public void doPost(HttpServletRequest request, public void processRequest(HttpServletRequest request, String usertype = request.getParameter("usertype"); if (usertype.equals("unknown")) { User user = null; UserService = new UserService(); if (user == null) { if (products == null) { if (!status.isSuccessful()) { request.setAttribute("user", user); } catch (Exception e) { if (usertype.equals("A")) { if (usertype.equals("C")) { 보시면 아시겠지만 모든 상품의 데이터를 뽑아와서 세션 객체로서 저장했습니다. 이제 기존의 login.jsp 파일의 코드를 수정하도록 하겠습니다. <%@page import="java.util.ArrayList"%>
Product List <% ArrayListproducts = (ArrayList) request.getAttribute("products");%> <% for (int i = 0; i < products.size(); i++) { Product product = products.get(i); %> <% } %> Product IDProduct TypeProduct NameExplanationPriceInventory<%=product.getProductid()%><%=product.getProducttype()%><%=product.getProductname()%><%=product.getExplanation()%>$<%=product.getPrice()%><%=product.getInventory()%> 이제 상품 나열이 잘 되는지 확인하기 위해서 프로젝트를 실행해보도록 하겠습니다. 보는 것과 같이 잘 데이터베이스와 연동되서 상품의 목록을 나열했습니다. 이제 login.jsp에 다음의 Form을 추가해줍니다.
Search the product you want : 이제 컨트롤러(Controller)에 SearchProductServlet.java를 만들겠습니다. < SearchProductServlet.java > import domain.Product; public final class SearchProductServlet extends HttpServlet { public void doPost(HttpServletRequest request, public void processRequest(HttpServletRequest request, String ProductName = request.getParameter("productname"); ArrayListproducts = null; request.setAttribute("products", products); 또한 web.xml에서 다음의 내용을 추가해줍니다. |