一个 java Servlet 处理多个请求

解决方案 »

  1.   

    可以在URL中带一个method参数,然后根据method的值,在doGet或doPost方法中判断是调用哪个方法,下面就是一个例子。
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    String method = request.getParameter("method");
    if (method != null && "first".equals(method)) {
    this.first(request, response);
    } else if (method != null && "last".equals(method)) {
    this.last(request, response);
    } else if (method != null && "next".equals(method)) {
    this.next(request, response);
    } else if (method != null && "previous".equals(method)) {
    this.previous(request, response);
    }
    } private void previous(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("上一页");
    if (page.getCurrPageNO() - 1 < 1) {
    ;
    } else {
    page.setCurrPageNO(page.getCurrPageNO() - 1);
    }
    common(request, response);
    } private void next(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("下一页");
    if (page.getCurrPageNO() + 1 > page.getAllPageNO()) {
    ;
    } else {
    page.setCurrPageNO(page.getCurrPageNO() + 1);
    }
    common(request, response);
    } private void first(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("第一页");
    page.setCurrPageNO(1);
    common(request, response);
    } private void last(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("最后页");
    page.setCurrPageNO(page.getAllPageNO());
    common(request, response);
    } private void common(HttpServletRequest request, HttpServletResponse response)
    throws IOException {
    int start = (page.getCurrPageNO() - 1) * page.getPerPageNO();
    int size = page.getPerPageNO();
    List<Goods> goodsList = pageDao.fy(start, size);
    request.getSession().setAttribute("GoodsList", goodsList);
    response.sendRedirect("goods/index.jsp");
    } public void destroy() {
    }
    }
      

  2.   

    一般情况下用一个隐含域例如method付不同的值,再在servlet中用if判断不同的值,执行不同的操作