package com.beer.web;
import java.io.IOException;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.beer.business.domain.Beer;
import com.beer.business.service.BeerService;
import com.beer.business.service.BeerServiceImpl;
import com.beer.business.service.LoginService;
import com.beer.business.service.LoginServiceImpl;
import com.beer.business.service.UserException;
public class ServletController extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String BEER_PAGE = "beer";
private static final String LOGIN_PAGE = "index";
private static final String EDIT_BEER_PAGE = "editbeer";
private static final String ERROR_PAGE = "error";
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
doPost(req, res);
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
// getParameter is an example of getting a parameter from an HTML form
String fromPage = req.getParameter("FROM_PAGE");
String toPage = req.getParameter("TO_PAGE");
String returnPage = null;
System.out.println("In FROM_PAGE=" + fromPage);
System.out.println("In TO_PAGE=" + toPage);
processRequest(req);
if (fromPage != null && fromPage.equalsIgnoreCase(LOGIN_PAGE)) {
LoginService loginService = new LoginServiceImpl();
try {
loginService.login(req.getParameter("username"), req
.getParameter("password"));
} catch (UserException e) {
toPage = ERROR_PAGE;
}
BeerService beerService = new BeerServiceImpl();
StringBuffer beerBuffer = new StringBuffer("Index Beer: ");
Collection beer = beerService.findAll();
for (Iterator it = beer.iterator(); it.hasNext();) {
Beer element = (Beer) it.next();
beerBuffer.append(element.getBrewer());
beerBuffer.append("=" + element.getName());
beerBuffer.append("</br>");
}
req.setAttribute("beer", beerBuffer.toString());
req.setAttribute("userMessage", "Logged in as "
+ req.getParameter("username"));
}
if (fromPage != null && fromPage.equalsIgnoreCase(EDIT_BEER_PAGE)) {
Beer beer = new Beer();
beer.setBrewer(req.getParameter("brewer"));
beer.setName(req.getParameter("beer_name"));
beer.setDateReceived("2006-08-20");
BeerService beerService = new BeerServiceImpl();
beerService.create(beer);
}
returnPage = toPage + ".jsp";
System.out.println("returnPage=" + returnPage);
RequestDispatcher rd = req.getRequestDispatcher(returnPage);
rd.forward(req, res);
}
public Map processRequest(HttpServletRequest req) {
Enumeration enumeration1 = null;
Map attributeMap = new HashMap();
enumeration1 = req.getParameterNames();
do {
if (!enumeration1.hasMoreElements())
break;
String s2 = (String) enumeration1.nextElement();
if (s2 != null && (s2 instanceof String)) {
String s3 = req.getParameter((String) s2);
System.out.println("ELEMENTs2:" + s2);
System.out.println("ELEMENTs3:" + s3);
attributeMap.put(s2, s3);
}
} while (true);
return attributeMap;
}
}