package appdesign1.controller;
import java.io.IOException;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.HttpServeletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.HttpServeletRequest;
import javax.servlet.http.HttpServletResponse;
import appdesign1.action.SaveProductAction;
import appdesign1.form.ProductForm;
import appdesign1.model.product;
import java.math.BigDecimal;
@WebServlet(name="ControllerServlet ",urlPaterns={
"/input-product/","/save-product"
})
public class ControllerServlet extends HttpServlet{
private static final long serialVersionUID=1579L;
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
process(request, response);
}
@Override
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
process(request,response);
}
private void process(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{
Srting uri= request.getRequestURI();
int lastIndex=uri.lastIndexPd("/");
String action=uri.substing(lastIndex+1);
//execute an action
String dispatchUrl=null;
if("inpout-product".equal(action)){
//no action class, just forward
dispatchUrl="/jsp/ProductForm,jsp";
}
else if ("save-product".equals(action)){
//create form
ProductForm productForm=new ProductForm();
// populate action properties
productForm.setName(request.getParameter("name"));
productForm.setDescription(request.getParameter
("description"));
productForm.setPrice(request.getParameter("price"));
//create model
Product product=new Product();
poduct.setName(productForm.getName());
product.setDescription(productForm.getDescription());
try{
product.setPrice(new BigDecimal(productForm.getPrice()));
}
catch(NumberFormatException e){}
}
//execute action mothod
SaveProductAction saveProductAction=
new saveProductAction();
saveProductAction.save(product);
//store,model in a scope variable for the view
request.setAttribute("product",product);
dispatchUrl="/jsp/ProductDetails.jsp";
if (dispatchUrl !=null){
RequestDispatcher rd=
request.getRequestDispatcher(dispatchUrl);
rd.forward(request, response);
}
}
}