Core 태그 : 변수 선언, 조건문, 반복문, URL
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Formatting 태그 : 숫자, 날짜, 시간 포맷 지정
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
변수 : <c:set> : 변수 지정
<c:remove> : 변수 제거
조건문 : <c:if> : if 문
: <c:choose> : switch 문
-> <c:when>, <c:otherwise> 서브 태그를 갖고있음
반복 : <c:forEach> : for 문
페이지 : <c:import> : URL 을 다른 JSP 페이지에 추가
<c:redirect>: response.sendRdirect() 기능을 수행
<c:url> : 요청 매개변수로 부터 URL 을 생성
출력 : <c:out>
예외처리 : <c:catch>
https://tomcat.apache.org/download-taglibs.cgi
webapp/WEB-INF/lib 에 넣기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex01_set_out.jsp</title>
</head>
<body>
<h1>변수</h1>
<%--
# <c:set> : 변수 설정
- <c:set var="변수명" value="변수 값" scope="접근 범위"/>
-> scope : page(기본), request, session, application
# <c:remove> : 변수 삭제
- <c:remove var="삭제할 변수명" scope"접근 범위"/>
# <c:out> : 값을 출력하는 기능
- <c:out value="출력값"/>
--%>
<h2>
- set -
<br>
<c:set var="num_1" value="1"/>
num_1 : ${num_1 }
<br><br>
<c:set var="num_2"> 2</c:set>
num_2 : ${num_2 }
<br><br>
<c:set var="num_3" value="${3 }"/>
num_3 : ${num_3 }
<br><br>
<c:set var="num_4" value="4" scope="request"/>
num_4 : ${num_4 }
<br><br>
- remove run -
<br>
<!-- 에러는 아니지만 아무것도 나오지 않음 -->
<c:remove var="num_4"/>
num_4 : ${num_4 }
<br><br>
- out -
<br>
<c:out value="출력"/>
</h2>
</body>
</html>
<%@page import="dto.PersonDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex02_set-bean.jsp</title>
</head>
<body>
<h1>자바빈즈 - 생성자</h1>
<%--
# <c:set> 태그를 이용해서 자바빈즈나 컬렉션을 생성할 수 있다
- target 과 property 속성을 사용
<c:set var="변수명" value="저장할 객체 or 컬렉션" scope="접근 범위"/>
<c:set target="var 로 설정한 변수" property="객체 속성명" value="속성값"/>
--%>
<h2>
<c:set var="manA" value='<%=new PersonDTO("manA", 22) %>'/>
이름 : ${manA.name } <br>
나이 : ${manA.age } <br>
<br>
</h2>
<h1>자바빈즈 - target, property</h1>
<h2>
<c:set var="manB" value="<%=new PersonDTO() %>" scope="request"/>
<c:set target="${manB }" property="name" value="manB"/>
<c:set target="${manB }" property="age" value="20"/>
이름 : ${manB.name } <br>
나이 : ${requestScope.manB.age } <br>
<br>
</h2>
</body>
</html>
package dto;
public class PersonDTO {
private String name;
private int age;
public PersonDTO() {
super();
}
public PersonDTO(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
<%@page import="dto.PersonDTO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex03_set-collection.jsp</title>
</head>
<body>
<h1>set - list</h1>
<%
ArrayList<PersonDTO> list = new ArrayList<>();
list.add(new PersonDTO("testA", 100));
list.add(new PersonDTO("testB", 50));
%>
<c:set var="personList" value="<%=list %>" />
<h2>
이름 : ${personList[0].name } <br>
나이 : ${personList[0].age } <br><br>
이름 : ${personList[1].name } <br>
나이 : ${personList[1].age } <br>
</h2>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex04_if.jsp</title>
</head>
<body>
<h1>if</h1>
<%--
# <c:if> : if 문을 대체하는 태그
- <c:if test="${ 조건식 }" var="변수명" />
-> var : 조건식의 결과값 저장
--%>
<c:if test="${true}" >
<p>참입니다</p>
</c:if>
<br>
<c:set var="number" value="7" />
<c:if test="${number mod 2 eq 1 }" var="result">
<p>${number } : 홀수</p>
<p>result : ${result }</p>
</c:if>
<br>
<c:set var="number2" value="8" />
<c:if test="${number2 % 2 == 0 }" var="result">
<p>${number2 } : 짝수</p>
<p>result : ${result }</p>
</c:if>
<br>
<h2>ex05_form.jsp 결과</h2>
<c:set var="name">${param.name }"</c:set>
<c:set var="age" value="${param.age }"/>
<p>${name } 님의 나이 : ${age } 세</p>
<c:if test="${age>19}" var="result">
<p><strong>성인</strong>입니다.</p>
</c:if>
<c:if test="${age<=19}" var="result">
<p><strong>미성년자</strong>입니다.</p>
</c:if>
<br>
<h1>주의사항</h1>
<c:if test=" ${true } " var="res_a"/>
<p>res_a : ${res_a }</p>
<p>조건식 EL 앞뒤에 공백이 있으면 false</p>
<br>
<c:if test="100" var="res_b"/>
<p>res_b : ${res_b }</p>
<p>조건식 EL 이 아닌 정수를 사용하면 false</p>
<br>
<c:if test="True" var="res_c"/>
<p>res_c : ${res_c }</p>
<p>true 는 대소문자를 구분하지 않고 true</p>
<br>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex05_form.jsp</title>
</head>
<body>
<h1>if 입력</h1>
<form action="ex04_if.jsp" method="post">
이름 : <input type="text" name="name"/>
<br><br>
나이 : <input type="text" name="age"/>
<br><br>
<input type="submit" value="확인"/>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex06_choose.jsp</title>
</head>
<body>
<h1>choose</h1>
<%--
# <c:choose>
- <c:choose>
<c:when test="조건식_a"> 실행 내용 </c:when>
<c:when test="조건식_b"> 실행 내용 </c:when>
......
<c:otherwise> 실행 내용 </c:otherwise>
</c:choose>
--%>
<c:set var="age">16</c:set>
<h2>
나이 : ${age } 세 <br>
<c:choose>
<c:when test="${age >= 20}">성인</c:when>
<c:when test="${age >= 17}">고등학생</c:when>
<c:when test="${age >= 14}">중학생</c:when>
<c:when test="${age >= 8}">초등학생</c:when>
<c:otherwise>어린이</c:otherwise>
</c:choose>
</h2>
<%-- <h1>ex07_form 결과</h1>
<c:set var="kor" value="${param.kor }"/>
<c:set var="eng" value="${param.eng }"/>
<c:set var="math" value="${param.math }"/>
<c:set var="avg" value="${(kor + eng + math)/3.0}"/>
<c:out value="${avg }"/>
<c:choose>
<c:when test="${avg>=90 }">A</c:when>
<c:when test="${avg>=80 }">B</c:when>
<c:when test="${avg>=70 }">C</c:when>
<c:when test="${avg>=60 }">D</c:when>
<c:otherwise>E</c:otherwise>
</c:choose> --%>
<h2> 학점</h2>
<c:if test="${not (empty papam.kor or empty papam.eng or empty papam.math)}"/>
<c:set var="tot" value="${param.kor +param.eng +param.math }"/>
<c:set var="avg" value="${tot / 3 }"/>
<c:choose>
<c:when test="${avg >= 90 }"><c:set var="grade" value="A"/></c:when>
<c:when test="${avg >= 80 }"><c:set var="grade" value="B"/></c:when>
<c:when test="${avg >= 70 }"><c:set var="grade" value="C"/></c:when>
<c:when test="${avg >= 60 }"><c:set var="grade" value="D"/></c:when>
<c:otherwise><c:set var="grade" value="F"/></c:otherwise>
</c:choose>
<p>총점 : ${tot}</p>
<p>총점 : ${avg}</p>
<p>총점 : ${grade}</p>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex07_form.jsp</title>
<script type="text/javascript">
function check() {
if(form.kor.value==0) {
form.kor.focus();
} else if(form.eng.value==0) {
form.eng.focus();
} else if(form.math.value==0) {
form.math.focus();
} else {
form.submit();
}
}
</script>
</head>
<body>
<!--
# 국어, 영어, 수학 점수를 입력받는 form을 작성
입력한 내용의 성적을 ex06_choose.jsp 에서 확인
- 평균으로 학점을 구하세요( A, B, C, D, F )
모든 과목의 점수가 있어야 결과가 나옴
-->
<form name="form" action="ex06_choose.jsp" method="post">
국어 : <input type="number" name="kor"/> <br>
영어 : <input type="number" name="eng"/> <br>
수학 : <input type="number" name="math"/> <br>
<input type="button" value="제출" onclick="check()">
</form>
<form action="ex06_choose.jsp" method="post">
국어 : <input type="number" name="kor"/> <br>
영어 : <input type="number" name="eng"/> <br>
수학 : <input type="number" name="math"/> <br>
<input type="submit" value="제출"/>
</form>
</body>
</html>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex08_forEach.jsp</title>
</head>
<body>
<h1>forEach</h1>
<%--
# <c:forEach> : for 문을 대체하는 태그
- <c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값"/>
<c:forEach var="변수명" itmes="배열 or 컬렉션"/>
--%>
<h2>일반 forEach</h2>
<c:forEach var="i" begin="1" end="5" step="1">
<p>i : ${i }</p>
</c:forEach>
<h2>향상된 forEach</h2>
<%
String[] colors = { "red", "green", "blue", "orange", "black" };
%>
<c:forEach var="color" items="<%=colors%>">
<span style="color:${color}; font-weight:bold; font-size:25px;">${color }</span>
</c:forEach>
<br>
<h2>varStatus</h2>
<table border="1">
<c:forEach var="color" items="<%=colors%>" varStatus="check">
<tr>
<td>count : ${check.count}</td>
<td>index : ${check.index}</td>
<td>current : ${check.current}</td>
<td>first : ${check.first}</td>
<td>last : ${check.last}</td>
</tr>
</c:forEach>
</table>
<br>
<h3>
# 채크된 항목의 국가를 'ex08_forEach.jsp' 에서 출력 <br> - 전체 항목의 수는 5개 이상
</h3>
<h2>향상</h2>
<c:forEach var="nation" items="${paramValues.nation }">
<p>${nation }</p>
</c:forEach>
<br>
<h2>일반</h2>
<c:forEach var="i" begin="0" end="${fn:length(paramValues.nation) }" step="1">
<p>${paramValues.nation[i] }</p>
</c:forEach>
<h3># 출력할 구구단의 단값을 입력받고, 해당 단의 값을 'ex08_forEach.jsp' 에서 출력</h3>
<table border="1">
<c:set var="d" value="${param.dan }"/>
<c:forEach var="i" begin="1" end="9" step="1">
<tr>
<td>${d} * ${i} = ${d*i }</td>
</tr>
</c:forEach>
</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex09_form.jsp</title>
<!--
# 채크된 항목의 국가를 'ex08_forEach.jsp' 에서 출력
- 전체 항목의 수는 5개 이상
# 출력할 구구단의 단값을 입력받고, 해당 단의 값을 'ex08_forEach.jsp' 에서 출력
-->
</head>
<body>
<h2>국가 선택</h2>
<form action="ex08_forEach.jsp" method="post">
<input type="checkbox" name="nation" value="한">한
<input type="checkbox" name="nation" value="미">미
<input type="checkbox" name="nation" value="일">일
<input type="checkbox" name="nation" value="중">중
<input type="checkbox" name="nation" value="러">러
<br>
<h2>단 선택</h2>
<input type="number" name="dan">단 <br>
<input type="submit" value="submit">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex10_import.jsp</title>
</head>
<body>
<h1>import</h1>
<%--
# <c:import> : <jsp:include> 액션 태그와 같이 외부 파일을 현재 위치에 삽입
- <c:import var="변수명" url="페이지 경로 or URL" scope="접근 범위"/>
* 외부페이지를 변수에 저장
<c:import url="페이지 경로 or URL">
<c:param name="매개변수" value="값"/>
</c:import>
* 전달할 값이 있으면 url 에 직접 추가하거나 <c:param> 태그를 사용
--%>
<c:set var="requestVar" value="import test" scope="request"/>
<c:import var="contents" url="ex11_other.jsp">
<c:param name="data_1" value="JSP"/>
<c:param name="data_2" value="Servlet"/>
</c:import>
<h2>ex11_other.jsp 삽입</h2>
<div>
${contents }
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h2>ex11_other.jsp</h2>
<ul>
<li>저장된 값 : ${requestVar }</li>
<li>data_1 : ${param.data_1 }</li>
<li>data_2 : ${param.data_2 }</li>
</ul>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex12_redirect.jsp</title>
</head>
<body>
<h1>redirect</h1>
<%--
# <c:redirect> : response 객체의 sendRedrect() 와 동일
- <c:redirect url="이동할 경로 or URL"/>
--%>
<c:redirect url="ex13_result.jsp">
<c:param name="data" value="ex12_redirect.jsp 가 보낸 데이터"/>
</c:redirect>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex13_result.jsp</title>
</head>
<body>
<h1>redirect 페이지</h1>
<br>
<h2>data : ${param.data }</h2>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex14_fmt-number_parse.jsp</title>
</head>
<body>
<h1>숫자 포맷</h1>
<%--
# <fmt:formatNumber> : 숫자 포맷 설정
- <fmt:formatNumber var="변수 설정" value="출력할 숫자" type="출력 양식"
groupingUsed="구분 기호 사용 여부" pattern="숫자 패턴" scope="영역"/>
* type : percent, currency(통화), number(일반 숫자, 기본값) 등 지원
groupingUsed : 세 자리마다 콤마를 출력할지 여부 설정, 기본값 true
pattern : 출력할 숫자 양식의 패턴 지정
# <fmt:parseNumber> : 문자열을 숫자 포맷으로 변환
- <fmt:parseNumber var="변수 설정" value="파싱할 문자열" type="출력 양식"
integerOnly="정수만 파싱" pattern="패턴" scope="영역"/>
* type : 문자열의 타입 설정, 기본값 number(숫자)
integerOnly : 정수 부분만 표시할지 여부 설정, 기본값 false
pattern : 문자열의 양식을 패턴으로 지정
--%>
<c:set var="num1" value="12345"/>
<p>콤마 0 : <fmt:formatNumber value="${num1 }"/></p>
<p>콤마 x : <fmt:formatNumber value="${num1 }" groupingUsed="false"/></p>
<br>
<fmt:setLocale value="ko_KR"/><fmt:formatNumber value="${num1 }" type="currency" var="fNum1"/>
<p>한국 통화기호 : ${fNum1 }</p>
<br>
<fmt:setLocale value="en_US"/><fmt:formatNumber value="${num1 }" type="currency" var="fNum1"/>
<p>미국 통화기호 : ${fNum1 }</p>
<br>
<fmt:formatNumber value="0.33" type="percent" var="fNum2"/>
<p>퍼센트 : ${fNum2 }</p>
<br>
<h1>문자열을 숫자로 변경</h1>
<c:set var="num2" value="1,234.01"/>
<p>num2 : ${num2 }</p>
<fmt:parseNumber var="pNum1" value="${num2 }" pattern="00,000.00"/>
<p>소수점 양식 : ${pNum1 }</p>
<fmt:parseNumber var="pNum1" value="${num2 }" integerOnly="true"/>
<p>정수만 표시 : ${pNum1 }</p>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ex15_fmt-date-time.jsp</title>
</head>
<body>
<%--
# <fmt:formatDate> : 날짜와 시간 포맷을 지정
- <fmt:formatDate value="출력 날짜" type="출력 양식" var="변수 설정"
dateStyle="날짜 스타일" timeStyle="시간 스타일" pattern="날짜 패턴"
scope="영역"/>
* type : 출력시 날짜(date), 시간(time), 날짜 및 시간(both) 세 가지 중 선택
dateStyle : default, short, medium(기본값), long, full 중 선택
timeStyle : default, short, medium, long, full 중 선택
pattern : 출력할 날짜 및 시간 양식 지정
--%>
<fmt:timeZone value="GMT-8">
<c:set var="today" value="<%=new java.util.Date() %>"/>
<fmt:formatDate var="time" value="${today }" type="both" dateStyle="full" timeStyle="full"/>
<p> ${time }</p>
</fmt:timeZone>
<fmt:timeZone value="Asia/Seoul">
<fmt:formatDate var="myTime" value="${today }" type="both" pattern="yyyy-MM-dd hh24:mm:ss"/>
<p> ${myTime }</p>
</fmt:timeZone>
</body>
</html>
< File.txt >
파일 처리하는 form 의 메서드 및 enctype
enctype : form data 가 서버로 보내질 때 인코딩 타입
method="post" enctype="multipart/form-data"
업로드 파일이 저장되는 폴더
파일을 업로드하면서 form 을 분석하는 라이브러리
cos.jar
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>fileForm.jsp</title>
<style type="text/css">
table, th, td {
border: 1px solid black;
border-collapse: collapse;
padding: 4px;
}
textarea {
resize: none;
}
</style>
</head>
<body>
<h1>파일 업로드</h1>
<br>
<form action="fileUpload.jsp" method="post" enctype="multipart/form-data">
<table>
<tr>
<th>제목</th>
<td><input type="text" name="subject" size="50"/></td>
</tr>
<tr>
<th>내용</th>
<td><textarea rows="20" cols="52" name="content"></textarea> </td>
</tr>
<tr>
<td colspan="2">
<input type="file" name="upload" size="50"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="upload"/>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 실제 저장되는 폴더 경로
String realFolder = request.getServletContext().getRealPath("/storage");
// 파일 업로드 객체
// - MultipartRequest( request, 저장경로, 파일크기, 인코딩 방식, 파일정책 )
// 파일크기 : 1024*1024 = 1MB
// * new DefaultFileRenamePolicy()
// : 업로드시 동일한 이름의 파일이 있을 경우, 기본 파일 이름 뒤에 숫자를 붙여서 저장
MultipartRequest mr = new MultipartRequest(request, realFolder, 1024*1024*5, "utf-8", new DefaultFileRenamePolicy());
String subject = mr.getParameter("subject");
String content = mr.getParameter("content");
// 업로드 파일명
// fileForm 에서 input > name = upload
String originalFileName = mr.getOriginalFileName("upload");
// 서버에 저장된 파일명
String fileName = mr.getFilesystemName("upload");
// 파일 객체
File file = mr.getFile("upload");
long fileSize = 0;
if(file != null){
fileSize = file.length();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>fileUpload.jsp</title>
</head>
<body>
<h1>업로드 확인</h1>
<br>
<ul>
<li> 제목 : <%=subject %></li>
<li> 내용 : <%=content %></li>
<li> 저장위치 : <%=realFolder %></li>
<li> 업로드한 파일명: <%=originalFileName %></li>
<li> 서버에 저장된 파일명: <%=fileName %></li>
</ul>
</body>
</html>
파일 저장할 폴더 생성
C:\Users\bh788\Desktop\JSP.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\14_File\storage
에 파일 생성
같은 파일 이름이 중복으로 저장되면
파일 이름 뒤에 숫자가 생기며 저장됨
EX) file, file2, file3.....