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 |
댓글