본문 바로가기
강의

0228 AJAX , Category

by IT새내기IM 2023. 3. 2.

AJAX (Asynchronous Javascript and XMl)은 웹페이지의 이동 없이 

현재페이지에서 

필요한데이터만 로드 또는 전송하는 기술을말함
보통 데이터처리는 요청받은 순서대로 하지만 AJAX는 순차적으로 진행하지 않는다. 이런 방식을 비동기식 방식이라함

217~213
215

join2.jsp

<script>
function id_ok(id){
// 	var id = $("#id").val();

	$.ajax({
		url: "idok", //전송받을 페이지 경로 현재 상대경로임		type: "post", //데이터 읽어오는 방식
		type: "post",
		dataType: "text", //데이터 방식
		data: "id="+id,
		error:function(){ //실패일 경우
			alert("실패");
		},
		success:function(text){ //성공일 경우
			$("#id_result").html(text);
		}
	});
}

</script>

<form name="join" action="join2_insert" method="post">
<table width=400 border=1 align=center>
	<tr>
		<td>아이디</td>
		<td>
			<input id="m_id" name="m_id" value="">
			<span onclick="id_ok(join.m_id.value)">[중복확인]</span>
			<div id="id_result"></div>
			
<!-- 			버튼태그면 action이실행되니 인풋타입 버튼을씀 -->
		</td>
	</tr>

 

MemberIdOK.jJAVA

 

package controller;

import java.io.IOException;
import java.io.PrintWriter;

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.MemberDAO;
import model.Member;

@WebServlet("/member/idok")
public class MemberIdOK extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public MemberIdOK() {
        super();
    }
    
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String id = request.getParameter("id");
		System.out.println("=========id : "+id);
		
		MemberDAO dao = new MemberDAO();
		
		Member m = dao.oneMember(id);
		
		response.setContentType("text/html; charset=utf-8");
		PrintWriter out = response.getWriter();
	
		if(m.getId() != null && !m.getId().equals("")) { //존재하는 아이디
			out.print("<font color=red>존재하는 아이디입니다.</font>");
		}else {
			out.print("<font color=blue>사용 가능한 아이디입니다.</font>");
		}
		
		
	}

}

MemberDAO.java

public Member oneMember(String id) {
		d.getCon();
		
		Member m = new Member();
		try {
			String sql = "select* from member4 where id=?";
			pstmt = d.con.prepareStatement(sql);
			pstmt.setNString(1, id);;
			
			rs = pstmt.executeQuery();
			
			if(rs.next()) {
				m.setId(rs.getNString("id"));
				m.setPass(rs.getNString("pass"));
				m.setName(rs.getNString("name"));
				m.setAge(rs.getInt("age"));
				m.setGender(rs.getNString("gender"));
				m.setEmail(rs.getNString("email"));
				m.setLevel(rs.getNString("level"));
				
				rs.close();
				pstmt.close();
				d.con.close();
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
			
		return m;
//		전역객체 m에 set값들이 담기고 그것을 다시 m으로 return함 그러면 dao는 객체를 넒겨받ㅇ
224~234

CREATE TABLE category (

ca_id varchar(10) NOT NULL,

ca_name varchar(255) NOT NULL,

ca_use enum('Y','N') default 'Y',

PRIMARY KEY (ca_id)

) ;

Category Model

package model;

public class Category {
	
	private String ca_id;
	private String ca_name;
	private String ca_use;
	
	public String getCa_id() {
		return ca_id;
	}
	public void setCa_id(String ca_id) {
		this.ca_id = ca_id;
	}
	public String getCa_name() {
		return ca_name;
	}
	public void setCa_name(String ca_name) {
		this.ca_name = ca_name;
	}
	public String getCa_use() {
		return ca_use;
	}
	public void setCa_use(String ca_use) {
		this.ca_use = ca_use;
	}
	@Override
	public String toString() {
		return "Category [ca_id=" + ca_id + ", ca_name=" + ca_name + ", ca_use=" + ca_use + "]";
	}
	
	//변수명 칼럼명일치시키는게 좋다.
	
	
}

CategoryList - servlet

package admin.controller;

import java.io.IOException;
import java.util.ArrayList;

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.AdminCategoryDAO;
import model.Category;


@WebServlet("/admin/category/list")
public class CategoryList extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public CategoryList() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
		AdminCategoryDAO dao = new AdminCategoryDAO();
		ArrayList<Category> v = dao.listAll();
		
		request.setAttribute("v", v);
		RequestDispatcher dis = request.getRequestDispatcher("list.jsp");
		dis.forward(request, response);
	}

}

categry-  list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ include file="/admin/include/header.jsp" %>

<center>
<table width=600 border=1 align=center>
	<tr>
		<td>Total : ${count} </td>
		
	</tr>
	<tr>
		<td align=center class="td_title"><h3>분류관리</h3></td>
	</tr>
	<tr>
		<td align=right><a href="write">[분류추가]</a></td>
	</tr>
</table>
<table width=600 border=1>
	<tr>
		<td width=40>넘버링</td>
		<td width=140>코드</td>
		<td width=140>이름</td>
		<td width=140>사용여부</td>
		<td width=140>Mode</td>
	</tr>
</table>

</center>

<%@ include file="/admin/include/footer.jsp" %>

AdminCategoryDAO -DB

package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import model.Category;

public class AdminCategoryDAO {
	Statement stmt;
	PreparedStatement pstmt;
	ResultSet rs;
	
	DAO d = new DAO();
	
	//분류추가
	
	public void insertCategory(Category c) {
		d.getCon();
		
		try {
			String sql = "insert into category values(?,?,?)";
			pstmt = d.con.prepareStatement(sql);
			pstmt.setString(1, c.getCa_id());
			pstmt.setString(2, c.getCa_name());
			pstmt.setString(3, c.getCa_use());
		
			pstmt.executeUpdate();
			
			pstmt.close();
			d.con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public ArrayList<Category> listAll() {
		d.getCon();

		ArrayList<Category> v = new ArrayList<Category>();
		try {
			String sql = "select * from category";
			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);
			}
			
			rs.close();
			pstmt.close();
			d.con.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return v;
	}
}
244
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,
	it_name varchar(20) DEFAULT NULL, 
	it_price1 int DEFAULT NULL,
	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`)

);

item - Write.java servlet

package admin.item;

import java.io.IOException;
import java.util.Vector;

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/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();
		Vector<Category> v = dao.categoryList();
		request.setAttribute("v", v);
		RequestDispatcher dis = request.getRequestDispatcher("write.jsp");
		dis.forward(request, response);		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}
}

admin - item- wrte.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ include file="/admin/include/header.jsp" %>

<script>

function cate_ch(ca_id){
	$.ajax({
		url: "cate_big", //전송받을 페이지(서블릿) 경로
		type: "post", //데이터 읽어오는 방식
		dataType: "text", //데이터 방식 text는 사용자가 봤을때 출력되는 부분만 읽어오겠다는 뜻임.
		data: "ca_id="+ca_id, //데이터 전달
		success:function(text){ //성공일 경우
			$("#id_result").html(text);
		}
	});
}
</script>

<center>
<table width=600 border=1 align=center>
	<tr>
		<td align=center class="td_title"><h3>상품관리</h3></td>
	</tr>

</table>

<form method="post">
<table width=600 border=1>
	<tr>
		<td>카테고리</td>
		<td>
			대분류:	
			<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" %>

admin-item-CategoryBig.java - Servlet

package admin.item;

import java.io.IOException;
import java.util.ArrayList;

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 doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String ca_id = request.getParameter("ca_id");
		AdminItemDAO dao = new AdminItemDAO();
		ArrayList<Category> f = dao.categoryMiddle(ca_id);
		
		request.setAttribute("f", f);
		
		RequestDispatcher dis = request.getRequestDispatcher("cate_big.jsp");
		dis.forward(request, response);
	}

}

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" %>

<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="${f }">
		<option value="${list.ca_id }">${list.ca_name }</option>
	</c:forEach>
</select>

AdminItemDAO

package dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Vector;

import model.Category;

public class AdminItemDAO {
	
	Statement stmt;
	PreparedStatement pstmt;
	ResultSet rs;
	
	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);
			}
			
			rs.close();
			pstmt.close();
			d.con.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return v;
	}
	
	public ArrayList<Category> categoryMiddle(String ca_id) {
		d.getCon();
		
		ArrayList<Category> f = new ArrayList<Category>();		
		try {
			String sql = "select * from category where length(ca_id) = 4 and left(ca_id,2)=? and ca_use = 'Y'";
			pstmt = d.con.prepareStatement(sql);
			pstmt.setString(1, ca_id);
			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"));
				
				f.add(c);
			}
			
			rs.close();
			pstmt.close();
			d.con.close();
					
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return f;
	}
}

'강의' 카테고리의 다른 글

0306 빅데이터  (0) 2023.03.06
0229 mysql JOIN,GROUP by  (0) 2023.03.03
0227 - MVC패턴2 LinkedList , Vector , ArrayList  (0) 2023.02.27
0224 2nd project 연습, JQUERY  (0) 2023.02.24
0224 JSP2  (0) 2023.02.24

댓글