我应该在JavaServlet中正确使用PRG模式,还是应该做其他事情?

我应该在JavaServlet中正确使用PRG模式,还是应该做其他事情?,java,post,servlets,design-patterns,get,Java,Post,Servlets,Design Patterns,Get,我有这个控制器,在Get方法中我使用请求分派器,在Post中我使用重定向 @WebServlet(name = "ControllerOrder", value = "/User/Order") public class ControllerOrder extends HttpServlet { private static final Logger LOGGER = Logger.getLogger(ControllerOrder.class);

我有这个控制器,在Get方法中我使用请求分派器,在Post中我使用重定向

@WebServlet(name = "ControllerOrder", value = "/User/Order")
public class ControllerOrder extends HttpServlet {
    private static final Logger LOGGER = Logger.getLogger(ControllerOrder.class);
    private MySQLCarCategoryDao categoryDao;
    @Override
    public void init() throws ServletException {
        super.init();
        MySQLDAOFactory dao = (MySQLDAOFactory) getServletContext().getAttribute("MySQLFactory");
         categoryDao = (MySQLCarCategoryDao) dao.getCarCategoryDao();
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ImageManager manager = ImageManager.getInstance();
        List<CarCategory> carCategories = categoryDao.findExistingCarC();
        List<ToggleButton> buttons = IntStream.range(0, carCategories.size())
                .mapToObj(i -> {
                    ToggleButton button = new ToggleButton();
                    button.setIcon("img:data:image/png;base64," + manager.getBase64String(manager.imageToByte(carCategories.get(i).getCarCategoryImage())));
                    button.setValue(carCategories.get(i).getCarCategory());
                    button.setSlot(i+1+"");
                    return button;
                })
                .collect(Collectors.toList());
        ObjectMapper mapper = new ObjectMapper();
        try {
            request.setAttribute("CarCategories",carCategories);
            request.setAttribute("CarCategoriesButtons",mapper.writeValueAsString(buttons));
        } catch (JsonProcessingException e) {
            LOGGER.error(e);
        }
        request.getRequestDispatcher("/WEB-INF/view/order.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        String login = (String) session.getAttribute("Login");
        String userAddress = request.getParameter("userAddress");
        String userDestination = request.getParameter("userDestination");
        String[] stingNumbers = request.getParameterValues("numOfPas");
        String[] categories = request.getParameterValues("categories");
        if(stingNumbers != null && stingNumbers.length > 0&&categories != null && categories.length > 0) {
            OrdersMaker maker = new OrdersMaker();
           String message = maker.makeOrder(stingNumbers,categories,userAddress,userDestination,login);
            if(message.startsWith("false")){
                response.sendRedirect(request.getContextPath() + "/User/Order?NotAvailable=" + message);
                return;
            }
            response.sendRedirect(request.getContextPath() + "/User/Order?takenTime=" + message);
        }
    }
}
@WebServlet(name=“ControllerOrder”,value=“/User/Order”)
公共类ControllerOrder扩展了HttpServlet{
私有静态最终记录器=Logger.getLogger(ControllerOrder.class);
私有MySQLCarCategoryDao categoryDao;
@凌驾
public void init()引发ServletException{
super.init();
MySQLDAOFactory dao=(MySQLDAOFactory)getServletContext().getAttribute(“MySQLFactory”);
categoryDao=(MySQLCarCategoryDao)dao.getCarCategoryDao();
}
@凌驾
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
ImageManager=ImageManager.getInstance();
List carCategories=categoryDao.findExistingCarC();
列表按钮=IntStream.range(0,carCategories.size())
.mapToObj(i->{
ToggleButton=新的ToggleButton();
setIcon(“img:data:image/png;base64,”+manager.getBase64String(manager.imageToByte(carCategories.get(i.getCarCategoryImage())));
setValue(carCategories.get(i).getcarcategority());
按钮。设置批次(i+1+“”);
返回按钮;
})
.collect(Collectors.toList());
ObjectMapper mapper=新的ObjectMapper();
试一试{
request.setAttribute(“CarCategories”,CarCategories);
setAttribute(“CarCategoriesButtons”,mapper.writeValueAsString(buttons));
}捕获(JsonProcessingException e){
错误(e);
}
request.getRequestDispatcher(“/WEB-INF/view/order.jsp”).forward(请求,响应);
}
@凌驾
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
HttpSession session=request.getSession();
String login=(String)session.getAttribute(“login”);
字符串userAddress=request.getParameter(“userAddress”);
字符串userDestination=request.getParameter(“userDestination”);
字符串[]stingNumbers=request.getParameterValues(“numofas”);
String[]categories=request.getParameterValues(“categories”);
如果(stingNumbers!=null&&stingNumbers.length>0&&categories!=null&&categories.length>0){
OrdersMaker maker=新的OrdersMaker();
String message=maker.makeOrder(StingNumber、categories、userAddress、userDestination、login);
if(message.startsWith(“false”)){
response.sendRedirect(request.getContextPath()+“/User/Order?NotAvailable=“+message”);
返回;
}
response.sendRedirect(request.getContextPath()+“/User/Order?takenTime=“+message”);
}
}
}
我知道你可以说这个模式很容易理解,但我想知道我做得很好。谢谢你的回答