Servlets与豆类

时间:2011-09-25 17:45:50

标签: session servlets javabeans

我需要经验丰富的开发人员就项目的软件架构提出建议。

需要为API提供REST接口,以便客户可以: 1)验证自己(这还涉及处理帐户创建) 2)对资源发出get / add / update / delete()请求(例如存储新书描述[title + author ..])

对于WSDL或其他复杂的东西,没有必要(现在)。我想如果可能的话我宁愿避免使用WSDL,因为我肯定不会使用它。这不会用于网站,只能直接使用API​​。

我读了很多东西,但需要明确以下内容: - 你会使用servlet或bean吗? - 处理身份验证,是一个好主意吗?什么是处理会话的最佳和最简单的方法?

我正在寻找最简单的方法,因为我目前对J2EE的了解很少。

谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

总之一句话?都。你想要两个servlet和基于POJO接口的bean,但不要做同样的事情。

如果你想要REST,你将使用servlet。这些是Java EE中的HTTP侦听器,REST基于HTTP。

话虽如此,我建议使用基于接口的POJO来实现完成所有工作的代码。它将使您的代码更容易测试和更改。

REST是众多部署中的一种选择。如果你坚持使用基于接口的POJO,你就可以通过在bean上使用不同的包装来改变部署策略。

除了身份验证和授权,绑定和验证之外,REST层不应该执行任何操作。让它按照POJO bean来完成工作。

Servlet通过URL重写或cookie处理会话。利用他们给你的东西。

但REST服务应该是无状态的;没有会话,呼叫之间没有保存状态。

您可以在拨打电话前使用过滤器检查身份验证。这是跨领域的。将过滤器视为HTTP的各个方面。

答案 1 :(得分:1)

如果客户端将使用Web界面访问您的站点,那么基于会话的系统是更好的方法。如果它只是程序使用的服务api,那么使用HTTP身份验证。

如果您要使用服务api,那么通过查看一个像JAX-RS这样的RESTy框架,您可能会得到最好的服务。您可以将其用于实际网站,但通常不会以这种方式使用(因此示例与域名不匹配)。

如果你正在做一个网站,那么看一下Stripes或Struts 2之类的动作框架。这些将允许你绑定到RESTy URL,但它们也非常适合做网站。

对于其中任何一个,最好有一个基础理解Servlet,特别是HTTP,工作流,重定向和转发之间的差异等,因为这些框架利用了基本的Servlet模型。

所有这一切都可以通过原始Servlet轻松完成,框架只会让事情变得更容易,而JAX-RS和Stripes / Struts 2的影响相当小。

答案 2 :(得分:1)

  

验证自己(这还涉及处理帐户创建)

Servlet具有内置的安全功能以及多个库(Spring安全性,Apache Shiro)。

  

对于WSDL或其他复杂的东西,没有必要(现在)。

WSDL最常用于描述SOAP Web服务。

  

你会使用servlet还是bean? - 处理身份验证

你的意思是企业Java bean?他们不会帮助你,你仍然需要一些东西来处理HTTP请求 - servlet发挥作用。但是你可能希望有一些东西来实现实际的业务逻辑 - servlet只是 gateway ,不在那里实现逻辑。

从技术上讲,您可以通过SOAP公开EJB(但您希望使用REST)或使用JAX-RS(Java EE堆栈的一部分),但显然它使用下面的servlet。

  

是有条不紊的好主意

原则上 - REST是无状态的,没有会话状态。但是,对每个请求进行身份验证可能会花费太多。因此,您将在最后的HTTP会话(使用servlet轻松处理)至少存储JSESSIONID。