[result.jsp]
<%@page import="java.net.URLDecoder"%>
<%@page import="java.io.File"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 요청 인코딩
request.setCharacterEncoding("UTF-8");
// 요청 파라미터
String dir = request.getParameter("dir");
String filename = URLDecoder.decode(request.getParameter("filename"), "UTF-8");
// dir의 realPath
String realPath = application.getRealPath(dir);
// File 객체 생성
File file = new File(realPath, filename);
// 결과 화면 만들기
if(!file.exists()){
out.println("<div>" + filename + " 파일이 생성되지 않았습니다.</div>");
} else {
out.println("<div>" + filename + " 파일이 생성되었습니다.</div>");
}
%>
[save.jsp]
<%@page import="java.net.URLEncoder"%>
<%@page import="java.io.FileWriter"%>
<%@page import="java.io.BufferedWriter"%>
<%@page import="java.io.File"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 요청 인코딩
request.setCharacterEncoding("UTF-8");
// 요청 파라미터
String createdAt = request.getParameter("createdAt");
String title = request.getParameter("title");
String content = request.getParameter("content");
// 요청 파라미터를 작성일자_제목.txt 파일에 저장하기
// 저장할 디렉터리 경로
String realPath = application.getRealPath("storage");
// 저장할 디렉터리가 없으면 생성
File dir = new File(realPath);
if(!dir.exists()){
dir.mkdirs();
}
// 저장할 파일명
String filename = createdAt + "_" + title + ".txt";
// 저장할 파일의 File 객체
File file = new File(dir, filename);
// 문자 기반 파일 출력 스트림 생성
BufferedWriter bout = new BufferedWriter(new FileWriter(file));
// 파일로 데이터 보내기 (파일 만들기)
bout.write("제목 : " + title + "\n");
bout.write("내용\n");
bout.write(content);
bout.flush();
bout.close();
// 파일 생성 여부를 확인하는 xx.jsp로 이동
response.sendRedirect(request.getContextPath() + "/ex02_builtin_object/result.jsp?dir=storage&filename=" + URLEncoder.encode(filename, "UTF-8"));
%>
[write.jsp]
<%@page import="java.time.LocalDate"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>작성화면</title>
</head>
<body>
<div>
<form method="post" action="<%=request.getContextPath()%>/ex02_builtin_object/save.jsp">
<div>
<label for="created_at">작성일자</label>
<input type="text" id="created_at" name="createdAt" value="<%=LocalDate.now()%>">
</div>
<div>
<label for="title">제목</label>
<input type="text" id="title" name="title">
</div>
<div>
<textarea name="content" rows="5" cols="50" placeholder="내용"></textarea>
</div>
<div>
<button type="submit">작성완료</button>
<button type="reset">다시작성</button>
</div>
</form>
</div>
</body>
</html>

