0

当我向我的 servlet 发出 get 请求时,我得到了这样的响应:此 URL 不支持 HTTP 方法 GET。在本地我有同样的错误,但随后有查询的输出这是代码:

    import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;

/**
 * This servlet responds to the request corresponding to users. The class
 * creates and manages the User Entity
 * 
 * @author
 */
@SuppressWarnings("serial")
public class UserServlet extends HttpServlet {

  private static final Logger logger = Logger.getLogger(UserServlet.class.getCanonicalName());

    /**
     * Get the requested customer entities in JSON format
     */
  @Override
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

    super.doGet(req, resp);
    logger.log(Level.INFO, "Obtaining Customer listing");
    String searchFor = req.getParameter("username");
    String password= req.getParameter("password");
    PrintWriter out = resp.getWriter();
    Iterable<Entity> entities = null;
    if (searchFor == null || searchFor.equals("")) {
     // entities = User.getAllUsers();
     // out.println(Util.writeJSON(entities));
    } else {
      entities = User.getUser(searchFor);
      Entity result=entities.iterator().next();
      if(result!=null){
          if(result.getProperty("password").equals(password)){        
              out.println(Util.writeJSON(entities));
             // resp.sendError(HttpServletResponse.SC_ACCEPTED);
          }else{
              resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
          }
      }else{
          resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
      }

    }
    return;
  }

    /**
     * Insert the new customer
     */
  protected void doPut(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
    logger.log(Level.INFO, "Creating Customer");
    String firstName = req.getParameter("name");
    String lastName = req.getParameter("surname");
    String phone = req.getParameter("phone");
    String address = req.getParameter("address");
    String city = req.getParameter("city");
    String state = req.getParameter("state");
    String zip = req.getParameter("zip");
    String email = req.getParameter("email");
    String username=req.getParameter("username");
    String password=req.getParameter("password");
    User.createOrUpdateCustomer( firstName, lastName, phone, address, city, state, zip, email, username, password);

  }

    /**
     * Delete the customer
     */
  protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
    String customerName = req.getParameter("id");
    logger.log(Level.INFO, "Deleting User {0}", customerName);
    Key key = KeyFactory.createKey("Customer", customerName);
    try {
        //CASCADE_ON_DELETE
      Iterable<Entity> entities = Util.listChildKeys("Order", key);
      final List<Key> orderkeys = new ArrayList<Key>();
      final List<Key> linekeys = new ArrayList<Key>();
      for (Entity e : entities) {
        orderkeys.add(e.getKey());
        Iterable<Entity> lines = Util.listEntities("LineItem", "orderID",String.valueOf(e.getKey().getId()));
        for(Entity en : lines){
          linekeys.add(en.getKey());
        }
      }
      Util.deleteEntity(linekeys);
      Util.deleteEntity(orderkeys);
      Util.deleteFromCache(key);
      Util.deleteEntity(key);
    } catch (Exception e) {
      String msg = Util.getErrorResponse(e);
      resp.getWriter().print(msg);
    }
  }

    /**
     * Redirect the call to doDelete or doPut method
     */
  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
    String action = req.getParameter("action");
    //resp.getWriter().print(req.getParameterMap());
//resp.getWriter().print(action);
    if (action.equalsIgnoreCase("delete")) {
      doDelete(req, resp);
      return;
    } else if (action.equalsIgnoreCase("registra")) {
             doPut(req, resp);
             resp.sendError(2);
             resp.sendRedirect("/index.jsp");
      return;
    }
    doGet(req, resp);
  }
}

看了几篇帖子,没有找到答案

4

1 回答 1

0

创建一个简单的 BaseServlet 扩展 HttpServlet;然后创建 UserServlet 扩展 BaseServlet

于 2013-07-21T17:48:44.313 回答