JAVA
PsdController (CRUD) 코드
insert
package pds;
import java.io.IOException;
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 com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
/**
* Servlet implementation class PsdController
*/
@WebServlet("/PsdInsertController")
public class PsdInsertController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public PsdInsertController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
String realFolder="";
String saveFolder ="/psdmvc/files/";
String encType="UTF-8";
int maxSize = 5*1024*1024 ; // 5MB
realFolder=getServletContext().getRealPath(saveFolder);
// 1) 파일이 저장되는 시점
MultipartRequest multi
= new MultipartRequest(request,realFolder,maxSize,encType,new DefaultFileRenamePolicy() );
String m_sno = multi.getParameter("m_sno");
String m_sname = multi.getParameter("m_sname");
String m_etc = multi.getParameter("m_etc");
String m_filesName = multi.getFilesystemName("m_files");
if (m_filesName == null){
m_filesName ="space.png";
}
System.out.println("realFolder:" + realFolder );
PsdVO vo = new PsdVO();
vo.setM_sno(m_sno);
vo.setM_sname(m_sname);
vo.setM_filesname(m_filesName);
vo.setM_etc(m_etc);
PsdService s = new PsdServiceImpl();
s.insert(vo);
response.sendRedirect("PsdSelectController");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
select
package pds;
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;
/**
* Servlet implementation class PsdSelectController
*/
@WebServlet("/PsdSelectController")
public class PsdSelectController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public PsdSelectController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
PsdService s = new PsdServiceImpl();
List<PsdVO> li = s.selectAll(null);
request.setAttribute("li", li);
RequestDispatcher dispatcher
=request.getRequestDispatcher("psdmvc/psd_list.jsp");
dispatcher.forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
update
package pds;
import java.io.File;
import java.io.IOException;
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 com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
/**
* Servlet implementation class PsdUpdateCopntroller
*/
@WebServlet("/PsdUpdateController")
public class PsdUpdateController extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public PsdUpdateController() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
String realFolder="";
String saveFolder ="/psdmvc/files/";
String encType="UTF-8";
int maxSize = 5*1024*1024 ; // 5MB
realFolder=getServletContext().getRealPath(saveFolder);
// 1) 파일이 저장되는 시점
MultipartRequest multi
= new MultipartRequest(request,realFolder,maxSize,encType,new DefaultFileRenamePolicy() );
String m_idx= multi.getParameter("m_idx");
String m_sno= multi.getParameter("m_sno");
String m_sname= multi.getParameter("m_sname");
String m_etc= multi.getParameter("m_etc");
String m_fileName = multi.getFilesystemName("m_files");
PsdService s = new PsdServiceImpl();
PsdVO vo = s.selectOne(Integer.parseInt(m_idx));
String delFileName = vo.getM_filesname();
String delFile = realFolder + delFileName ; // 실제파일
File f=new File(delFile);
// 수정에서 파일 첨부에 값을 첨부하면 기존 파일 삭제
if(delFileName!=null){
// space.png 가 아니면 삭제
if(!delFileName.equals("space.png")){
f.delete();
}
}
vo = new PsdVO();
vo.setM_idx(Integer.parseInt(m_idx));
vo.setM_sno(m_sno);
vo.setM_sname(m_sname);
vo.setM_filesname(m_fileName);
vo.setM_etc(m_etc);
s.update(vo);
response.sendRedirect("/PsdSelectController");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
delete
jsp (게시판) 코드
list
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="pds.*" %>
<%@ page import="java.util.*"%>
<%@ include file ="/include/top.jsp" %>
<%
@SuppressWarnings("unchecked")
List<PsdVO> li =(ArrayList<PsdVO>) request.getAttribute("li");
%>
<section>
<br>
<div align="center">
<h2> 회원목록보기 </h2>
<table border=1 width=500 >
<tr align="center"><td>순번 </td><td>학번 </td><td>이름 </td>
<td>파일명 </td><td>사진 </td><td>조회수 </td>
<% for(PsdVO m : li ) { %>
<tr align="center">
<td>
<a href="<%=path %>/PsdEditController?m_idx=<%=m.getM_idx() %>">
<%=m.getM_idx() %>
</a>
</td>
<td><%=m.getM_sno() %> </td>
<td><%=m.getM_sname() %> </td>
<td><%=m.getM_filesname() %> </td>
<td><img src='<%=path%>/psdmvc/files/<%=m.getM_filesname() %>' width=50 height=50 /> </td>
<td><%=m.getM_cnt() %> </td>
<% } %>
</table>
</div>
</section>
<%@ include file ="/include/footer.jsp" %>
form
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/top.jsp" %>
<script>
function formOk(){
var fileName = document.getElementById("m_files").value;
// C:\Users\605-20\Desktop\이미지\파일명.jpg
alert("확인 1: "+fileName);
// 점의 위치의 자리수 가져오기 즉 30
alert("확인 2: "+fileName.indexOf("."));
// 30+1 한 후 뒤자리 글자를 자른 값을 리턴 즉, 확장자 리턴
alert("확인 3: "+fileName.slice(fileName.indexOf(".")+1));
// 확장자 리턴 후 소문자로 변경
var ext = fileName.slice(fileName.indexOf(".")+1).toLowerCase();
if( f1.m_sno.value == ""){
alert("학번을 확인해주세요");
return false;
if(fileName !=""){
var fileSize = document.getElementById("m_files").files[0].size;
var maxSize = 1 * 1024 * 1024; // 1MB
if(fileSize > maxSize){
alert("파일사이즈는 1MB 미만으로 추가 해주세요.");
return false;
}
}
if((ext != "jpg") || (ext !="gif") || (ext !="png")){
alert("이미지는 jpg, png, gif 파일만 사용 가능합니다.");
return false;
}
}else{
f1.submit();
}
}
</script>
<section>
<br>
<div align=center>
<h2>회원가입 프로그램</h2>
<form name=f1 action="formOk.jsp" method="post"
enctype="multipart/form-data" onSubmit="return formOk()">
<table border=1 width="450" height=300>
<tr><td align=center>학번</td><td><input type=text name=m_sno></td></tr>
<tr><td align=center>이름</td><td><input type=text name=m_sname></td></tr>
<tr><td align=center>파일</td><td><input type=file name=m_files></td></tr>
<tr><td align=center>특이사항</td><td>
<textarea cols=40 rows =5 name=m_etc></textarea></td></tr>
<tr><td colspan=2 align=center>
<input type=submit value="회원가입"> 
<input type=reset value="다시작성"></td></tr>
</table>
</form>
</div>
<br>
</section>
<%@ include file="/include/footer.jsp" %>
edit
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="pds.*" %>
<%@ page import="java.util.*"%>
<%@ include file ="/include/top.jsp" %>
<%
PsdVO m = (PsdVO)request.getAttribute("m");
%>
<script>
function delK(k){
alert("K확인:" +k)
location.href="psd_delete.jsp?m_idx="+k
// location.href=`psd_delete.jsp?m_idx=${'${k}'}`;
// 안쪽은 ES6의 표기법이고 바깥쪽은 EL 표기법 ()
}
function formOK(){
alert("확인")
f1.submit();
}
</script>
<section>
<br>
<div align="center">
<h2> 회 원 상 세 보 기 </h2>
<form name="f1" action=PsdUpdateCopntroller method="post"
enctype="multipart/form-data" onSubmit="return formOK()" >
<input type=hidden name="m_idx" value='<%=m.getM_idx() %>' >
<table border=1 width=450 height=270>
<tr><td width=50 align="center">학번 </td><td><input type=text name=m_sno value=<%=m.getM_sno() %> > </td><td rowspan=3 align="center"> <img src='<%=path %>/psdmvc/files/<%=m.getM_filesname() %>' width=100 height=100> </td> </tr>
<tr><td align="center">이름 </td><td><input type=text name=m_sname value=<%=m.getM_sname() %> > </td></tr>
<tr><td align="center">사진 </td><td><input type=file name=m_files></tr>
<tr><td align="center" >특이<br>사항 </td>
<td colspan=2><textarea cols=45 rows=5 name=m_etc><%=m.getM_etc() %></textarea></tr>
<tr><td colspan=3 align="center">
<input type=submit value="수정하기" >  
<input type=button value="삭제하기"
onClick="delK('<%=m.getM_idx() %>')" > </td></tr>
</table>
</form>
</div>
</section>
<%@ include file ="/include/footer.jsp" %>
SW로 받은 URL의 값에 각 문자를 지정해주어서 컨트롤러를 묶어줄 수 있다.
package pds;
import java.io.File;
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;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
@WebServlet("/PsdController")
public class PsdController extends HttpServlet {
private static final long serialVersionUID = 1L;
public PsdController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sw = request.getParameter("sw");
if (sw.equals("I")) {
String realFolder = "";
String saveFolder = "/psdmvc/files/"; // 파일이 저장되는 폴더지정
String encType = "UTF-8"; // 인고딩 타입
int maxSize = 5 * 1024 * 1024; // 최대 업로드될 파일크기 5MB
realFolder = getServletContext().getRealPath(saveFolder);
System.out.println(realFolder);
MultipartRequest multi = new MultipartRequest(request, realFolder, maxSize, encType,
new DefaultFileRenamePolicy());
String m_sno = multi.getParameter("m_sno");
String m_sname = multi.getParameter("m_sname");
String m_etc = multi.getParameter("m_etc");
String m_filesName = multi.getFilesystemName("m_files");
if (m_filesName == null) {
m_filesName = "space.png";
}
PsdVO vo = new PsdVO();
vo.setM_sno(m_sno);
vo.setM_sname(m_sname);
vo.setM_filesname(m_filesName);
vo.setM_etc(m_etc);
PsdService s = new PsdServiceImpl();
s.insert(vo);
response.sendRedirect("PsdController?sw=S");
} else if (sw.equals("S")) {
PsdService s = new PsdServiceImpl();
PsdVO vo = new PsdVO();
List<PsdVO> li = s.selectAll(vo);
request.setAttribute("li", li);
RequestDispatcher dispatcher = request.getRequestDispatcher("psdmvc/psd_list.jsp");
dispatcher.forward(request, response);
}else if(sw.equals("U")) {
String realFolder="";
String saveFolder ="/psdmvc/files/";
String encType="UTF-8";
int maxSize = 5*1024*1024 ; // 5MB
realFolder=getServletContext().getRealPath(saveFolder);
// 1) 파일이 저장되는 시점
MultipartRequest multi
= new MultipartRequest(request,realFolder,maxSize,encType,new DefaultFileRenamePolicy() );
String m_idx= multi.getParameter("m_idx");
String m_sno= multi.getParameter("m_sno");
String m_sname= multi.getParameter("m_sname");
String m_etc= multi.getParameter("m_etc");
String m_fileName = multi.getFilesystemName("m_files");
PsdService s = new PsdServiceImpl();
PsdVO vo = s.selectOne(Integer.parseInt(m_idx));
String delFileName = vo.getM_filesname();
String delFile = realFolder + delFileName ;
File f=new File(delFile);
// 수정에서 파일 첨부에 값을 첨부하면 기존 파일 삭제
if(m_fileName!=null){
// space.png 가 아니면 삭제
if(!delFileName.equals("space.png")){
f.delete();
}
}
vo = new PsdVO();
vo.setM_idx(Integer.parseInt(m_idx));
vo.setM_sno(m_sno);
vo.setM_sname(m_sname);
vo.setM_filesname(m_fileName);
vo.setM_etc(m_etc);
s.update(vo);
response.sendRedirect("PsdController?sw=S");
}else if(sw.equals("E")){
PsdService s = new PsdServiceImpl();
int m_idx = Integer.parseInt(request.getParameter("m_idx"));
request.setAttribute("m",s.selectOne(m_idx));
RequestDispatcher dispatcher = request.getRequestDispatcher("psdmvc/psd_edit.jsp");
dispatcher.forward(request, response);
}else if(sw.equals("D")){
PsdService s = new PsdServiceImpl();
int m_idx = Integer.parseInt(request.getParameter("m_idx"));
PsdVO vo = s.selectOne(m_idx);
String delFile = vo.getM_filesname();
String saveForder = "/psdmvc/files/";
String realForder = getServletContext().getRealPath(saveForder);
File f= new File(realForder+delFile);
if(!delFile.equals("space.png")) {
f.delete();
}
vo.setM_idx(m_idx);
s.delete(vo);
response.sendRedirect("PsdController?sw=S");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}