如果你现在已经有一个web系统,而为了一些需求,你集成了restlet来提供Restful web service,那么如何在restlet里面获取放到HttpServletRequest和Session里面的值呢?
可以利用ServletCall类来达到目的,我们可以在Resource的init方法里面加入一些代码:
@Override
public void init(Context context, Request request, Response response) {
super.init(context, request, response);
if(request instanceof HttpRequest){
HttpServletRequest hsr = ServletCall.getRequest(request);
Enumeration params = hsr.getParameterNames();
HttpSession session = hsr.getSession();
if(session != null){
String sessFlag = (String)sess.getAttribute("sessFlag");
}
String address = hsr.getParameter("address");
}
}
同时给出ServletCall的getRequest方法的源代码,以便于加深理解:
public static HttpServletRequest getRequest(Request request) {
HttpServletRequest result = null;
if (request instanceof HttpRequest) {
final HttpCall httpCall = ((HttpRequest) request).getHttpCall();
if (httpCall instanceof ServletCall) {
result = ((ServletCall) httpCall).getRequest();
}
}
return result;
}
最后,我想说的是,使用Restlet和Servlet交互,只是假设你已经有一个web系统,或者说,你已经在这个系统上投资很多,否则,完全可以基于Restlet构建一个新的系统。看看Restlet的开发者Rhett Sutphin 在论坛对一个提问者的解答关于集成Servlet问题中提到的:
>
> My Questions:
> 1. What is the best way to integrate my servlet with the RESTLETs?
>
> 2. Is there a way for me to pass java objects from the restlet to the
> servlet? This way in the servlet I can extract java objects and not
> rely on
> re-assembling the JSON or XML contained in the Response
> Representation?
For a new application (and assuming I understand what you're trying to
do), I'd suggest using content negotation in Restlet and not using
Servlet/JSP at all.
If you really don't want to do that, or if you already have a large
investment in JSP-based views, I'd extract the business logic into a
separate layer and make it available to both your servlets and your
restlets.
分享到:
相关推荐
在《Restlet实战(二十六)事务 (Transaction)》这篇博文中,作者可能会详细讲解如何在Restlet框架中实现上述事务处理策略。Restlet是一个开源的Java框架,专门用于构建RESTful应用程序。它提供了丰富的API和工具,...
看名字,有需要下jar包
org.restlet.ext.servlet-2.1.1.jar
com.noelios.restlet.ext.servlet_2.4.jar
本压缩包包含Restlet框架运行所需的全部jar文件,使得开发者可以便捷地在Java环境中开发、测试和部署RESTful服务。 Restlet框架的核心组件包括以下几个部分: 1. **客户端API**:提供了与REST服务器交互的能力,...
org.restlet.jar
在IT行业中,我们经常涉及到各种库和框架的集成与使用,这次我们关注的是"Atlas2.3.0"依赖的组件:"org.restlet/sqoop-1.4.6.2.3.99.0-195"。这个依赖包含了三个关键的JAR文件:`sqoop-1.4.6.2.3.99.0-195.jar`,`...
标题 "FE助手和Restlet Client" 提到的两个工具,FE助手和Restlet Client,都是在Web开发领域中用于测试和交互HTTP API的重要工具。它们各自具有独特的优势和功能,对于开发者来说是不可或缺的资源。 首先,让我们...
7. **文档和社区支持**:官方文档详尽且更新及时,社区活跃,遇到问题时能得到及时的帮助。 在实际应用中,开发者可以使用org.restlet库构建服务器端的RESTful资源,定义处理HTTP请求的处理器,以及处理响应的方法...
RESTlet是一款开源框架,专为构建基于REST(Representational ...通过学习这些资料,开发者可以深入理解RESTlet的工作原理,掌握如何使用RESTlet构建RESTful服务和客户端应用,从而提升其在Web服务开发领域的专业技能。
Restlet的核心优势在于其灵活性和强大的功能集,这使得它不仅适用于传统的服务器端应用开发,还适用于客户端应用、完整的Web服务器实现等。 #### 二、Restlet的特点与应用场景 1. **统一的开发环境**:Restlet提供...
Restlet是一个轻量级的Java Web服务开发框架,它提供了构建RESTful(Representational State Transfer)应用程序的工具和API。REST是一种架构风格,强调简洁、无状态和可缓存的网络交互,常用于构建高性能、高可用性...
- `org.restlet.ext.servlet.jar`:RESTLET Servlet扩展 3. **定义实体类** 创建一个名为`Student`的实体类,用于返回给客户端的数据。该类使用JAXB(Java Architecture for XML Binding)技术实现XML格式的数据...
这通常意味着在实际项目中,我们需要确保获取到所有必要的jar包,以便正确地导入和使用Restlet的功能。 在标签"reslet"中,我们可以推断这个主题主要关注Restlet框架及其相关技术。标签是用来分类和标识内容的...
以下是关于Restlet和其在Java EE中的应用的一些关键知识点: 1. **RESTful架构**:Restlet框架的核心理念是遵循REST原则,这包括资源定位(通过URI)、使用标准HTTP方法(GET、POST、PUT、DELETE等)操作资源、以及...
在本文中,我们将深入探讨如何在Spring 3框架中集成Restlet 2,利用注解方式进行配置。Restlet是一个轻量级的Java RESTful Web服务开发库,而Spring则是一个广泛使用的全面的企业级应用框架。结合两者,我们可以创建...
将Spring与Restlet集成,可以使Restlet服务利用Spring的DI和AOP特性,便于管理和测试。 在集成过程中,有以下几个关键步骤: 1. **环境准备**:确保安装了JDK 1.5或更高版本、Tomcat 6.x或更高版本,以及Restlet ...
在Restlet 2.1中,有几个关键概念和组件值得深入探讨: 1. **组件(Component)**:Restlet框架的核心是组件模型,它将Web服务器、客户端、资源和代表性的交互逻辑抽象出来。组件可以包含多个子组件,并处理HTTP...
标题"基于Spring的Restlet实例"意味着我们将探讨如何在Spring环境中集成和使用Restlet库来开发REST服务。这通常涉及以下几个关键知识点: 1. **RESTful服务基础**:REST是一种软件架构风格,强调通过HTTP协议暴露...