카테고리 없음

Emp MVC example

Soul-Learner 2014. 9. 19. 20:28

Emp MVC Example



EmpServlet.java

package org.kdea.java.servlet;


import java.io.IOException;

import java.util.List;


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 org.kdea.java.EmpService;

import org.kdea.jdbc.Emp;


@WebServlet("/emp") // ~/emp?cmd=empList, ~/emp?cmd=empInfo&empno=7369

public class EmpServlet extends HttpServlet {

private static final long serialVersionUID = 1L;


protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

request.setCharacterEncoding("euc-kr");

String cmd = request.getParameter("cmd");

EmpService es = new EmpService(request, response);

java.lang.reflect.Method method = null;

String view = null;

try{

method = es.getClass().getDeclaredMethod(cmd);

view = (String)method.invoke(es); 

}catch(Exception e) {

e.printStackTrace();

}

getServletContext().getRequestDispatcher(view).forward(request, response);

}

}



EmpService.java

package org.kdea.java;


import java.util.List;


import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


import org.kdea.jdbc.*;


public class EmpService {

HttpServletRequest request;

HttpServletResponse response;

public EmpService(HttpServletRequest request, HttpServletResponse response) {

this.request = request;

this.response = response;

}

public String empList() {

EmpDAO dao = new EmpDAO();

List<Emp> list = dao.getEmpList();

request.setAttribute("list", list);

return "/mvc/empList.jsp";

}

public String empInfo() {

EmpDAO dao = new EmpDAO();

int empno = Integer.valueOf(request.getParameter("empno"));

Emp emp = dao.getEmpByEmpno(empno);

request.setAttribute("empInfo", emp);

return "/mvc/empInfo.jsp";

}

}



EmpDAO.java

package org.kdea.jdbc;


import java.sql.*;

import java.util.*;

import java.sql.Date;


public class EmpDAO 

{

Connection conn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

String jdbc_driver = "oracle.jdbc.OracleDriver";

String db_url = "jdbc:oracle:thin:@localhost:1521:xe";

private Connection getConn() {

try{

    Class.forName(jdbc_driver);

    conn = DriverManager.getConnection(db_url,"scott","tiger");

    return conn;

}catch(Exception e) {

e.printStackTrace();

if(conn!=null) {

try {

conn.close();

} catch (SQLException e1) {

e1.printStackTrace();

}

}

}

return null;

}

public boolean login(Member m) {

conn = getConn();

String sql = "select * from emp where ename=? and empno=?";

try{

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, m.getId());

pstmt.setString(2, m.getPwd());

rs = pstmt.executeQuery();

if(rs.next()) {

return true;

}

}catch(Exception e) {

e.printStackTrace();

}finally{

closeAll();

}

return false;

}

public List<Emp> getEmpList() {

conn = getConn();

String sql = "select empno, ename, hiredate from emp";

try{

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

List<Emp> list = new ArrayList<>();

while(rs.next()) {

int empno = rs.getInt("EMPNO");

String ename = rs.getString("ENAME");

Date hiredate = rs.getDate("HIREDATE");

Emp e = new Emp();

e.setEmpno(empno);

e.setEname(ename);

e.setHiredate(hiredate);

list.add(e);

}

return list;

}catch(Exception e) {

e.printStackTrace();

}finally{

closeAll();

}

return null;

}

public Emp getEmpByEmpno(int empno) {

conn = getConn();

String sql = "select * from emp where empno=?";

try{

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, empno);

rs = pstmt.executeQuery();

if(rs.next()) {

int eno = rs.getInt("EMPNO");

String ename = rs.getString("ENAME");

Date hiredate = rs.getDate("HIREDATE");

int deptno = rs.getInt("DEPTNO");

int sal = rs.getInt("SAL");

String job = rs.getString("JOB");

Emp e = new Emp();

e.setEmpno(eno);

e.setEname(ename);

e.setHiredate(hiredate);

e.setDeptno(deptno);

e.setSal(sal);

e.setJob(job);

return e;

}

}catch(Exception e) {

e.printStackTrace();

}finally{

closeAll();

}

return null;

}

public boolean updateEmp(Emp emp) {

conn = getConn();

String sql = "update emp set deptno=?, sal=? where empno=?";

try{

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1, emp.getDeptno());

pstmt.setInt(2, emp.getSal());

pstmt.setInt(3, emp.getEmpno());

int rows = pstmt.executeUpdate();

return rows > 0 ? true : false;

}catch(Exception e) {

e.printStackTrace();

}finally{

closeAll();

}

return false;

}

public List<Integer> getAllEmpnos() {

conn = getConn();

String sql = "select empno from emp";

try{

pstmt = conn.prepareStatement(sql);

rs = pstmt.executeQuery();

List<Integer> list = new ArrayList<>();

while(rs.next()) {

list.add(rs.getInt("EMPNO"));

}

return list;

}catch(Exception e) {

e.printStackTrace();

}finally{

closeAll();

}

return null;

}

private void closeAll() {

try{

if(rs!=null) rs.close();

if(pstmt!=null) pstmt.close();

if(conn!=null) conn.close();

}catch(Exception e) {

e.printStackTrace();

}

}

}



Emp.java

package org.kdea.jdbc;


import java.sql.Date;


public class Emp {

private int empno;

private String ename;

private Date hiredate;

private int deptno;

private int sal;

private String job;

public int getEmpno() {

return empno;

}

public void setEmpno(int empno) {

this.empno = empno;

}

public String getEname() {

return ename;

}

public void setEname(String ename) {

this.ename = ename;

}

public Date getHiredate() {

return hiredate;

}

public void setHiredate(Date hiredate) {

this.hiredate = hiredate;

}

public int getDeptno() {

return deptno;

}

public void setDeptno(int deptno) {

this.deptno = deptno;

}

public int getSal() {

return sal;

}

public void setSal(int sal) {

this.sal = sal;

}

public String getJob() {

return job;

}

public void setJob(String job) {

this.job = job;

}

}



empList.jsp

<%@page import="org.kdea.jdbc.Emp"%>

<%@page import="java.util.List"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%

List<Emp> list = (List<Emp>) request.getAttribute("list");

%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>사원정보 리스트</title>

</head>

<body>

<h2>사원정보 리스트</h2>

<%

for(int i=0;i<list.size();i++) {

Emp emp = list.get(i); %>

<%=emp.getEmpno() %>

<a href="emp?cmd=empInfo&empno=<%=emp.getEmpno() %>"><%=emp.getEname() %></a>

<%=emp.getDeptno() %> <br>

<%}

%>

</body>

</html>



empInfo.jsp

<%@page import="org.kdea.jdbc.Emp"%>

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<% 

Emp emp = (Emp) request.getAttribute("empInfo");

%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>사원정보 상세 페이지</title>

<script type="text/javascript" src="jquery-2.1.1.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

/*

$('#modifyBtn').click(function(){

modifyReq();

});*/

$('#modifyBtn').on('click', function(){

modifyReq();

});

});


function modifyReq() {

if(confirm('정말로 수정하시겠어요?')){

location.href="modifyForm.jsp?empno=<%=emp.getEmpno()%>";

}

}

</script>

</head>

<body>

<h2>회원상세정보 페이지</h2>

사번 <%=emp.getEmpno()%><br>

이름 <%=emp.getEname()%><br>

부서 <%=emp.getDeptno()%><br>

입사 <%=emp.getHiredate()%><br>

급여 <%=emp.getSal()%><br>

직무 <%=emp.getJob()%><br>

<p>

<input type="button" value="수 정" onclick="javascript:modifyReq();">

<button id="modifyBtn" >수 정</button>

</body>

</html>