Head First Servlet & JSP 에 설명된 초 간단 MVC
form.html 에서 form을 사용해서 request를 날리는데 서블릿이 받는다.
request를 받은 서블릿은 내부 처리를 한 후에 서블릿에서 바로 html을 그려주는게 아니라
view를 지정해 html을 그려준다
BeerSelect.java
더보기
package net.claztec.lab.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.claztec.lab.model.BeerExpert;
/**
* Servlet implementation class BeerSelect
*/
public class BeerSelect extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BeerSelect() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String c = request.getParameter("color");
BeerExpert be = new BeerExpert();
List result = be.getBrands(c);
// 기존 Servlet에서 처리
// response.setContentType("text/html");
// PrintWriter out = response.getWriter();
// out.println("Beer Selection Advice <br>");
// Iterator it = result.iterator();
// while(it.hasNext()) {
// out.println("<br>try: " + it.next());
// }
// MVC로 View를 result.jsp로 위임
request.setAttribute("styles", result);
RequestDispatcher view = request.getRequestDispatcher("result.jsp");
view.forward(request, response);
}
}
서블릿에서 RequestDispatcher를 사용하는 점은 몰랐었다.