ProdServlet
package kr.or.ddit.prod.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.RequestDispatcher;
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 kr.or.ddit.buyer.service.BuyerServiceImpl;
import kr.or.ddit.buyer.service.IBuyerService;
import kr.or.ddit.buyer.vo.BuyerVO;
import kr.or.ddit.prod.service.IProdService;
import kr.or.ddit.prod.service.ProdServiceImpl;
import kr.or.ddit.prod.vo.ProdVO;
@WebServlet("/ProdServlet")
public class ProdServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ProdServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//0. 클라이언트 요청시 전송되는 데이터를 받는다
String prodlgu = request.getParameter("lgu");
//1. service 객체를 얻는다
IProdService service =
ProdServiceImpl.getProdService();
//2. service 메소드 호출 - 결과 : List<MemberVO>
List<ProdVO> list = service.selectAll(prodlgu);
//3.수행결과를 request에 저장
request.setAttribute("nana", list);
//4. jsp.viewpage에 위임하여 출력한다 - jsonobject 배열로 응답 데이터를 생성한다
//jsp로 forward
RequestDispatcher disp = request.getRequestDispatcher("1203/prod.jsp");
disp.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//0. 클라이언트 요청시 전송되는 데이터를 받는다
String prodnm = request.getParameter("id");
//1. service 객체를 얻는다
IProdService service =
ProdServiceImpl.getProdService();
//2. service 메소드 호출 - 결과 : List<MemberVO>
ProdVO vo = service.selectProd(prodnm);
//3.수행결과를 request에 저장
request.setAttribute("iaiaia", vo);
//4. jsp.viewpage에 위임하여 출력한다 - jsonobject 배열로 응답 데이터를 생성한다
//jsp로 forward
RequestDispatcher disp = request.getRequestDispatcher("1203/prodtable.jsp");
disp.forward(request, response);
}
}
IProdDao
package kr.or.ddit.prod.dao;
import java.util.List;
import kr.or.ddit.prod.vo.ProdVO;
public interface IProdDao {
//메소드 선언
//public 리턴결과형 메소드이름(자료형 변수명)
public List<ProdVO> selectAll(String prodlgu);
public ProdVO selectProd(String prodnm);
}
ProdDaoImpl
package kr.or.ddit.prod.dao;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
import kr.or.ddit.ibatis.config.SqlMapClientFactory;
import kr.or.ddit.prod.dao.ProdDaoImpl;
import kr.or.ddit.prod.vo.ProdVO;
public class ProdDaoImpl implements IProdDao{
private SqlMapClient smc;
private static ProdDaoImpl dao;
private ProdDaoImpl() {
smc = SqlMapClientFactory.getSqlMapClient();
}
public static ProdDaoImpl getprodDao() {
if(dao==null) dao = new ProdDaoImpl();
return dao;
}
public List<ProdVO> selectAll(String prodlgu){
List<ProdVO> list = null;
try {
list = smc.queryForList("prod.selectAll", prodlgu);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
@Override
public ProdVO selectProd(String prodnm) {
ProdVO vo = null;
try {
vo = (ProdVO)smc.queryForObject("prod.selectProd", prodnm);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return vo;
}
}
IProdService
package kr.or.ddit.prod.service;
import java.util.List;
import kr.or.ddit.prod.vo.ProdVO;
public interface IProdService {
//메소드 선언
public List<ProdVO> selectAll(String prodlgu);
public ProdVO selectProd(String prodnm);
}
ProdServiceImpl
package kr.or.ddit.prod.service;
import java.util.List;
import kr.or.ddit.prod.dao.IProdDao;
import kr.or.ddit.prod.dao.ProdDaoImpl;
import kr.or.ddit.prod.vo.ProdVO;
public class ProdServiceImpl implements IProdService{
private IProdDao dao;
private static IProdService service;
private ProdServiceImpl() {
dao = ProdDaoImpl.getprodDao();
}
public static IProdService getProdService() {
if(service==null)service = new ProdServiceImpl();
return service;
}
public List<ProdVO> selectAll(String prodlgu){
List<ProdVO> list = null;
list = dao.selectAll(prodlgu);
return list;
}
@Override
public ProdVO selectProd(String prodnm) {
return dao.selectProd(prodnm);
}
}
ProdVO
package kr.or.ddit.prod.vo;
public class ProdVO {
private String PROD_ID;
private String PROD_NAME;
private String PROD_LGU;
private String PROD_BUYER;
private String PROD_COST;
private String PROD_PRICE;
private String PROD_SALE;
private String PROD_OUTLINE;
private String PROD_DETAIL;
public String getPROD_ID() {
return PROD_ID;
}
public void setPROD_ID(String pROD_ID) {
PROD_ID = pROD_ID;
}
public String getPROD_NAME() {
return PROD_NAME;
}
public void setPROD_NAME(String pROD_NAME) {
PROD_NAME = pROD_NAME;
}
public String getPROD_LGU() {
return PROD_LGU;
}
public void setPROD_LGU(String pROD_LGU) {
PROD_LGU = pROD_LGU;
}
public String getPROD_BUYER() {
return PROD_BUYER;
}
public void setPROD_BUYER(String pROD_BUYER) {
PROD_BUYER = pROD_BUYER;
}
public String getPROD_COST() {
return PROD_COST;
}
public void setPROD_COST(String pROD_COST) {
PROD_COST = pROD_COST;
}
public String getPROD_PRICE() {
return PROD_PRICE;
}
public void setPROD_PRICE(String pROD_PRICE) {
PROD_PRICE = pROD_PRICE;
}
public String getPROD_SALE() {
return PROD_SALE;
}
public void setPROD_SALE(String pROD_SALE) {
PROD_SALE = pROD_SALE;
}
public String getPROD_OUTLINE() {
return PROD_OUTLINE;
}
public void setPROD_OUTLINE(String pROD_OUTLINE) {
PROD_OUTLINE = pROD_OUTLINE;
}
public String getPROD_DETAIL() {
return PROD_DETAIL;
}
public void setPROD_DETAIL(String pROD_DETAIL) {
PROD_DETAIL = pROD_DETAIL;
}
}
lprod_prod.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel = "stylesheet" href = "../css/mystyle.css" type="text/css">
<script src="../js/jquery-3.6.0.min.js"></script>
<script>
$(function(){
$('button').on('click', function(){
$.ajax({
url : '/jqpro/1130/lprod.jsp',
type : 'get',
success : function(res){
str = "";
$.each(res, function(i,v){
str += "<option value='" +v.gu+ "'>" +v.nm+ "</option>";
})
$('#lprod').append(str);
},
error : function(xhr){
},
dataType : 'json'
})
})
$('#lprod').on('change', function(){
lgu = $('#lprod option:selected').val();
// $('option:selected', this)
$.ajax({
url : '/jqpro/ProdServlet',
type : 'get',
data : {"lgu" : lgu},
dataType : 'json'
success : function(res){
str = "";
$.each(res, function(i,v){
str += "<option value='" +v.id+ "'>" +v.nm+ "</option>";
})
$('#prod').html(str);
},
error : function(xhr){
alert("오류 : " + xhr.status)
},
})
})
$('#prod').on('change', function(){
id = $('#prod option:selected').val();
// $('option:selected', this)
$.ajax({
url : '/jqpro/ProdServlet',
type : 'post',
data : {"id" : id},
success : function(res){
str = "";
$.each(res, function(i,v){
str = "<table border=1 >";
str += "<tr><td>PROD_ID</td>";
str += "<td>" + res.id + "</td></tr>";
str += "<tr><td>PROD_NAME</td>";
str += "<td>" + res.name + "</td></tr>";
str += "<tr><td>PROD_LGU</td>";
str += "<td>" + res.lgu + "</td></tr>";
str += "<tr><td>PROD_BUYER</td>";
str += "<td>" + res.buyer + "</td></tr>";
str += "<tr><td>PROD_COST</td>";
str += "<td>" + res.cost + "</td></tr>";
str += "<tr><td>PROD_PRICE</td>";
str += "<td>" + res.price + "</td></tr>";
str += "<tr><td>PROD_SALE</td>";
str += "<td>" + res.sale + "</td></tr>";
str += "<tr><td>PROD_OUTLINE</td>";
str += "<td>" + res.outline + "</td></tr>";
str += "<tr><td>PROD_DETAIL</td>";
str += "<td>" + res.detail + "</td></tr>";
str += "</table>";
$('#result1').html(str);
})
},
error : function(xhr){
alert("오류 : " + xhr.status)
},
dataType : 'json'
})
})
})
</script>
</head>
<body>
<div class = "box">
<br>
<button type = "button">확인</button>
<select id="lprod"></select>
<select id="prod"></select>
<div id = "result1"></div>
</div>
</body>
</html>
prod.jsp
<%@page import="kr.or.ddit.prod.vo.ProdVO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
List<ProdVO> list = (List<ProdVO>)request.getAttribute("nana");
%>
[
<%
for(int i=0; i<list.size(); i++){
ProdVO vo = list.get(i);
if(i>0) out.print(",");
%>
{
"nm" : "<%= vo.getPROD_NAME() %>",
"id" : "<%= vo.getPROD_ID() %>"
}
<%
}
%>
]
prodtable.jsp
<%@page import="kr.or.ddit.prod.vo.ProdVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
ProdVO vo = (ProdVO)request.getAttribute("iaiaia");
%>
{
"id" : "<%= vo.getPROD_ID() %>",
"name" : "<%= vo.getPROD_NAME() %>",
"lgu" : "<%= vo.getPROD_LGU() %>",
"buyer" : "<%= vo.getPROD_BUYER() %>",
"cost" : "<%= vo.getPROD_COST() %>",
"price" : "<%= vo.getPROD_PRICE() %>",
"sale" : "<%= vo.getPROD_SALE() %>",
"outline": "<%= vo.getPROD_OUTLINE() %>",
"detail" : "<%= vo.getPROD_DETAIL() %>"
}