google-app-engine - Google App Engine Servlet 设计

标签 google-app-engine servlets

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

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

例如

  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._与上面类似,但不是此处的代码,此 servlet 仅充当集中式 servlet,并为该操作调用专用的 servlet。

3._每个操作只有一个专用的 servlet。

上述设计的优缺点是什么?在 GAE 上设置服务器的首选方法是什么?访问数据存储会影响我的设计吗?

最佳答案

我也有类似情况。我从您的选项 1 开始,效果很好。唯一的问题是它需要大量的参数解析,将字符串转换为整数等等,以及命令名称到方法的手动映射。选项 2 和 3 同样费力,但更糟糕的是因为您必须创建一堆辅助方法。如果我必须重新做一遍,我会使用一个为我完成所有工作的库,比如这个(我实际上正在考虑转换成这个):http://code.google.com/p/json-rpc/ .瞧,没有参数解析或手动创建帮助类!这恰好实现了一个 json rpc 客户端-服务器接口(interface),如果你正在做一个 ajax“胖客户端”,这很好。如果您在服务器端生成大部分 HTML,您可能需要另一种解决方案。

关于google-app-engine - Google App Engine Servlet 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5957082/

相关文章:

python - 类和 Google App Engine

java - 如何在 Google Blobstore 中获取二进制文件的直接 url?

python - 有没有办法将 gcloud 与 python3 一起使用?

java - 如何使用 java servlet 进行受限文件传输

java - Default Servlet 是(事实上的)标准吗?

java - Tomcat 6.0 - 错误 404 请求的资源不可用

java - 如何在应用程序引擎实体中存储可索引列表/集合?

google-app-engine - 无法在谷歌应用引擎启动器 : googlecloudsdk. core.credentials.store.RefreshError 中部署:invalid_grant

css - 调用转发到 JSP 的 Servlet 时,浏览器无法访问/查找相关资源,如 CSS、图像和链接

java - Servlet 3 注释会启用 secret 后门访问吗?