Servlet - 공지파일 예제
Temp
2010. 9. 13. 17:56
* 현재 날짜로 된 문서가 notice폴더에 있다면 문서의 내용을 Servlet으로 표현
NoticeServlet.java - 2008528.txt 파일 필요(내용포함)
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.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class NoticeServlet extends javax.servlet.http.HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 응답시 한글 처리 response.setContentType("text/html;charset=euc-kr"); // 요청 당시 날짜 구하기 Calendar now = Calendar.getInstance(); int y = now.get(Calendar.YEAR); int m = now.get(Calendar.MONTH)+1; // 1월이 0으로 인식된다. int d = now.get(Calendar.DAY_OF_MONTH); String c_day = String.valueOf(y) + String.valueOf(m) + String.valueOf(d) + ".txt"; // 2008528.txt String path = "/notice/" + c_day; //위의 상대경로를 절대 경로로 변환한다. path = getServletContext().getRealPath(path); // 현재 사용되고 있는 폴더(Context)에 path의 내용을 더하여 절대경로로 변환해 준다. //응답을 하기 위한 준비 PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println(" "); out.println(" <TABLE style="BORDER-COLLAPSE: collapse" border=1 cellSpacing=0 width=600><TBODY></TBODY></TABLE>"); out.println(" <TR>"); out.println(" <TD style="COLOR: blue" width="100%">"); //공지 파일로 부터 자원을 읽어 표현하기 위해 스트림 준비 BufferedReader in = null; try{ // 현재 날짜와 일치하는 파일이 있다면 읽어서 표현한다. in = new BufferedReader(new FileReader(path)); // 이때 현재 날짜로 된 파일이 없다면 FileNotFoundException발생 String msg = null; while((msg = in.readLine()) !=null) out.println(msg+ "<br /> "); }catch(Exception e){ out.println("오늘은 공지된 사항이 없습니다."); }finally{ try{ if(in != null) in.close(); }catch(Exception e){} } out.println(" </TD>"); out.println(" </TR>"); out.println(" "); out.println(""); out.close(); } }
notice.html 자바스크립트를 활용해 창띄우기
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> <script type="text/javascript"> function ex(){ window.open("/0528_Web/NoticeServlet" , "" , "width=604 , height=600"); } </script> </head> <h2>Notice Servlet!!</h2>