The class BeerExpert is about to do the magic of selecting a couple of beers accordingly to the color specified by the user.
In this naive implementation, our model is going to perform a real poor magic:
package model03;
import java.util.ArrayList;
import java.util.List;
public class BeerExpert {
public List<String> getBrands(String color) {
List<String> brands = new ArrayList<String>();
if(color.equals("amber")) {
brands.add("Jack Amber");
brands.add("Red Moose");
}
else {
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
return(brands);
}
}To use this model, we change slightly our controller:public class BeerSelector extends HttpServlet {
private BeerExpert expert = new BeerExpert();
private void printAdvice(PrintWriter out, String color) {
List<String> beers = expert.getBrands(color);
Iterator<String> it = beers.iterator();
while(it.hasNext())
out.println(it.next() + "<br />");
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ...
out.println("Beer Selection Advice: <br />");
// out.println("<p>Got beer color " + request.getParameter("color") +"</p>");
printAdvice(out, request.getParameter("color"));
// ...
}
}We create a private method in the servlet, printAdivice(), that uses the BeerExpert to get the beers list and then writes them in the PrintWriter.We just change a line in the processRequest(), instead of echoing the color passed to the servlet, we call the newly created printAdvice() method.
I wrote this post while reading the third chapter of Head First Servlet and JSP, a fun ad interesting book on Java EE.
No comments:
Post a Comment