JSP/SERVLET
2018.03.30 / 18:31

JSTLÀ» ÀÌ¿ëÇÑ ¹®¼­°ü¸®½Ã½ºÅÛ

º½ÀÌ
Ãßõ ¼ö 223

1.°³¿ä

(1)Å×ÀÌºí ±¸Á¶

roleÅ×À̺í - rid , name

docÅ×À̺í - did,title,owner,category,role,description,cabinet,date

cabinetÅ×À̺í-cid,title,role,description

 

(2)sqlÆÄÀÏ

USE root;

CREATE TABLE `role` (
 `rid` TINYINT (3) UNSIGNED NOT NULL, 
 `name` VARCHAR (20) NOT NULL, 
 PRIMARY KEY(`rid`), UNIQUE(`rid`));

INSERT INTO role (rid, name) VALUES (5, 'ÀϹÝȸ¿ø');
INSERT INTO role (rid, name) VALUES (4, '´Ü°ñȸ¿ø');
INSERT INTO role (rid, name) VALUES (3, '°í±Þȸ¿ø');
INSERT INTO role (rid, name) VALUES (2, 'Áß°£°ü¸®ÀÚ');
INSERT INTO role (rid, name) VALUES (1, '½Ã½ºÅÛ°ü¸®ÀÚ');

CREATE TABLE `doc` (
 `did` INT (7) UNSIGNED NOT NULL AUTO_INCREMENT, 
 `title` VARCHAR (50) NOT NULL,
 `owner` VARCHAR (10) NOT NULL,
 `category` VARCHAR (30), 
 `role` TINYINT (3) UNSIGNED NOT NULL, 
 `description` TEXT, 
 `cabinet` TINYINT (3) UNSIGNED NOT NULL, 
 `data` VARCHAR (50) NOT NULL, 
 PRIMARY KEY(`did`), UNIQUE(`did`), INDEX(`did`)) ;

CREATE TABLE `cabinet` (
 `cid` TINYINT (3) UNSIGNED NOT NULL AUTO_INCREMENT, 
 `title` VARCHAR (50) NOT NULL, 
 `role` TINYINT (3) UNSIGNED NOT NULL, 
 `description` TINYTEXT, 
 PRIMARY KEY(`cid`), UNIQUE(`cid`), INDEX(`cid`));

 

2.ijºñ³Ý °ü·Ã¼Ò½º

 

//cabinet.jsp

//ÆĶó¹ÌÅÍ¿¡ µû¶ó ÀûÀýÇÑ ÆäÀÌÁö·Î À̵¿ÇÏ°Ô ÇÑ´Ù.

 

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${uid == null}">
 <c:redirect url="/login.jsp"/> //¼¼¼ÇºÎÁ¸Àç½Ã ·Î±×ÀÎÆäÀÌÁö·Î À̵¿ 
</c:if>

<c:choose>
 <c:when test="${roleNo <= 2}">                                       //»ç¿ëÀÚ±ÇÇÑ 2ÀÌÇÏÀ̸é 
  <c:set var="isManager" value="yes" scope="session" />
 </c:when>
 <c:otherwise>
  <c:set var="isManager" value="no" scope="session" />
 </c:otherwise>
</c:choose>

<sql:setDataSource var="ds
driver="com.mysql.jdbc.Driver" 
user="root"  password="mysql"
scope="session"
url="jdbc:mysql://localhost/root?useUnicode=true&characterEncoding=euckr"/>

<c:choose>

//ÆĶó¹ÌÅÍ¿¡ µû¶ó À̵¿ÇÒ ÆäÀÌÁö ¼±Åà
 <%-- ijºñ³Ý µî·Ï --%>           
 <c:when test="${param.cmd == 'add'}">
  <jsp:forward page="cabinet_add.jsp"/>
 </c:when>
 
 <%-- º¯°æµÈ ijºñ³Ý Á¤º¸¸¦ DB¿¡ ÀúÀå --%>
 <c:when test="${param.cmd == 'change'}">
  <jsp:forward page="cabinet_change.jsp"/>
 </c:when>
 
 <%-- ijºñ³Ý º¯°æÀ» À§ÇÑ ³»¿ë º¸±â --%>
 <c:when test="${param.cmd == 'get'}">
  <jsp:forward page="cabinet_get.jsp"/>
 </c:when>

 <%-- ijºñ³Ý »èÁ¦ --%>
 <c:when test="${param.cmd == 'delete'}">
  <jsp:forward page="cabinet_delete.jsp"/>
 </c:when>
 
 <%-- ijºñ³Ý ¸ñ·Ï º¸±â(ijºñ³Ý Á¤º¸ º¯°æÀ» À§ÇØ) --%> 
 <c:when test="${param.cmd == 'modify'}">
  <jsp:forward page="cabinet_list.jsp"/>
 </c:when>
 
 <%-- ijºñ³Ý ¸ñ·Ï º¸±â --%>  //µðÆúÆ®UIÆäÀÌÁö
 <c:otherwise>
  <jsp:forward page="cabinet_list.jsp"/>
 </c:otherwise>
</c:choose>

 

//cabinet_list.jsp -È­¸é¿¡ ijºñ³Ý ¸ñ·ÏÀ» »Ñ¸°´Ù.±âº» UIÆäÀÌÁö

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<c:set var="isModify" value="no"/>
<c:if test="${isManager== 'yes' and param.cmd =='modify' }">
 <c:set var="isModify" value="yes"/>
</c:if>

<sql:query dataSource="${ds}" var="rs">
 select * from cabinet 
</sql:query>  
<html><head><title>ijºñ³Ý ¸ñ·Ï</title>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
</head><body><h3 id='header'>ijºñ³Ý ¸ñ·Ï</h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>

<div id='main'>
<table border=1 width=100%>
 <tr><th>À̸§</th><th>¼³¸í</th><th>Àбâ±ÇÇÑ</th>
 <c:if test="${isModify == 'yes'}"><th>»èÁ¦</th></c:if></tr>
 <c:forEach var="row" items="${rs.rows}">
 <tr><td>
  <c:choose> //º¯°æ°¡´É¿©ºÎ¿¡ µû¸¥ ¹®¼­ÀÇ ¼±ÅÃÀû ¸µÅ©°É±â
   <c:when test="${isModify == 'yes'}">
   <a href=cabinet.jsp?cmd=get&id=<c:out value="${row.cid}"/>>
   </c:when>
   <c:otherwise>
   <a href=doc_manager.jsp?cabinet=<c:out value="${row.cid}"/>>
   </c:otherwise>
  </c:choose>  

  <c:out value="${row.title}"/></a></td>
  <td><c:out value="${row.description}"/></td>     
  <td><select name=role>
  <c:choose>
   <c:when test="${row.role == 1}">
    <option value='1'> ½Ã½ºÅÛ°ü¸®ÀÚ
   </c:when>
   <c:when test="${row.role == 2}">
    <option value='2'> Áß°£°ü¸®ÀÚ
   </c:when>
   <c:when test="${row.role == 3}">
    <option value='3'> °í±Þȸ¿ø
   </c:when>
   <c:when test="${row.role == 4}">
    <option value='4'> ´Ü°ñȸ¿ø
   </c:when>
   <c:when test="${row.role == 5}">
    <option value='5'> ÀϹÝȸ¿ø
   </c:when>
  </c:choose>
  </select> </td> 
  <c:if test="${isModify == 'yes'}"> //»èÁ¦¹öÆ°¿¡ ´ëÇÑ ¸µÅ©°É±â 
   <td><form method=post action=cabinet.jsp>   
    <input type=hidden name=cmd value='delete'>
    <input type=hidden name=cid value='${row.cid}'>
    <input type=submit value='»èÁ¦'>
   </form></td>
  </c:if>
  </tr>
 </c:forEach>
</table>
</div>
</body>
</html>    

 

//edms_menu.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<div id="menucontainer">
 <div id="shatop"></div>
 <h3 class="center">¸Þ ´º</h3>
 <div class="blank">&nbsp;</div>
 <a href=/login.jsp>¸ÞÀÎÆäÀÌÁö</a>
 <div class="blank">&nbsp;</div>  
<c:if test="${roleNo <= 2}">
 <a href=cabinet_input.jsp>ijºñ³Ý µî·Ï</a>
 <div class="blank">&nbsp;</div>
 <a href=cabinet.jsp?cmd=modify>ijºñ³Ý °ü¸®</a>
 <div class="blank">&nbsp;</div>
</c:if> 
 <a href=cabinet.jsp>ijºñ³Ý º¸±â</a>  
 <div class="blank">&nbsp;</div>
 <a href=doc_input.jsp>¹®¼­ µî·Ï</a>
 <div class="blank">&nbsp;</div>
 <a href=doc_keyword.jsp>¹®¼­ ã±â</a>
 <div class="blank">&nbsp;</div> 
 <div id="shabottom"></div>  
</div>

 

//cabinet_input.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${ds == null or isManager == 'no'}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<html><head><title>ijºñ³Ý µî·Ï</title>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
</head>
<body>
<h3 id='header'>ijºñ³Ý µî·Ï</h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>
<div id='main'>
<form action=cabinet.jsp  method=post>
 <table>
  <tr>
   <td>ijºñ³Ý À̸§</td>
   <td><input type=text name=title></td>
  </tr>
  <tr>
   <td>ijºñ³Ý ¼³¸í</td>
   <td><textarea name=description 
    rows=10 cols=35></textarea></td>
  </tr>
  <tr>
   <td>Àб⠱ÇÇÑ</td>
   <td><select name=role>
   <option value="1" >½Ã½ºÅÛ°ü¸®ÀÚ
   <option value="2" >Áß°£°ü¸®ÀÚ
   <option value="3" >°í±Þȸ¿ø
   <option value="4" >´Ü°ñȸ¿ø
   <option selected value="5" >ÀϹÝȸ¿ø
   </select></td>
  </tr>
  <tr><td colspan=2><center>
   <input type=submit value="µî·Ï">
   <input type=reset value="Ãë¼Ò">
   </center></td>
  </tr>
 </table>
 <input type=hidden name=cmd value="add">
</form>
</div>
</body>
</html>


 

//cabinet_add.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:transaction dataSource="${ds}">
 <sql:update>
  INSERT INTO cabinet VALUES( ?, ?, ?)
  <sql:param value="${param.title}"/>
  <sql:param value="${param.role}"/>
  <sql:param value="${param.description}"/>
 </sql:update>
 <sql:query var="rs">
  SELECT cid FROM cabinet WHERE cid 
  = (SELECT MAX(cid) FROM cabinet)
 </sql:query>
 <c:forEach var="row" items="${rs.rows}">
  <c:set var="cn" value="${row.cid}"/>
 </c:forEach>
</sql:transaction>

<%  // ¹®¼­ ÀúÀåÀ» À§ÇÑ µð·ºÅ丮 »ý¼º
 String path = application.getRealPath("/edms");
 path += "/" + (Integer)pageContext.getAttribute("cn");
 myclasses.FileUtil.mkdir(path);
%>
<c:redirect url="cabinet.jsp"/>

 

//cabinet_get.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:query dataSource="${ds}" var="rs">
 select * from cabinet where cid=?
 <sql:param value="${param.id}"/>
</sql:query>
<html><head><title>ijºñ³Ý µ¥ÀÌÅÍ º¯°æ</title>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
</head><body>
<h3 id='header'>ijºñ³Ý µ¥ÀÌÅÍ º¯°æ </h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>
<div id='main'>
<form method=post action=cabinet.jsp>
<table>
<c:forEach var="row" items="${rs.rows}">
 <tr><td>ijºñ³Ý À̸§</td>
  <td><input type=text name=title 
  value='<c:out value="${row.title}"/>'></td></tr>
 <tr><td>¹®¼­ ¼³¸í</td>
  <td><textarea name=description rows=10 
  cols=35><c:out value="${row.description}"/></textarea></td></tr>
 <tr><td>Àбâ±ÇÇÑ</td>
  <td><select name=role>
   <option value="1" 
   <c:if test="${row.role == 1}">selected</c:if>>½Ã½ºÅÛ°ü¸®ÀÚ
   <option value="2" 
    <c:if test="${row.role == 2}"> selected</c:if>>Áß°£°ü¸®ÀÚ
   <option value="3" 
    <c:if test="${row.role == 3}"> selected</c:if>>°í±Þȸ¿ø
   <option value="4" 
    <c:if test="${row.role == 4}"> selected</c:if>>´Ü°ñȸ¿ø
   <option value="5" 
    <c:if test="${row.role == 5}"> selected</c:if>>ÀϹÝȸ¿ø
   </select>
  </td></tr>
</c:forEach>
</table>
 <input type=hidden name=id value='<c:out value="${param.id}"/>'>
 <input type=hidden name=cmd value='change'>
 <input type=submit value="º¯°æÇϱâ">
</form>
</div>
</body>
</html>

 

 

//cabinet_change.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:transaction dataSource="${ds}">
 <sql:update>
  UPDATE cabinet  SET  title =?, role = ?, 
   description = ? where cid = ?
  <sql:param value="${param.title}"/>
  <sql:param value="${param.role}"/>
  <sql:param value="${param.description}"/>  
  <sql:param value="${param.id}"/>
 </sql:update> 
</sql:transaction>
<c:redirect url="cabinet.jsp"/>

 

//cabinet_delete.jsp

<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<c:if test="${ds == null or isManager == 'no'}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:transaction dataSource="${ds}">
 <sql:update>
  delete from cabinet where cid = ?
  <sql:param value="${param.cid}"/>
 </sql:update>
 <sql:update>
  delete from doc where cabinet = ?
  <sql:param value="${param.cid}"/>
 </sql:update> 
</sql:transaction>

<%  // ¹®¼­ ÀúÀåÀ» À§ÇÑ µð·ºÅ丮 »èÁ¦
 String path = application.getRealPath("/edms");
 path += "/" + request.getParameter("cid");
 myclasses.FileUtil.rmdir(new java.io.File(path));
%>
<c:redirect url="cabinet.jsp"/>

 

3.¹®¼­ °ü·Ã ¼Ò½º

//doc_manager.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<%-- ¹®¼­ Á¤º¸¸¦ DB¿¡ ÀúÀå --%>
<c:choose>
 <c:when test="${param.cmd == 'add'}">
  <jsp:forward page="doc_add.jsp"/>
 </c:when>
 
<%-- º¯°æµÈ ¹®¼­ Á¤º¸¸¦ DB¿¡ ÀúÀå --%> 
 <c:when test="${param.cmd == 'change'}">
  <jsp:forward page="doc_change.jsp"/>
 </c:when>

<%-- ¹®¼­ »èÁ¦ --%> 
 <c:when test="${param.cmd == 'delete'}">
  <jsp:forward page="doc_delete.jsp"/>
 </c:when>
 
<%-- ¹®¼­ Á¤º¸ º¯°æÀ» À§ÇÑ ³»¿ë º¸±â --%> 
 <c:when test="${param.cmd == 'get'}">
  <jsp:forward page="doc_get.jsp"/>
 </c:when>

<%-- °Ë»ö °á°ú ¹× ijºñ³Ý ¹®¼­ ¸ñ·Ï º¸±â --%> //µðÆúÆ®UIÆäÀÌÁö
 <c:otherwise>
  <jsp:forward page="doc_list.jsp"/>
 </c:otherwise>
</c:choose>

 

 

//doc_get.jsp -¹®¼­¸¦ °¡Á®¿Í¼­ ¹®¼­³»¿ëÀ» Ãâ·ÂÇÑ´Ù.

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<c:choose>
 <%-- Å°¿öµå·Î ¹®¼­ ã±â SQL --%>
 <c:when test="${param.cmd == 'search'}">   
  <sql:query dataSource="${ds}" var="rs"> 
   select * from doc where category like ? or 
   description like ?
   <sql:param value="%${param.keyword}%"/>
   <sql:param value="%${param.keyword}%"/>
  </sql:query>
 </c:when>
  
 <%-- ijºñ³ÝÀÇ ¹®¼­ ¸ñ·Ï º¸±â SQL --%>  
 <c:otherwise>
  <sql:query dataSource="${ds}" var="rs">
  select * from doc where cabinet = ?
   <sql:param value="${param.cabinet}"/>
  </sql:query>  
 </c:otherwise>
</c:choose>
  
<%-- SQL·Î ãÀº ³»¿ë Ãâ·Â --%>
<% String dir = request.getContextPath() + "/edms/";
 pageContext.setAttribute("dir", dir); %>
 
<html><head><title>ijºñ³Ý ³»¿ë</title></head>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
<body><h3 id='header'>ijºñ³Ý ³»¿ë</h3>
<div id='menu'>
 <%@ include file='edms_menu.jsp' %>
</div>
<div id='main'>
<table border=1 width=100%>
 <tr><th>¹®¼­¸í</th><th>Ä«Å×°í¸®</th>
 <th>¼³¸í </th><th>ijºñ³Ý</th><th>¼öÁ¤</th>
 <c:if test="${roleNo <= 2}"><th>»èÁ¦</th></c:if></tr>
 <c:forEach var="row" items="${rs.rows}">
 <c:if test="${roleNo <= row.role}">
  <tr><td>
  <c:if test="${row.data != ''}">
  <a href='/servlet/DownloadFile?file=<c:out 
  value="${row.data}"/>&cabinet=<c:out value="${row.cabinet}"/>'>
  </c:if>
  <c:out value="${row.title}"/></a></td>
  <td><c:out value="${row.category}"/></td>
  <td><c:out value="${row.description}"/></td>
  <td><a href=doc_manager.jsp?cabinet=<c:out                          //ijºñ³Ý¸®½ºÆ®ÆäÀÌÁö·Î À̵¿
   value="${row.cabinet}"/>>
   <c:out value="${row.cabinet}"/></a></td>
  <td> &nbsp;
  <c:if test="${ row.owner == uid or row.role > roleNo}">
  <a href=doc_manager.jsp?cmd=get&id=<c:out value= "${row.did}" />>  //Ư¼º¹®¼­°¡Á®¿Í¼­ »Ñ¸®´Â ÆäÀÌÁö
   º¯°æ</a> </c:if></td>
  <c:if test="${roleNo <= 2}"> <td>
   <a href=doc_manager.jsp?cmd=delete&did=<c:out 
      value="${row.did}"/>>»èÁ¦</a></td>
  </c:if></tr>
 </c:if>
 </c:forEach>
 </table>
</div>
</body>
</html>    

 

//doc_input.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:query dataSource="${ds}" var="rs">
 select  cid, title  from cabinet 
</sql:query>  
  
<html><head><title>¹®¼­ µî·Ï</title></head>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
<body><h3 id='header'>¹®¼­ µî·Ï</h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>
<div id='main'>
<form action=doc_upload.jsp method=post enctype="multipart/form-data">
<table> 
 <tr>
  <td>¹®¼­ Á¦¸ñ</td>
  <td> <input type=text name=title></td>
 </tr>
 <tr>
  <td>Ä«Å×°í¸®</td>
  <td><input type=text name=category></td>
 </tr>
 <tr>
  <td>Àб⠱ÇÇÑ</td>
  <td> <select name=role>
  <option value="1" >½Ã½ºÅÛ°ü¸®ÀÚ
  <option value="2" >Áß°£°ü¸®ÀÚ
  <option value="3" >°í±Þȸ¿ø
  <option value="4" >´Ü°ñȸ¿ø
  <option selected value="5" >ÀϹÝȸ¿ø
  </select> 
  </td>
 </tr>
 <tr>
  <td>¹®¼­ ¼³¸í</td>
  <td>
  <textarea name=description rows=10 cols=35></textarea></td>  //¹®¼­³»¿ë ÀÔ·ÂÇÏ´Â ºÎºÐ 
 </tr>
 <tr>
  <td>ijºñ³Ý</td>
  <td> <select name=cabinet>
  <c:forEach var="row" items="${rs.rows}">
    <option value=<c:out value="${row.cid}"/>>
    <c:out value="${row.title}"/>
  </c:forEach>
  </select>
  </td>
 </tr>
 <tr>
  <td>¹®¼­ ÆÄÀÏ</td>
  <td><input type=file name=data></td>
 </tr>
 <tr>
  <td colspan=2>
  <input type=submit value="µî·Ï">
  <input type=reset value="Ãë¼Ò">
  </td>
 </tr>
</table>
<input type=hidden name=cmd value="add">
</form>
</div>
</body>
</html>

//doc_upload.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page import="java.util.*" %>
<%@ page import="com.oreilly.servlet.*" %>
<%@ page errorPage="error.jsp"%>
<% 
 ServletContext cxt = getServletContext();
 String dir = cxt.getRealPath("/edms/");
 int max = 5 * 1024 * 1024; // 5MB
 MultipartRequest multi = 
  new MultipartRequest(request, dir, max, "KSC5601");
 Enumeration params = multi.getParameterNames();
 while(params.hasMoreElements()) {
  String name = (String) params.nextElement();
  String value = multi.getParameter(name);
  request.setAttribute(name, value); //request°´Ã¼¿¡ °ªµéÀ» ÀúÀåÇÑ´Ù.
 }


 Enumeration files = multi.getFileNames();
 String fileName = null;
 request.setAttribute("data", fileName); 
 while (files.hasMoreElements()) {
  String name = (String)files.nextElement();
  fileName = multi.getFilesystemName(name);
  request.setAttribute("data", fileName);//ÆÄÀÏÀ̸§À» ÀúÀåÇÑ´Ù.
  break;
 }
 String cmd = multi.getParameter("cmd");
 String gotoPage = "/doc_manager.jsp?cmd=change";
 if(fileName != null) {
  String cabinet = multi.getParameter("cabinet");
  String from = dir + "/" + fileName;
  String newName = fileName;
  if(cmd != null && cmd.equals("add")) {
   int index = fileName.lastIndexOf(".");
   if(index != -1) {
    String bareName = fileName.substring(0, index);
    String ext = fileName.substring(index+1, 
     fileName.length());
    long num = new Date().getTime();
    newName = bareName + "_" + num + "." + ext; //Áߺ¹¹æÁö¸¦ À§Çؼ­ ½Ã°£±îÁö ´õÇؼ­ º¸³½´Ù.
    request.setAttribute("data", newName);
    gotoPage = "/doc_manager.jsp?cmd=add";    
   }
  } 
  String to = dir + "/" + cabinet + "/" + newName;
  myclasses.FileUtil.move(from, to);
  } else if(fileName == null) {
  if(cmd != null && cmd.equals("add")) {
   gotoPage = "/doc_manager.jsp?cmd=add";
  }
 }
 RequestDispatcher rd = 
  cxt.getRequestDispatcher(gotoPage);
 rd.forward(request, response);  
%>

 

//doc_add.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:transaction dataSource="${ds}">
 <sql:update>
  INSERT INTO doc VALUES( ?, ?, ?, ?, ?, ?, ?)
  <sql:param value="${requestScope.title}"/>
  <sql:param value="${uid}"/>
  <sql:param value="${requestScope.category}"/>    
  <sql:param value="${requestScope.role}"/>
  <sql:param value="${requestScope.description}"/>
  <sql:param value="${requestScope.cabinet}"/>
  <c:choose>
   <c:when test="${requestScope.data == null}">
    <sql:param value=""/>
   </c:when>
   <c:otherwise>
    <sql:param value="${requestScope.data}"/>
   </c:otherwise>
  </c:choose>
 </sql:update> 
</sql:transaction>
<c:redirect url="cabinet.jsp"/>

 

//DownloadFile.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DownloadFile extends HttpServlet {
 public void doGet(HttpServletRequest req, HttpServletResponse res) 
  throws IOException, ServletException {
  req.setCharacterEncoding("KSC5601");   
  byte [] buffer = new byte[1024];
  String file = req.getParameter("file");
  String cabinet = req.getParameter("cabinet");
  String hfile = myclasses.StringUtil.toHangul(file); //ÇÑ±Û ¹®Á¦
  res.setContentType("application/octet");//ÆÄÀÏ´Ù¿î·ÎµåÇüÅÂ
  res.setHeader("Content-Disposition", //ÀúÀåÇÒ ÆÄÀÏÀ̸§À» ÁöÁ¤ÇϱâÀ§ÇØ
   "attachment;filename=" + file);

  ServletOutputStream out = res.getOutputStream();
  try {
   ServletContext cxt = getServletConfig().getServletContext();
   String path =  "/edms/" + cabinet + "/" + hfile;
   path = cxt.getRealPath(path);
   BufferedInputStream in = new 
    BufferedInputStream(new FileInputStream(path));
   int n = 0;
   while((n=in.read(buffer, 0, 1024)) != -1) {
    out.write(buffer, 0, n); 
   }
   out.close();
   in.close();
  } catch(Exception e) {
   e.printStackTrace();
  }
 }
}

 

//doc_get.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:query dataSource="${ds}" var="rs">
 select * from doc where did=?
 <sql:param value="${param.id}"/>
</sql:query>
  
<sql:query dataSource="${ds}" var="rs2">
 select  cid, title  from cabinet 
</sql:query>
    
<html><head><title>¹®¼­ Á¤º¸  º¯°æ</title></head>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
<body> <h3 id='header'>¹®¼­ Á¤º¸ º¯°æ </h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>  
<div id='main'>
 <form method=post action=doc_upload.jsp 
  enctype="multipart/form-data"> 
 <table>
 <c:forEach var="row" items="${rs.rows}">
  <tr><td>¹®¼­ À̸§</td>
  <td> <input type=text name=title 
   value='<c:out value="${row.title}"/>'> </td></tr>
  <tr><td>¹®¼­ Ä«Å×°í¸®</td>
  <td><input type=text name=category 
   value='<c:out value="${row.category}"/>'></td></tr>     
  <tr><td>¹®¼­ ¼³¸í</td>
  <td><textarea name=description rows=10 
       cols=35><c:out value="${row.description}"/></textarea>
  </td></tr>     
  <tr><td>Àб⠱ÇÇÑ</td>
  <td><select name=role>
   <option value="1" 
   <c:if test="${row.role == 1}">selected</c:if>>½Ã½ºÅÛ°ü¸®ÀÚ
   <option value="2" 
   <c:if test="${row.role == 2}"> selected</c:if>>Áß°£°ü¸®ÀÚ
   <option value="3" 
   <c:if test="${row.role == 3}"> selected</c:if>>°í±Þȸ¿ø
   <option value="4" 
   <c:if test="${row.role == 4}"> selected</c:if>>´Ü°ñȸ¿ø
   <option value="5" 
   <c:if test="${row.role == 5}"> selected</c:if>>ÀϹÝȸ¿ø
   </select>
  </td></tr>
  <tr><td>ijºñ³Ý</td>
  <td> <select name=cabinet>
   <c:forEach var="row2" items="${rs2.rows}">
    <option value=<c:out value="${row2.cid}"/>
    <c:if test="${row.cabinet == row2.cid}">selected
    </c:if>><c:out value="${row2.title}"/>    
   </c:forEach>
   <input type=hidden name=cn 
    value='<c:out value="${row.cabinet}"/>'>
   <input type=hidden name=fname 
    value='<c:out value="${row.data}"/>'> </tr>
  <tr><td>ÆÄÀÏ ¾÷µ¥ÀÌÆ®</td>
  <td><input type=file name=data></td></tr>    
 </c:forEach>
 </table>
 <input type=hidden name='id'
   value='<c:out value="${param.id}"/>'>
 <input type=hidden name='cmd' value='change'>
 <input type=submit value="º¯°æÇϱâ">
</form>
</div>
</body>
</html>

 

//doc_change.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<fmt:requestEncoding value="KSC5601"/>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:transaction dataSource="${ds}">
 <sql:update>
  UPDATE  doc  SET title =?, owner = ?, category=?,  role = ?, 
   description = ?, cabinet=?, data = ?  where did = ?
  <sql:param value="${requestScope.title}"/>
  <sql:param value="${uid}"/>
  <sql:param value="${requestScope.category}"/>
  <sql:param value="${requestScope.role}"/>
  <sql:param value="${requestScope.description}"/>
  <sql:param value="${requestScope.cabinet}"/>
  <c:choose>
   <c:when test="${requestScope.data == null}">
    <sql:param value="${requestScope.fname}"/>
   </c:when>
   <c:otherwise>
    <sql:param value="${requestScope.data}"/>
   </c:otherwise>
  </c:choose>
  <sql:param value="${requestScope.id}"/>
 </sql:update> 
</sql:transaction>
<c:if test="${param.cabinet != param.cn}">
<%
 String fname = request.getParameter("fname");
 String newFileName = request.getParameter("data");
 String cn = request.getParameter("cn");
 String from = application.getRealPath("/edms/" + cn + "/" + fname); 
 if(fname != null && fname.equals(newFileName)) { 
  String newcn = request.getParameter("cabinet");
  String to = application.getRealPath("/edms/" + 
   newcn + "/" + fname);
  myclasses.FileUtil.move(from, to);   
 } else if(fname != null && !fname.equals(newFileName)) {
  myclasses.FileUtil.delete(from); 
 }
%> 
</c:if>
<c:redirect url="cabinet.jsp"/>

 

//doc_delete.jsp

<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<c:if test="${ds == null or isManager == 'no'}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<sql:query dataSource="${ds}" var="rs">
 select cabinet, data from doc where did=?
 <sql:param value="${param.did}"/>
</sql:query>
<c:forEach var="row" items="${rs.rows}">
 <c:set var="cn" value="${row.cabinet}"/>
 <c:set var="fname" value="${row.data}"/>
</c:forEach>
<%  // ÀúÀåµÈ ÆÄÀÏ »èÁ¦
 String path = application.getRealPath("/edms");
 Integer cn = (Integer)pageContext.getAttribute("cn");
 String fname = (String)pageContext.getAttribute("fname");
 path += "/" + cn + "/" + fname;
 myclasses.FileUtil.delete(path);
%>
<%-- doc Å×ÀÌºí ·¹ÄÚµå »èÁ¦ --%>
<sql:transaction dataSource="${ds}">
 <sql:update>
  delete from doc where did = ?
  <sql:param value="${param.did}"/>
  </sql:update>
</sql:transaction>  
<c:redirect url="cabinet.jsp"/>

 

//doc_keyword.jsp

<%@ page contentType="text/html;charset=KSC5601" %>
<%@ page errorPage="error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:if test="${ds == null}">
 <c:redirect url="cabinet.jsp"/>
</c:if>

<html><head><title>¹®¼­ ã±â</title></head>
<link type="text/css" rel="stylesheet" href="/mystyle.css">
<body>
<h3 id='header'>¹®¼­ ã±â</h3>
<div id='menu'>
 <%@ include file="edms_menu.jsp" %>
</div>
<div id='main'>
<form action=doc_manager.jsp  method=post>
<p> Å°¿öµå <input type=text name=keyword>
     <input type=submit value="ã±â">
<input type=hidden name=cmd value=search>
</form>
</div>
</body>
</html>