- JSP에서 코드의 가독성이 떨어지는 단점을 보완하고자 만들어진 태그 라이브러리
- jakarta.apache.org -> Taglibs -> Apache Standard Taglib 클릭 -> standard 1.1 다운로드 -> binaries ->
-> jakarta-taglibs-standard-1.1.2.zip 다운로드 -> 압축풀고 lib에 jar파일 두개 복사해서 톰캣 lib 에 추가
- Core라이브러리 : 출력, 제어문, 반복문 같은 기능이 포함되어 있음
<%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix="c" %>
- 출력태그 : <c:out> JSP의 표현식을 대체하는 것으로 가장 많이 사용
<c:out value="출력값" default="기본값" escapeXml="true or false">
- 변수 설정 태그 : <c:set>
<c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" >
- 변수를 제거하는 태그 : <c:remove>
<c:remove var="변수명" scope="범위">
- 예외 처리 태그 : <c:catch> body 위치에서 실행되는 코드의 예외를 잡아내는 역할
<c:catch var=:변수명">
- 제어문(if)태그 : <c:if> 조건문에서 사용
<c:if test="조건" var="조건 처리 변수명" scope="범위">
- 제어문(switch) 태그 : <c:choose> 자바의 switch문과 같지만, 조건에 문자열 비교도 가능
<c:choose>
<c:when test="조건"> 처리 내용 </c:when> //조건에 만족한 경우 사용
<c:otherwise> 처리 내용> </c:otherwise> //조건을 만족하지 못한 경우에 사용
</c:choose>
- 반복문(for 태그: <c:forEach>) 객체 전체에 걸쳐 반복 실행을 할 때 사용
<c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수">
- 페이지 이동태그 : <c:redirect> 지정한 다른 페이지로 이동
<c:redirect url="url">
- 파라미터 전달 태그 : <c:param> 태그의 URL뒤에 파라미터로 붙여서 사용
<c:param name="파라미터명" value="값">
- StringTokenizer 태그 : <c:forToken>
- URL 생성 태그 : <c:url> 쿼리 파라미터로부터 URL을 생성
-
www.servlets.com 접속 후 좌측의 com.oreillyservlet 클릭 -> 아래쪽 download에서 zip파일 다운로드
-> 압축 풀고 lib에서 cos.jar 파일을 WEB-INF lib에 추가
- form 태그 안에 enctype ="multipart/form-data" 추가
- C:\CodeLab\JSP\projects.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ 경로에 저장
<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
String path = request.getSession().getServletContext().getRealPath("fileFolder");
int size = 1024 * 1024 * 10; //10M
String file = "";
String oriFile = "";
try{
MultipartRequest multi = new MultipartRequest(request, path, size, "EUC-KR", new DefaultFileRenamePolicy());
Enumeration files = multi.getFileNames();
String str = (String)files.nextElement();
file = multi.getFilesystemName(str);
oriFile = multi.getOriginalFileName(str);
out.println(path);
} catch (Exception e) {
e.printStackTrace();
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
file upload success!
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<h2>파일 업로드</h2>
<form action="FileUpLoadProc.jsp" method="post" enctype="multipart/form-data">
<table width="350" border="1" bordercolor="gray">
<tr height="40">
<td width="150">이름</td>
<td width="200"><input type="text" name="name"></td>
</tr>
<tr height="40">
<td width="150">파일 선택</td>
<td width="200"><input type="file" name="filedata" ></td>
</tr>
<tr height="40">
<td colspan="2" align="center"><input type="submit" value="파일 업로드"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<%@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"%>
<%
request.setCharacterEncoding("UTF-8");
//프로젝트 내에 만들어질 폴더를 저장할 이름 변수 선언
String realfolder="";
//실제 만들어질 폴더명을 설정
String savefolder="/upload";
//한글 설정
String encType ="UTF-8";
//저장될 파일 사이즈를 설정
int maxSize=1024 * 1024* 5; //5M
//파일이 저장될 경로값을 읽어오는 객체
ServletContext context = getServletContext();
realfolder = context.getRealPath(savefolder);
try {
//클라이언트로부터 넘어온 데이터를 저장해주는 객체
MultipartRequest multi = new MultipartRequest(request, realfolder, maxSize, encType, new DefaultFileRenamePolicy());//파일이름 변경을 자동으로해주는 클래스
%>
당신의 이름은 <%=multi.getParameter("name") %>
<%
out.println(realfolder);
} catch (Exception e){
e.printStackTrace();
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>