Html lprod_prod
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="../css/public.css">
<style type="text/css">
img{
width: 80% ;
height: 80% ;
}
</style>
<script>
$(function() {
$('input[value=확인]').on('click', function() {
$.ajax({
url : '/jqpro/LprodList.do',
type : 'post',
success : function(res) {
code = "";
$.each(res, function(i,v) {
code += `<option value=${v.lprod_gu}>${v.lprod_nm}</option>`
})
$('#lprod').html(code);
$('#lprod').trigger('change');
},
error : function(xhr) {
alert("상태 : " + xhr.status);
},
dataType : 'json'
})
})
$('#lprod').on('change', function() {
guvalue = $(this).val();
console.log(guvalue)
$.ajax({
url : '/jqpro/ProdList.do',
type : 'post',
data : { "gu" : guvalue },
success : function(res) {
code = "";
if(res.sw == "ok"){
$.each(res.data, function(i,v) {
code += `<option value=${v.prod_id}>${v.prod_name}</option>`
})
}else{
code = `<option value=0>데이터엄써용오옹</option>`
$('#result1').empty();
vimg = "<img src='../images/spongebob.png' alt='spongebob.png'>";
$('#result1').html(vimg);
}
$('#prod').html(code);
$('#prod').trigger('change');
},
error : function(xhr) {
alert("상태 : " + xhr.status);
},
dataType : 'json'
})
})
$('#prod').on('change', function() {
idvalue = $(this).val();
if(idvalue != "0") {
$.ajax({
url : '/jqpro/ProdList.do',
type : 'get',
data : { "id" : idvalue },
success : function(res) {
code = "<table class='table table-dark table-striped'>";
code += "<tr><td>PROD_ID</td>";
code += "<td>" + res.id + "</td></tr>";
code += "<tr><td>PROD_NAME</td>";
code += "<td>" + res.name + "</td></tr>";
code += "<tr><td>PROD_LGU</td>";
code += "<td>" + res.lgu + "</td></tr>";
code += "<tr><td>PROD_COST</td>";
code += "<td>" + res.cost + "</td></tr>";
code += "<tr><td>PROD_BUYER</td>";
code += "<td>" + res.buyer + "</td></tr>";
code += "<tr><td>PROD_LINE</td>";
code += "<td>" + res.outline + "</td></tr>";
code += "<tr><td>PROD_PRICE</td>";
code += "<td>" + res.price + "</td></tr>";
code += "<tr><td>PROD_SALE</td>";
code += "<td>" + res.sale + "</td></tr>";
code += "</table>";
$('#result1').html(code);
},
error : function(xhr) {
alert("상태 : " + xhr.status);
},
dataType : 'json'
})
}else{
}
})
})
</script>
</head>
<body>
<div>
<h3>
</h3>
<input type="button" value="확인" >
<br><br>
<div class="form-group">
<label for="lprod">Lprod list:</label>
<select class="form-control" id="lprod">
</select>
<label for="prod">Prod list:</label>
<select class="form-control" id="prod">
</select>
</div>
<br>
<div id="result1"></div>
</div>
</body>
</html>
@WebServlet("/LprodList.do")
package kr.or.ddit.lprod.controller;
import java.io.IOException;
import java.io.PrintWriter;
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 com.google.gson.Gson;
import kr.or.ddit.lprod.service.ILprodService;
import kr.or.ddit.lprod.service.LprodServiceImpl;
import kr.or.ddit.lprod.vo.LprodVO;
/**
* Servlet implementation class LprodList
*/
@WebServlet("/LprodList.do")
public class LprodList extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LprodList() {
super();
// TODO Auto-generated constructor stub
}
// service만 있거나 doPost만 있거나!!!!!!!!! 둘다 있으면 안됨!!! 하나만 있어야함!
// 서비스일때 만 이거 실행했을때 자료 나옴
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//0. 클라이언트 요청시 전송되는 데이터를 받는다 - 없다.
//1. service객체를 얻는다
ILprodService service = LprodServiceImpl.getService();
// System.out.println("service =====================" + service );
//2. service메소드 호출 - 결과값 받는다.
List<LprodVO> list = service.lprodList();
// System.out.println("list==================" + list);
//------------여기에 만들기 가능!---------------------------------
response.setContentType("application/json; charset=utf-8");
PrintWriter out = response.getWriter();
Gson gson = new Gson();
String result = gson.toJson(list);
out.print(result);
//----------------------------------------------------------
//3. 결과값을 request객체에 저장
request.setAttribute("swsdfsf", list);
//4. view페이지로 이동 - 0930/lprod.jsp
RequestDispatcher disp = request.getRequestDispatcher("0930/lprod.jsp");
disp.forward(request, response);
}
}
lprod.jsp
<%@page import="com.google.gson.Gson"%>
<%@page import="kr.or.ddit.lprod.vo.LprodVO"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//서블릿에서 저장한 데이터 꺼내기
List<LprodVO> list = (List<LprodVO>)request.getAttribute("swsdfsf");
Gson gson = new Gson();
String result = gson.toJson(list);
out.print(result);
%>
@WebServlet("/ProdList.do")
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.prod.service.IProdService;
import kr.or.ddit.prod.service.ProdServiceImpl;
import kr.or.ddit.prod.vo.ProdVO;
@WebServlet("/ProdList.do")
public class ProdList extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//ProdDetail
// 0. 클라이언트 요청시 전송되는 값을 받는다 - idvalue(prod_id)
String pid = request.getParameter("id"); //????????????????
// 1. service 객체 얻기
IProdService service = ProdServiceImpl.getService();
// 2. service 메소드 호출 - 결과값 받기
ProdVO vo = service.prodIdByDetail(pid);
// 3. request에 결과값 저장하기
request.setAttribute("hahihuheho", vo);
// 4. view페이지로 이동 - 0930/prodDetail.jsp
request.getRequestDispatcher("0930/prodDetail.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ProdList
// 0. 클라이언트 요청시 전송되는 값을 받는다
// request.getParameter("gu");
String lgu = request.getParameter("gu");
// 1. service 객체 얻기
IProdService service = ProdServiceImpl.getService();
// 2. service 메소드 호출 - 결과값 받기
List<ProdVO> list = service.selectProdNames(lgu);
// 3. request에 결과값 저장하기
request.setAttribute("swsdfsf", list);
// 4. view페이지로 이동 - 0930/prodList.jsp
request.getRequestDispatcher("0930/prodList.jsp").forward(request, response);
}
}
prodDetail.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("hahihuheho"); // ProdList.java에 정한 이름으로!
%>
{
"id" : "<%= vo.getProd_id() %>",
"name" : "<%= vo.getProd_name() %>",
"lgu" : "<%= vo.getProd_lgu() %>",
"cost" : "<%= vo.getProd_cost() %>",
"buyer" : "<%= vo.getProd_buyer() %>",
"outline" : "<%= vo.getProd_outline() %>",
"price" : "<%= vo.getProd_price() %>",
"sale" : "<%= vo.getProd_sale() %>"
}
prodList.jsp
<%@page import="com.google.gson.JsonElement"%>
<%@page import="com.google.gson.JsonObject"%>
<%@page import="com.google.gson.Gson"%>
<%@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("swsdfsf"); // ProdList그이름!
JsonObject obj = new JsonObject();
//list값이 null일 수 도 있고 아닐수도 있다.
if(list != null && list.size() > 0){
//lprod_gu값과 prod_lgu의 갑과 같은 값이 있다.
obj.addProperty("sw", "ok"); //res.sw?????????? // "sw"키라서 뭐든 사용가능
// list를 넣기위해 Gson
Gson gson = new Gson();
JsonElement jse = gson.toJsonTree(list);
obj.add("data", jse); // data배열이야...? res.data[i]prod_id //"data" 키라서 뭐든 사용가능
// Gson gson = new Gson();
// String result = gson.toJson(list);
// out.print(result);
// 이렇게 하면 f12했을때 안되니까!!! 지웠어!
}else{
// 해당 상품이 없다.
obj.addProperty("sw", "no");
}
out.print(obj);
%>