<%@ page contentType="text/html; charset=UTF-8"%>
<jsp:useBean id="mgr" class="ch13.FileloadMgr"/>
<%
String snum[] = request.getParameterValues("fch");
int num[] = new int[snum.length-1];
for(int i=0;i<num.length;i++){
num[i]=Integer.parseInt(snum[i+1]);
}
mgr.deleteFile(num);
response.sendRedirect("flist.jsp");
%>
<%@page import="java.io.File"%>
<%@page import="ch13.FileloadMgr"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page contentType="application; charset=UTF-8"%>
<%
try {
String filename = request.getParameter("upFile");
File file = new File(FileloadMgr.SAVEFOLDER + File.separator + filename);
byte b[] = new byte[(int) file.length()];
response.setHeader("Accept-Ranges", "bytes");
String strClient = request.getHeader("User-Agent");
if (strClient.indexOf("Trident") > 0 || strClient.indexOf("MSIE") > 0) {
response.setContentType("application/smnet;charset=EUC-KR");
response.setHeader("Content-Disposition",
"filename=" + new String(filename.getBytes("EUC-KR"), "8859_1") + ";");
} else {
response.setContentType("application/smnet;charset=EUC-KR");
response.setHeader("Content-Disposition",
"attachment;filename=" + new String(filename.getBytes("EUC-KR"), "ISO-8859-1") + ";");
}
out.clear();
if (file.isFile()) {
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
int read = 0;
while ((read = fin.read(b)) != -1) {
outs.write(b, 0, read);
}
outs.close();
fin.close();
}
} catch (Exception e) {
e.printStackTrace();
}
%>
<!-- ch13/fileSelect.jsp -->
<%@ page contentType="text/html; charset=UTF-8"%>
<form method="post" enctype="multipart/form-data"
action="viewPage.jsp">
user : <input name="user" value="홍길동"><br>
title : <input name="title" value="파일업로드"><br>
file : <input type="file" name="myfile" value="upload"><br>
<input type="submit" value="파일전송">
</form>
<!-- fupload.jsp -->
<%@page contentType="text/html; charset=UTF-8"%>
<!doctype html>
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<script>
function check() {
frm = document.forms[0];
if(frm.upFile.value==0){
alert("파일을 선택하세요.");
return
}
frm.submit();
}
</script>
</head>
<body>
<div align="center">
<h2>File Upload</h2>
<form method="post" action="fuploadProc.jsp?flag=update"
enctype="multipart/form-data" >
<table border="1">
<tr>
<td>파일선택</td>
<td><input type="file" name="upFile"></td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="파일업로드" onclick="check()">
</td>
</tr>
</table>
</form>
<a href="flist.jsp">파일리스트</a>
</div>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<jsp:useBean id="mgr" class="ch13.FileloadMgr"/>
<%
String flag = request.getParameter("flag");
mgr.uploadFile(request);
response.sendRedirect("flist.jsp");
%>
<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//업로드 파일 저장 위치
final String SAVEFOLDER = "C:/Jsp/myapp/src/main/webapp/ch13/storage/";
//업로드 파일명 인코딩
final String ENCODING = "UTF-8";
//업로드 파일 크기
final int MAXSIZE = 1024*1024*20; //20MB
try{
//DefaultFileRenamePolicy = 이름이 같으면 자동으로 이름 뒤에 인덱스 추가
MultipartRequest multi =
new MultipartRequest(
request,
SAVEFOLDER,
MAXSIZE,
ENCODING,
new DefaultFileRenamePolicy()
);
String user = multi.getParameter("user");
String title = multi.getParameter("title");
String fileName = multi.getFilesystemName("myfile");
String fileType = multi.getContentType("myfile");
//파일정보
File f = multi.getFile("myfile");
long len=0;
if(f!=null){
len=f.length();
}
out.println("user : " + user + "<br>");
out.println("title : " + title + "<br>");
out.println("파일명 : " + fileName + "<br>");
out.println("파일타입 : " + fileType + "<br>");
out.println("파일크기 : " + len + "byte");
}catch(Exception e){
e.printStackTrace();
}
%>
package ch08;
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
@WebServlet("/ch08/exServlet1")
public class ExServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
//응답 스트림
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println("<html>");
out.println("<body>");
out.println("<h1>이클립스로 서블릿 만들기</h1>");
out.println("세션ID : " + session.getId());
out.println("</body>");
out.println("</html>");
}
}
package ch08;
import java.io.IOException;
import java.io.PrintWriter;
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 javax.servlet.http.HttpSession;
@WebServlet("/ch08/exServlet2")
public class ExServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
// 서블릿 라이프 사이클 : init, service, destory
@Override //서블릿 처음 요청 한번 만 실행
public void init() throws ServletException {
System.out.println("init 호출");
}
@Override // Client가 요청이 있을 때 마다 실행
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("service 호출");
}
@Override // 서비스 종료 및 서블릿 코드가 수정이 될 때
public void destroy() {
System.out.println("destory 호출");
}
}
package ch08;
import java.io.IOException;
import java.io.PrintWriter;
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("/ch08/getServlet")
public class GetServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String msg = request.getParameter("msg");
out.println("<h1>Get Servlet</h1>");
out.println("msg : "+msg);
}
}
package ch08;
import java.io.IOException;
import java.io.PrintWriter;
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("/ch08/postServlet")
public class PostServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String email = request.getParameter("email");
out.println("<h1>Post Servlet</h1>");
out.println("id : "+id);
out.println("pwd : "+pwd);
out.println("email : "+email);
}
}
package ch08;
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 javax.servlet.http.HttpSession;
@WebServlet("/ch08/loginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
HttpSession session = request.getSession();
if(id!=null&&pwd!=null) {
session.setAttribute("idKey", id);
}
response.sendRedirect("login.jsp");
}
}
<!-- getJsp.jsp -->
<%@page contentType="text/html; charset=UTF-8"%>
<h3>Get 방식 서블릿 호출</h3>
<form method="get" action="getServlet">
msg : <input name="msg" value="축하~ 코로나 종식">
<input type="submit" value="전송">
</form>
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
<body>
<h1>Post Servlet 방식</h1>
<form method="post" action="postServlet">
id : <input name="id" value="홍길동"><br/>
pwd : <input type="password" name="pwd" value="1234"><br/>
email : <input name="email" value="aaa@aaa.com"><br/>
<input type="submit" value="가입">
</form>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//서버에 만들어진 세션 객체를 제거 -> 새로운 세션객체가 생성
session.invalidate();
//현재 페이지를 login.jsp 호출
response.sendRedirect("login.jsp");
%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
//세션에 id값을 가져온다.
String id = (String)session.getAttribute("idKey");
%>
<h1>로그인</h1>
<%
if(id!=null){
%>
<!-- 로그인 된 영역 -->
<%=id%>님 반갑습니다.
<a href="logout.jsp">로그아웃</a>
<%}else{%>
<!-- 로그인 안된 영역 -->
<form method="post" action="loginServlet">
id : <input name="id"><br/>
pwd : <input type="password" name="pwd"><br/>
<input type="submit" value="로그인">
</form>
<%}%>