1. DB table 만들기(상품등록)
CREATE TABLE item (
it_uid int NOT NULL AUTO_INCREMENT,
category1 varchar(10) DEFAULT NULL,
category2 varchar(10) DEFAULT NULL,
mbup_id varchar(20) DEFAULT NULL, // 중간업체 id
it_name varchar(20) DEFAULT NULL, // 업체명
it_price1 int DEFAULT NULL, // default 가격
it_price2 int DEFAULT NULL, // 할인가격
it_point int DEFAULT NULL,
it_qty int DEFAULT NULL,
it_option varchar(255) DEFAULT NULL,
it_use enum('Y','N') DEFAULT 'Y', // 사용자에게 보여줄지
it_date varchar(20) DEFAULT NULL, // 등록날짜
it_type1 enum('Y','N') DEFAULT 'N', //신상상품
it_type2 enum('Y','N') DEFAULT 'N', //베스트상품
it_type3 enum('Y','N') DEFAULT 'N', // 추천상품
it_type4 enum('Y','N') DEFAULT 'N', //할인상품
it_type5 enum('Y','N') DEFAULT 'N',
file1 varchar(20) DEFAULT '',
file2 varchar(20) DEFAULT '',
file3 varchar(20) DEFAULT '',
file4 varchar(20) DEFAULT '',
file5 varchar(20) DEFAULT '',
PRIMARY KEY (`it_uid`)
);
일반사용자 mypage
중간업체 mypage --> 어느정도 관리자 페이지만큼(업체 관련 상품만 볼수있게 --> 상품 등록, )
관리자 admin --> 모든 상품 관련된 정보 다 볼수 있게
1. admin > header.jsp
<a href="/admin/item/list">[상품관리]</a>
2. model > Item --> getter, setter, toString 하기
3.
item controller > List.java
package admin.item;
import java.io.IOException;
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;
@WebServlet("/admin/item/list")
public class List extends HttpServlet {
private static final long serialVersionUID = 1L;
public List() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dis = request.getRequestDispatcher("list.jsp");
dis.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
4. item controller > Write.java
package admin.item;
import java.io.IOException;
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 dao.AdminItemDAO;
@WebServlet("/admin/item/write")
public class Write extends HttpServlet {
private static final long serialVersionUID = 1L;
public Write() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
AdminItemDAO dao = new AdminItemDAO();
dao.categoryList(); // 카테고리 대분류
RequestDispatcher dis = request.getRequestDispatcher("write.jsp");
dis.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
5. item > wrtie.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/admin/include/header.jsp" %>
<center>
<table width=600 border=0 align=center>
<tr>
<td colspan=2 align=center class="td_title"><b>상품관리</b></td>
</tr>
</table>
<form method="post"> <!-- action 없다면 같은 페이지 write.java로 post 보내는거임 -->
<table width=600 border=1 align=center>
<tr>
<td>카테고리</td>
<td>
<!-- onchange - ajax를 통해 CategoryBig.java로 post 로 보냄 -->
<select name="category1" onchange="cate_ch(this.value)">
<option value="">=대분류 선택=</option>
<c:forEach var="list" items="${v}">
<option value="${list.ca_id}">${list.ca_name}</option>
</c:forEach>
</select>
<span id="id_result">
<select name="category2">
<option value="">=중분류 선택=</option>
</select>
</span>
</td>
</tr>
<tr>
<td>분류명</td>
<td><input id="ca_name" name="ca_name"></td>
</tr>
<tr>
<td>사용여부</td>
<td>
<input type="radio" id="ca_use" name="ca_use" value="Y" checked>Y
<input type="radio" id="ca_use" name="ca_use" value="N">N
</td>
</tr>
<tr>
<td></td>
<td><button>추가</button></td>
</tr>
</table>
</form>
</center>
<%@ include file="/admin/include/footer.jsp" %>ml>
6. AdminItemDAO.java
package dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
import model.Category;
public class AdminItemDAO {
// 사용할 객체를 미리 선언
Statement stmt;
PreparedStatement pstmt;
ResultSet rs;
// DAO 실행하려면 연결해야함(전역객체)
DAO d = new DAO();
//카테고리 대분류
public Vector<Category> categoryList() {
d.getCon();
Vector<Category> v = new Vector<Category>();
try {
String sql ="select * from category where length(ca_id)=2 and ca_use='Y' ";
pstmt = d.con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
Category c = new Category();
c.setCa_id(rs.getString("ca_id"));
c.setCa_name(rs.getString("ca_name"));
c.setCa_use(rs.getString("ca_use"));
v.add(c);
}
} catch (Exception e) {
e.printStackTrace();
}
return v;
}
}
7. Write.java
Vector<Category> v = dao.categoryList(); // 카테고리 대분류
request.setAttribute("v", v);
8. write.jsp --> 상단에 추가
<script>
function cate_ch(ca_id) {
$.ajax({
url: "cate_big", //전송받을 페이지 경로
type: "post", //데이터 읽어오는 방식
dataType: "text", //데이터 방식
data: "ca_id="+ca_id, //데이터 전달
error:function(){ //실패일 경우
alert("실패");
},
success:function(text){ //성공일 경우
$("#id_result").html(text);
}
});
}
</script>
9. item > CategoryBig.java --> ajax에서 post 보냄
package admin.item;
import java.io.IOException;
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;
@WebServlet("/admin/item/cate_big")
public class CategoryBig extends HttpServlet {
private static final long serialVersionUID = 1L;
public CategoryBig() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ca_id = request.getParameter("ca_id");
RequestDispatcher dis = request.getRequestDispatcher("cate_big.jsp");
dis.forward(request, response);
}
}
10. AdminItemDAO.java
// 카테고리 중분류
public LinkedList<Category> categoryMiddle(String ca_id) {
d.getCon();
LinkedList<Category> v = new LinkedList<Category>();
try {
String sql ="select * from category where length(ca_id)=4 and left(ca_id,2)=? and ca_use='Y' "; // ca_id 4자리 중에 왼쪽 두자리가 부모(left)랑 일치한다면
pstmt = d.con.prepareStatement(sql);
pstmt.setString(1, ca_id);
rs = pstmt.executeQuery();
while(rs.next()) {
Category c = new Category();
c.setCa_id(rs.getNString("ca_id"));
c.setCa_name(rs.getNString("ca_name"));
c.setCa_use(rs.getNString("ca_use"));
v.add(c);
}
} catch (Exception e) {
e.printStackTrace();
}
return v;
}
}
11. CategoryBig.java
package admin.item;
import java.io.IOException;
import java.util.LinkedList;
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 dao.AdminItemDAO;
import model.Category;
@WebServlet("/admin/item/cate_big")
public class CategoryBig extends HttpServlet {
private static final long serialVersionUID = 1L;
public CategoryBig() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ca_id = request.getParameter("ca_id");
AdminItemDAO dao = new AdminItemDAO();
LinkedList<Category> v = dao.categoryMiddle(ca_id); // 중분류 값 가져오기
request.setAttribute("v", v);
RequestDispatcher dis = request.getRequestDispatcher("cate_big.jsp");
dis.forward(request, response);
}
}
12. cate_big.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- jquery 사용 -->
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>
<select name="category2">
<option value="">=중분류 선택=</option>
<c:forEach var="list" items="${v}">
<option value="${list.ca_id}">${list.ca_name}</option>
</c:forEach>
</select>
'JAVA > model2' 카테고리의 다른 글
230303_web2(9)-메일, 채팅 (0) | 2023.03.03 |
---|---|
230303 (0) | 2023.03.03 |
230302_web2(7)-분류관리 (0) | 2023.03.02 |
230302_web2(6) - 아이디중복확인 (0) | 2023.03.02 |
230302_JQuery (0) | 2023.03.02 |