KIC/JSP

[JSP] notice

octopengj 2020. 9. 21. 23:15

1. WebContent에 notice 폴더 생성

2. notice폴더에 2020814.txt 파일 생성

3. WebContent에 index.jsp 파일 생성

 

notice 폴더 생성

 

2020814.txt 생성
index.jsp 생성

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
	function test(){
//형식) window.open(1.불러온 문서명 2. 문서의 타이틀명 3. 창의 옵션(left, top, width, height))
		window.open('/ServletTest/Notice', 'w', 'left=300, top=200, width=500, height=400')		
	}
</script>
</head>
<body onload="test()">
<h2>Welcome to JSP Study Site!</h2>
</body>
</html>

index.jsp 코드

 

 

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Notice
 */
@WebServlet("/Notice")
public class Notice extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");//문서유형 정해준다.
		PrintWriter out=response.getWriter();
		out.println("<html><head></head>");
		out.println("<body>");
		//접속할때마다 공지사항창을 띄우기
		out.println("<h2>오늘의 공지사항</h2>");
		// /notice/2020814.txt
		String fileName=""; // 불러올 파일명을 저장
		// 날짜를 출력 
		Calendar cal = Calendar.getInstance();
		fileName+=cal.get(Calendar.YEAR);//"2020"
		fileName+=cal.get(Calendar.MONTH)+1; //0~11+1을 줘야 정상적인 월 표시
		//"20208"
		fileName+=cal.get(Calendar.DATE); //"2020814"
		fileName+=".txt";
		
		// 절대경로명+파일명
		String realPath="C:/webtest/4.jsp/sou/ServletTest/WebContent/notice/"+fileName;
		System.out.println("realPath=>"+realPath);
		try {
			//FileInputStream(영문위주) or FileReader(한글)
			BufferedReader br = new BufferedReader(new FileReader(realPath));
			String line=""; // 한줄씩 읽어들여서 저장할 변수
			while((line=br.readLine())!=null) {
				out.println(line+"<br>"); // 클라이언트의 브라우저로 전송
			}
		} catch(IOException e) {
			System.out.println("불러올 파일의 경로와 파일명을 확인요망!"+e);
		} catch(Exception e) {
			System.out.println("오늘 공지사항이 없습니다."+e);
		}
		out.println("<p align=center>");
		out.println("<hr>");
		out.println("<input type='submit' value='창닫기' onclick='window.close()'>");
		out.println("</body>");
		out.println("</html>");
		out.close();
	}

}

notice.java 코드

 

 

index.jsp에서 실행

 

실행결과창