오늘 날짜 파일로 팝업창 띄우기 예제

202123.txt

팝업창에 띄울 본문 내용

Calendar 내장객체를 통해 오늘 날짜.txt 를 불러올 예정

index.jsp

화면에 띄울 내용

자바스크립트 이용하여 서블릿파일로 넘겨 창을 띄움

Notice.java(servlet)

실행될때마다 계속 팝업창이 새로 띄워져야 하므로 doGet()메소드 사용

팝업창 본문 내용으로 불러올 파일을 한줄씩 읽어들여서 출력

 

 

- 202123.txt

 

- index.jsp

 

- Notice.java(servlet)

@WebServlet("/Notice")
public class Notice extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
   						throws ServletException, IOException {
		// TODO Auto-generated method stub
		//응답객체의 컨텐츠 타입 설정(html문서로 한글처리함)
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println("<html><head></head>");
		out.println("<body>");
		//--------------------------------
		out.println("<h2>오늘의 공지사항</h2>");
		//notice.202123.txt
		String fileName="";//오늘의 날짜저장(파일명)
		Calendar cal = Calendar.getInstance();
		fileName += cal.get(Calendar.YEAR);//형식) 날짜객체명.get(정적상수)->2021
		fileName += cal.get(Calendar.MONTH)+1;//0~11 +1
		fileName += cal.get(Calendar.DATE);//윤년도 자동계산
		fileName += ".txt";
		//-------txt파일경로(절대경로)
		String realPath="C:\\webtest\\4.jsp\\source\\ServletTest\\WebContent\\notice\\"+fileName;
		System.out.println(realPath);//확인용
		
		try {
			//FileInputStream(영문) or FileReader(한글)
			BufferedReader br = new BufferedReader(new FileReader(realPath));
			String line = "";//한줄씩 읽어들여서 저장할 변수
			while((line=br.readLine())!=null) {
				out.println(line+"<br>");//클라이언트의 브라우저에 출력됨
			}
			br.close();
		}catch(IOException e){
			System.out.println("불러올 파일의 경로와 파일명을 다시 확인해주세요->"+e);
		}catch(Exception e) {
			System.out.println("오늘 공지사항이 없습니다.");
		}
		//--------------------------------
		out.println("<p align=center>");
		out.println("<hr>");
		//submit을 클릭하면 onclick 속성에 지정된 스크립트 실행
		out.println("<input type='submit' value='창닫기' onclick='window.close()'>");
		out.println("</body>");
		out.println("</html>");	
	}
}

* 매개변수가 request, response 객체인 것을 보고 이 메소드가 웹과 관련하여 요청에 응답해주는 기능을 한다는 것을 알 수 있다. 

* request객체: 클라이언트가 서버에게 데이터를 요청하는데에 관여하는 객체

* response객체: 서버가 클라이언트에게 데이터를 응답하는데에 관여하는 객체

 

 

결과창- 창닫기 버튼 누르면 팝업창 꺼짐

새로고침-> 다시 팝업창 뜸(doGet()메소드)

 

+ Recent posts