Jsp-02.bulitin_object

이현주·2023년 10월 1일
0

JSP

목록 보기
2/11

[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>


profile
졸려요

0개의 댓글