首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

设计
EN

Stack Overflow用户
提问于 2011-05-10 22:06:33
回答 4查看 1.2K关注 0票数 3

我在GAE上构建了一个服务器,它通过HTTP处理6种不同类型的请求,所有这些请求都涉及从数据存储中创建、更新或删除对象。这个最好的设计是什么?我会告诉你我目前的设计,并表达几个其他。

  1. 我当前的设计将所有请求发送到同一个servlet,并使用一个"action“参数作为POST的一部分来区分和处理不同的请求。这里包括服务器应该运行的代码。

例如:

代码语言:javascript
运行
复制
  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上设置服务器的首选方法是什么?访问数据存储对我的设计有影响吗?

EN

回答 4

Stack Overflow用户

发布于 2011-05-11 05:45:20

我也有类似的情况。我从您的选项1开始,它运行得很好。唯一的问题是,它需要大量的参数解析、将字符串转换为整数之类的操作,以及命令名到方法的手动映射。选项2和3同样费劲,但更糟糕的是,您必须创建一组辅助方法。如果我不得不再做一次,我会使用一个库来完成所有的工作,就像这个库(事实上,我正在考虑转换到这个库):http://code.google.com/p/json-rpc/。瞧,没有参数解析或手动创建助手类!这一次恰好实现了一个json客户机-服务器接口,如果您正在执行ajax“厚厚的客户端”,这是很好的。如果您正在服务器端生成大部分HTML,您可能需要另一种解决方案。

票数 1
EN

Stack Overflow用户

发布于 2011-05-11 21:53:04

代码语言:javascript
运行
复制
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,而不是参数)。看看恢复期医生

票数 0
EN

Stack Overflow用户

发布于 2011-05-16 00:36:03

因为它们都做不同的事情,所以使用不同的servlet。将它们合并到一个servlet中是没有意义的:它会使代码和URL映射变得更加混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5957082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档