오늘 날짜 파일로 팝업창 띄우기 예제
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()메소드)