Emp MVC example
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>