2012-02-01 63 views
0

我需要设计一个简单的网页应用程序,它只有3个页面,即登录,输入新数据并查看以前输入的数据的页面,以及管理用户输入内容的页面。还有一些限制,但这是一般的想法。简单的网络应用程序设计

我想知道你怎么想了以下设计的:(!)

  • 一个单一的静态HTML页面,带有一点点的jQuery渲染和通讯逻辑
  • 一个RESTful Web服务(泽西岛,为例子),其将接受数据的jQuery发送和处理它(java的JSON的转换将使用杰克逊)
  • 一个Java模型数据库中的持续

基本上,确保HTML + CSS将是视图,我的控制器是jquery + jersey,然后是java模型。一切都将使用良好的编程原则等

从我的理解,这将允许非常快速开发我的东西,有一个非常模块化的设计,高度兼容(常规DB-java-jquery-html),如果需要,可以轻松扩展,并且响应时间非常快。

因为我还没有上大学,而且我自己也这样做(因此没有人可以谈论这个设计),我不确定我的设计有多好。也就是说,我想知道下面的问题:

  • 有没有我监督的缺陷?
  • 我过度工程/复杂这?
  • 是否有安全漏洞,我没有看到(从设计,而不是从实现)

感谢; P.

+0

这不是什么设计:) – 2012-02-01 10:07:50

回答

2

你的设计很不错。你可以看看我的proof of concept,它的工作原理与你设计的完全一样,不同的是它使用jqGrid来处理所有的CRUD操作并且有一个模拟的DAO。

安全性不是问题,HTML和JavaScript可以匿名提供,但所有REST操作都需要保护。您必须首先登录才能获得JSESSIONID cookie,并在每次AJAX调用时传递它(实际上应该自动发生)。

+0

是的,这就是我打算使用cookie进行会话管理的方式。 – Habfast 2012-02-01 10:14:31

2

这是一个很好的设计。事实上,你可以像Facebook,Twitter那样以这种方式发布你的API。你所需要做的就是解释你的RESTful服务期望什么和返回。任何人都可以开发一个应用程序。所以,这是很好的一部分。让我们回答你的具体问题:

Are there any flaws I am overseeing? 

不,实际上,这些都是简单的CRUD操作,很标准的东西。如果你使用一个为你处理很多事情的框架(Wicket,Play!,Struts-2),你可以快速完成相同的操作(称为快速闪烁)。你正在做的是自己开发组件。

Am I over-engineering/complicating this? 

是的,有点。如果这只是一个大学项目,并且你在掌控之中。我会建议只用一个网络框架,这可能是最快的事情。他们可能会隐藏很多实现细节,您可能需要使用当前的设计。

Is there any security flaw I didn't see. 

没有。只要您在需要的URL上进行身份验证和授权,您就安全了。你可以考虑HTTPS,但这太多了。