package com.rlovep.servlet;
import java.io.IOException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.rlovep.service.IDinnerTableService;
import com.rlovep.utils.BeanFactory;
import com.rlovep.utils.WebUtils;
import com.rlovep.service.IFoodService;
import com.rlovep.service.IFoodTypeService;
import com.rlovep.service.IOrderDetailService;
import com.rlovep.service.IOrdersService;
public abstract class BaseServlet extends HttpServlet {
/**
* @Fields serialVersionUID : TODO
*/
private static final long serialVersionUID = 1L;
//创建service,子类需要能够访问,采用protected
protected IDinnerTableService tableService=BeanFactory.getInstance("dinnerTableService", IDinnerTableService.class);
protected IFoodTypeService foodTypeService = BeanFactory.getInstance(
"foodTypeService", IFoodTypeService.class);
protected IFoodService foodService = BeanFactory.getInstance("foodService",
IFoodService.class);
protected IOrdersService ordersService = BeanFactory.getInstance("ordersService",
IOrdersService.class);
protected IOrderDetailService orderDetailService= BeanFactory.getInstance("orderDetailService",
IOrderDetailService.class);
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//保存跳转资源 方法返回值
Object returnValue=null;
//获取操作类型:对应实际servlet中的方法
String methodName = request.getParameter("method");
//获得运行时类
Class<? extends BaseServlet> clazz = this.getClass();
try {
//获得方法值
Method method = clazz.getDeclaredMethod(methodName,HttpServletRequest.class,HttpServletResponse.class);
//调用方法
returnValue = method.invoke(this, request,response);
} catch (Exception e) {
e.printStackTrace();
returnValue="/error/error.jsp";
} finally {
if(returnValue!=null)
//跳转
WebUtils.goTo(request, response, returnValue);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}