브라우저에서 전송된 주소를 파일에 저장하는 기능을 MVC패턴으로 구현한 예제 (2개의 jsp와 1개의 클래스로 구성)
addrController.jsp
<%
AddrModel m = new AddrModel(this, request);
m.saveAddr();
request.setAttribute("addr", m.getAllAddr());
%>
<jsp:forward page="/addrView.jsp"/>
addrModel.java
package sample;
import java.io.*;
import java.util.Vector;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
public class AddrModel {
HttpServletRequest request;
HttpServlet servlet;
String filePath;
public AddrModel(HttpServlet servlet, HttpServletRequest request) throws IOException{
this.request = request;
this.servlet = servlet;
filePath = servlet.getServletContext().getRealPath("/WEB-INF/addr.txt");
File f = new File(filePath);
if(!f.exists()){
f.createNewFile();
}
}
public void saveAddr()throws IOException {
String addr = request.getParameter("addr");
if(addr==null || addr.equals(""))return;
PrintWriter pw = null;
pw = new PrintWriter(new FileWriter(filePath,true));
pw.println(addr);
pw.close();
}
public Vector<String> getAllAddr()throws IOException {
Vector<String> a = new Vector<String>();
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line = null;
while((line=br.readLine())!=null){
a.add(line);
}
br.close();
return a;
}
}
addrView.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.util.Vector" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Vector<String> addr = (Vector<String>)request.getAttribute("addr");
for(int i=0;i<addr.size();i++){
out.println(addr.get(i)+"<br>");
}
%>
</body>
</html>