각진 세상에 둥근 춤을 추자

[JSP] JAVA JSON user 관리 프로그램 - 리스트 본문

JSP

[JSP] JAVA JSON user 관리 프로그램 - 리스트

circle.j 2022. 10. 23. 14:33

 

 

Ajax를 이용해서 user 목록을 관리하는 프로그램을 구현해 본다.

 

 

데이터는 Sequel Pro에서 작성하여 불러온다.

 


1. Eclipse - user2 폴더 생성 - data 폴더, js폴더 생성

jsp파일과 js파일을 나누어 생성한다. 

 

 

2.  list.js (데이터 요청)

/**
 * 
 */

function list(){
 
	$(function(){
		
		$('section').empty();
		$('nav').empty().append("<h4>user2 목록</h4><a href='#' id='userAdd'>user2 등록</a>");
					
		$.get('./data/list.jsp', function(data){
			
			let table = "<table border='1'>";
			    table += "<tr>";
			    table += "<th>아이디</th>";
			    table += "<th>이름</th>";
			    table += "<th>휴대폰</th>";
			    table += "<th>나이</th>";
			    table += "<th>관리</th>";
			    table += "</tr>";
			    table += "</table>";
			
			$('section').append(table);
			
			for(let user of data){
				
				let tr = "<tr>";
					tr += "<td>"+user.uid+"</td>";
					tr += "<td>"+user.name+"</td>";
					tr += "<td>"+user.hp+"</td>";
					tr += "<td>"+user.age+"</td>";
					tr += "<td>";
					tr += "<a href='#'>수정</a>";
					tr += "<a href='#'>삭제</a>";
					tr += "</td>";
					tr += "</tr>";
				
				$('table').append(tr);
			}
		});
		
	});

}

 

 

3. list.jsp (데이터베이스 연결)

<%@page import="com.google.gson.Gson"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="bean.UserBean"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="config.DBCP"%>
<%@ page contentType="application/json;charset=UTF-8" pageEncoding="UTF-8"%>
<%
	List<UserBean> users = new ArrayList<>();
	try{
		Connection conn = DBCP.getConnection();
		Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery("select * from `user2`");
		
		while(rs.next()){
			UserBean ub = new UserBean();
			ub.setUid(rs.getString(1));
			ub.setName(rs.getString(2));
			ub.setHp(rs.getString(3));
			ub.setAge(rs.getInt(4));
			
			users.add(ub);
		}
		
		rs.close();
		stmt.close();
		conn.close();		
		
	}catch(Exception e){
		e.printStackTrace();
	}
	
	Gson gson = new Gson();
	String jsonData = gson.toJson(users);
	
	out.print(jsonData);
%>

 

이때 쓰인 UserBean 코드는 다음과 같다.

package bean;

public class UserBean {
	private String uid;
	private String name;
	private String hp;
	private int age;
	
	public String getUid() {
		return uid;
	}
	public void setUid(String uid) {
		this.uid = uid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getHp() {
		return hp;
	}
	public void setHp(String hp) {
		this.hp = hp;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

 

이때 쓰인 DBCP.java 코드는 다음과 같다.

package config;

import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class DBCP {
	
	private static DataSource ds = null;
	public static Connection getConnection() throws NamingException, SQLException {
		
		if(ds == null) {
			
			ds = (DataSource) new InitialContext().lookup("java:comp/env/dbcp_java2db");
			
		}
		return ds.getConnection();
	}
	
}

 

코드에 쓰인 Gson 라이브러리를 쓰기 위해서는 구글에 maven을 검색한다.

 

Gson 최신 버전 Jar Files을 다운로드한다.  

 

4. manager.jsp

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>user2 manager</title>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script>
		<script src="./js/list.js"></script>
		<script src="./js/register.js"></script>
		<script>
			$(document).ready(function(){
				
				// user2 목록 불러오기
				list();
				
				// user2 목록 화면
				$(document).on('click', '#userList', function(e){
					e.preventDefault();
					list();
				});

			});
		
		</script>
		
		
	</head>
	<body>
		<h3>user2 관리자</h3>
		
		<nav></nav>
		<section></section>
		
	</body>
</html>