我在GAE上构建了一个服务器,它通过HTTP处理6种不同类型的请求,所有这些请求都涉及从数据存储中创建、更新或删除对象。这个最好的设计是什么?我会告诉你我目前的设计,并表达几个其他。
例如:
  public void doPost(HttpServletRequest request, HttpServletResponse response) {
        if (request.getParameter("action").equals("action_1")) {..code..}
        if (request.getParameter("action").equals("action_2")) {..code..}
        .
        .
        .
        if (request.getParameter("action").equals("action_n")) {..code..}
  }2._Similar到上面,但不是这里的代码,这个servlet只是充当一个集中式servlet,并为该操作调用一个专用servlet。
3._Have只是每个动作的专用servlet。
上述设计的优缺点是什么?在GAE上设置服务器的首选方法是什么?访问数据存储对我的设计有影响吗?
发布于 2011-05-11 05:45:20
我也有类似的情况。我从您的选项1开始,它运行得很好。唯一的问题是,它需要大量的参数解析、将字符串转换为整数之类的操作,以及命令名到方法的手动映射。选项2和3同样费劲,但更糟糕的是,您必须创建一组辅助方法。如果我不得不再做一次,我会使用一个库来完成所有的工作,就像这个库(事实上,我正在考虑转换到这个库):http://code.google.com/p/json-rpc/。瞧,没有参数解析或手动创建助手类!这一次恰好实现了一个json客户机-服务器接口,如果您正在执行ajax“厚厚的客户端”,这是很好的。如果您正在服务器端生成大部分HTML,您可能需要另一种解决方案。
发布于 2011-05-11 21:53:04
I have built a server on GAE that handles 6 different types requests over 
HTTP POST, all of which involve either creating, updating, or deleting objects 
from the datastore. What is the best design for this? 这听起来像是一个web服务的工作。我最喜欢的是REST (尽管REST操作通常映射到URL,而不是参数)。看看恢复期医生。
发布于 2011-05-16 00:36:03
因为它们都做不同的事情,所以使用不同的servlet。将它们合并到一个servlet中是没有意义的:它会使代码和URL映射变得更加混乱。
https://stackoverflow.com/questions/5957082
复制相似问题