반응형

이전에 사용한 프로젝트를 이용하여

JSP 화면에 오라클 DB의 값을 출력하는 예제를 구현해 보겠습니다.

 

프로젝트 구성

[Dev/WEB, JSP] - 이클립스 톰캣 연동하여 JSP 페이지 띄우기

 

이클립스 톰캣 연동하여 JSP 페이지 띄우기

웹 구축을 배우기 앞서 기본이 세팅이 되어야 합니다. 이클립스와 톰캣을 연동하여 기본 JSP 페이지를 띄우는 방법을 알아보겠습니다. 목차 1. 톰캣 다운로드 2. 톰캣 경로 지정 3. 이클립스에 서

wecanit.tistory.com

프로젝트 구성 필요하시면 위의 글을 참조하시기 바랍니다.

 

사용한 프로젝트의 구조는 위와 같습니다.

 

데이터 Flow 

  1. 사용자가 특정 URL로 접근
  2. Web.xml에 의해 MainDataController 접근
  3. MainDataController  -> DataGetDao로 이동
    오라클 DB에 접속하여 데이터를 SELECT.
  4. SELECT 된 데이터는 DataVO 형태로 저장
  5. 최종 MainDataController는 select_view.jsp를 호출하면서
    결과 파라미터를 같이 전달.

 

소스 코드

 

DataGetDao.java

package com.company;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class DataGetDao {
	public List<DataVo> getDataByNum(int deptno) throws Exception { 
		
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		List<DataVo> vo_list = new ArrayList<>();	   
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		String query_sql =  "select empno as personal_num  						";
			   query_sql += "     , ename as personal_name						";		
			   query_sql += "     , sal as personal_sal							";	
			   query_sql += "  from emp									";	
			   query_sql += " where deptno = ?								";	
		
		try {
			
			Class.forName(driver); 
            //오라클 DB Driver(oracle.jdbc.driver.OracleDriver)를 메모리에 적재
            
			conn = DriverManager.getConnection(url,"myid","xptmxm1234"); 
            //오라클 DB에 접속하기 위한 접속 경로와 ID, PW
            
			pstmt = conn.prepareStatement(query_sql); 
			//쿼리 실행을 위한 prepareStatement생성
            
			pstmt.setInt(1, deptno);
            //쿼리내 ?에 할당하는 변수
            
			rs=pstmt.executeQuery(); 
			//쿼리를 실행하여 결과를 rs에 리턴
            
			while(rs.next()){ 
            //결과 값을 while문을 이용하여 1개의 ROW형태로 추출하여 VO객채에 저장
            
				DataVo vo = new DataVo(); 
				
				vo.setpersonal_num(rs.getString(1));
				vo.setpersonal_name(rs.getString(2));
				vo.setpersonal_sal(rs.getString(3));
                
				vo_list.add(vo); //저장된 VO객체 값을 리스트에 저장
			} 
		} catch (Exception e) {
			
			e.printStackTrace();
			
		}finally {
			
			if(rs != null)rs.close(); 
			if(pstmt != null)pstmt.close(); 
			if(conn != null)conn.close();
			
		}
		return vo_list;
	}
}

 

DataVo.java

package com.company;

public class DataVo {

	private String personal_num;
	private String personal_name;
	private String personal_sal;
	
	public String getpersonal_num() {
		return personal_num;
	}
	public void setpersonal_num(String personal_num) {
		this.personal_num = personal_num;
	}
	public String getpersonal_name() {
		return personal_name;
	}
	public void setpersonal_name(String personal_name) {
		this.personal_name = personal_name;
	}
	public String getpersonal_sal() {
		return personal_sal;
	}
	public void setpersonal_sal(String personal_sal) {
		this.personal_sal = personal_sal;
	}
			
	
}

 

MainDataController.java

package com.company;

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;

@WebServlet("/getPersonal")
public class MainDataController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		DataGetDao dao = new DataGetDao();
		List<DataVo> dvo = null; 
		
		try {
			dvo = dao.getDataByNum(20);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		request.setAttribute("data_list", dvo);
		RequestDispatcher rd = request.getRequestDispatcher("/select_view.jsp"); 
		rd.forward(request, response);
		
	}

}

 

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	
	<display-name>ExamProject</display-name>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
	<servlet>
		<servlet-name>MainDataController</servlet-name>
		<servlet-class>com.company.MainDataController</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>MainDataController</servlet-name>
		<url-pattern>/getPersonal.do</url-pattern>
	</servlet-mapping>
	
</web-app>

 

select_view.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<%@page import="com.company.DataVo" %>
<%@page import="java.util.*" %>
<meta charset="EUC-KR">
<title>EMP TEST</title>
</head>
<body>

<% ArrayList<DataVo> list = null;

	String html_tag = "";
	
	try{
	list = (ArrayList<DataVo>)request.getAttribute("data_list");

	html_tag += "<table style='border:solid 1px; width:500px;'>";
	html_tag += "<tr><td>사번</td><td>이름</td><td>연봉</td></tr>";
	
	for(int i=0; i<list.size(); i++){ 

		html_tag += "<tr>";
		html_tag += "<td>"+list.get(i).getpersonal_num()+"</td>";
		html_tag += "<td>"+list.get(i).getpersonal_name()+"</td>";
		html_tag += "<td>"+list.get(i).getpersonal_sal()+"</td>";
		html_tag += "</tr>";

 	}
	
	html_tag += "</table>";
	
	}catch(Exception e){
		e.printStackTrace();	
	}

%>
<%=html_tag %>
</body>
</html>

 

소스 결과

Web프로젝트내 Java와 Jsp를 이용.

오라클을 연동하여 DB 내 데이터를 Select 하는 예제의 결과값 입니다.

 

소스는 Jsp에서 결과값을 html 이용하여 다양하게 출력할 수 있습니다.

 

반응형

+ Recent posts