- 浏览: 82566 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
neptunecai:
2.创建nutch2.1的编译环境 这部分能详细些吗?比如:T ...
Nutch2.1 in eclipse
之前我们提到过简单的WebApp实现,使用的是一个application,而这一次,就是在web.xml中放入多个application。其实这里的application就是一个servlet,只是这些servlet下调用的各种resource是线程安全的。有兴趣的同学可以对resource进行多线程访问测试。
这次我们项目名仍然使用RestLetServlet。其他的jar也同webapp,保持不变。
多application的web.xml配置如下:
这样,就可以通过访问不同的路径分别访问到HelloApplication和UserApplication的应用。
对于其application内部的编写如下:
这里的UserApplication用了两个resource,一个是Users资源,另一个是User资源。从ROA的设计角度看。Users资源中get方法是获取用户列表,post方法是添加一个用户。而User资源中的get是获取某个用户的信息,put方法是修改某用户信息,delete方法是删除某用户信息。
这里只是做简单的添加用户和获取用户信息,put和delete在这里就不加了。
最后我们只要加上一个访问路口的表单就可以了。这个表单我们就放在index.jsp下
我们来看一下路径。从http://localhost:8080/RestLetServlet/
就直接访问到index.jsp了。
而index.jsp下的表单action指向的路径为http://localhost:8080/RestLetServlet/users
就是会调用UsersResrource资源的post方法,因为这里我们设定的method是post。(不过很可惜method只能设定get和post,如果有put的话,就可以调用put方法进行修改了。解决的办法就是把put当做form的一个参数传递给UsersResource资源,并通过代码来模拟调用put方法),把数据传递给该资源,进行信息打印。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/hello/getHello就可以访问到HelloApplication下的HelloResource。两个application在路径上相互不受影响。HelloResource类在简单webapp实现一文中已经贴出,这里就不重复贴出了。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/users/123的话,就会访问UserResource资源,并调用get方法。打印相关信息。如果是和数据库交互的话,123应该就是某一个userId,然后去获取user的具体信息并返回给前端。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/users的话,是直接调用UsersResource的get方法,logger中输出信息。
这次我们项目名仍然使用RestLetServlet。其他的jar也同webapp,保持不变。
多application的web.xml配置如下:
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> <init-param> <param-name>org.restlet.application</param-name> <param-value>com.restlet.application.HelloApplication</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>UserServlet</servlet-name> <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> <init-param> <param-name>org.restlet.application</param-name> <param-value>com.restlet.application.UserApplication</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/users/*</url-pattern> </servlet-mapping>
这样,就可以通过访问不同的路径分别访问到HelloApplication和UserApplication的应用。
对于其application内部的编写如下:
public class HelloApplication extends Application { @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/getHello", HelloResource.class); return router; } }
public class UserApplication extends Application { @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("", UsersResource.class); router.attach("/{userId}", UserResource.class); return router; } }
这里的UserApplication用了两个resource,一个是Users资源,另一个是User资源。从ROA的设计角度看。Users资源中get方法是获取用户列表,post方法是添加一个用户。而User资源中的get是获取某个用户的信息,put方法是修改某用户信息,delete方法是删除某用户信息。
这里只是做简单的添加用户和获取用户信息,put和delete在这里就不加了。
public class UserResource extends ServerResource { private Logger logger = Logger.getLogger(this.getClass()); @Get public String getUser() { String userId = (String)getRequest().getAttributes().get("userId"); logger.debug("this is getUser"); return "this is getUser"+userId; } }
public class UsersResource extends ServerResource { private Logger logger = Logger.getLogger(this.getClass()); @Post public Representation addUser(Representation entity) { Form form = new Form(entity); String username = form.getFirstValue("username"); String password = form.getFirstValue("password"); logger.debug("username="+username+"\t password="+password); return null; } @Get public String getUsers() { logger.debug("this is getUsers"); return "this is getUsers"; } }
最后我们只要加上一个访问路口的表单就可以了。这个表单我们就放在index.jsp下
<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <base href="<%=basePath%>"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>user form</title> </head> <body> <form action="users" method="post"> 用户名:<input type="text" name="username" /><br/> 密码:<input type="password" name="password" /><br/> <input type="submit" value="提交" /> </form> </body> </html>
我们来看一下路径。从http://localhost:8080/RestLetServlet/
就直接访问到index.jsp了。
而index.jsp下的表单action指向的路径为http://localhost:8080/RestLetServlet/users
就是会调用UsersResrource资源的post方法,因为这里我们设定的method是post。(不过很可惜method只能设定get和post,如果有put的话,就可以调用put方法进行修改了。解决的办法就是把put当做form的一个参数传递给UsersResource资源,并通过代码来模拟调用put方法),把数据传递给该资源,进行信息打印。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/hello/getHello就可以访问到HelloApplication下的HelloResource。两个application在路径上相互不受影响。HelloResource类在简单webapp实现一文中已经贴出,这里就不重复贴出了。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/users/123的话,就会访问UserResource资源,并调用get方法。打印相关信息。如果是和数据库交互的话,123应该就是某一个userId,然后去获取user的具体信息并返回给前端。
在浏览器中,我们直接输入http://localhost:8080/RestLetServlet/users的话,是直接调用UsersResource的get方法,logger中输出信息。
发表评论
-
jetty 对请求头的限制
2014-02-13 14:30 5709当浏览器发起请求时 出现http code 413 问题 fu ... -
java 最基础的设置介绍
2013-04-15 23:05 1287用java不长不短快5年了,最近在看一些基础的书籍,也想起很久 ... -
Hessian 初体验
2013-03-27 17:36 1198Hessian 官网:http://hessian.cauch ... -
Nutch2.1 in eclipse
2013-03-10 00:22 9473Nutch2.1 in eclipse 主要目的: 1. 将 ... -
LDAP connection issue
2012-10-23 16:25 1758Problem1: Sometimes we can not ... -
restlet2.0学习——请求超时设置
2012-09-26 11:01 2370一般,我们在请求一个rest service的时候,总是希望可 ... -
[转载]checkStyle使用手册
2012-08-23 20:28 6940Checkstyle是SourceForge下的一个项目,如名 ... -
[转载]高性能JAVA开发之内存管理
2012-08-13 21:53 1397这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题 ... -
[转载]How to write LDAP search filters
2012-08-10 10:57 1439This document outlines how to g ... -
restlet2.0学习(extend)-restlet日志信息写入log4j中
2012-08-07 15:32 4059使用过restlet的人都知道,restlet使用的是JDK的 ... -
log4j级别输出
2012-08-03 11:12 4341我们知道: log4j.logger.XX cover ==& ... -
restlet2.x与restlet1.x交互
2012-08-01 10:01 1277在一般的情况下,我们使用restlet客户端向服务端发起请求时 ... -
log4j配置
2012-05-30 11:36 1464log4j.rootLogger 根路径下的所有logger输 ... -
Restlet2.0学习——文件路径访问
2012-05-22 14:42 1234由于就是官方的实例照搬了一下,简单尝试没有问题。就先把代码贴出 ... -
Restlet2.0学习——文件路径访问+BASIC认证
2012-05-22 14:38 1789这篇主要是让我们学习对于一些静态页面如何更加简单有效的去访问他 ... -
对RAM做简单的池化实现
2012-05-22 13:59 1568首先由于项目的关系需要使用IBM的Rational Asser ... -
Restlet2.0学习——简单WebApp实现
2012-05-21 22:09 6586由于自己最近正在学习R ... -
HTMLPOST和GET编码问题(深入篇)
2011-07-07 02:12 11464浏览器 IE/FireFox -------——----> ...
相关推荐
了解了这些基本概念后,你可以通过解压"restlet-jee-2.0.14"压缩包,查看源代码、例子和API文档,更深入地学习Restlet 2.0如何在Java EE环境中实现REST服务。这将有助于你开发出高效、灵活且易于维护的Web应用程序。
在本篇博文中,我们将深入探讨如何利用jQuery和Ajax技术与Restlet 2.0框架进行交互,实现对Restful资源的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。Restlet是一个开源的Java ...
在这个场景中,我们关注的是"restlet2.0+spring3.0+hibernate3.3"的整合,这是一个经典的Java Web开发组合,分别代表了RESTful API、服务层管理和持久化层的优秀实践。 首先,让我们深入了解每个框架的核心特性: ...
标题"restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest"表明这是一个针对Java企业版(Java EE)的Restlet框架2.0.6版本的压缩包,其中包含了与org.restlet相关的组件。 描述中的"restlet框架所需...
### RESTLET框架学习知识点 #### 一、RESTLET框架概览 - **RESTLET框架简介**:RESTLET是一个面向对象的Java开源框架,用于构建RESTful应用和服务。它旨在简化Web应用开发,允许开发者充分利用REST架构的优势。...
在这个"restlet2.1学习笔记项目代码"中,你可以找到如何设置Restlet组件、创建资源、定义路由、使用过滤器以及与其他服务通信的实际示例。通过阅读和运行这些代码,你可以深入理解Restlet的工作原理,并将其应用到...
Restlet与Spring集成是将Restlet框架与Spring框架结合,以增强RESTful服务的开发能力。Restlet是一个轻量级的Java框架,专门用于构建REST(Representational State Transfer)架构风格的应用程序。它遵循JAX-RS...
本系列的开发实例将带你深入理解并掌握Restlet框架的使用,从基础的JAX-RS实现到高级的Component和Application结构,再到与Spring框架的整合。 首先,我们来看看"RESTLET开发实例(一)基于JAX-RS的REST服务.doc"。...
本文将深入探讨如何使用Restlet来实现一个最简单的RESTful Web服务。 首先,了解REST的基本概念是必要的。REST强调的是资源的概念,通过URI(Uniform Resource Identifier)来标识,使用HTTP协议中的方法(如GET、...
### RESTLET开发实例详解 #### 一、RESTLET框架简介 **RESTLET**是一个轻量级且全面的框架,旨在实现REST(Representational State Transfer)原则与Java类之间的映射。该框架支持广泛的REST式系统构建,不仅仅...
对于POST、PUT等需要提交数据的方法,它支持多种数据格式,如JSON、XML、表单数据等。 2. **请求预览**: 在发送请求之前,你可以预览完整的HTTP请求,确保所有设置正确无误。 3. **响应查看**: 收到服务器的响应后,...
7. **国际化与本地化**:RESTlet支持多语言环境,方便开发面向全球用户的REST服务。 8. **版本管理**:RESTlet提供了版本控制功能,使得API可以随着时间的推移进行更新和演化,同时不影响已有的客户端。 文件列表...
接着,根据你的需求,可以参考Restlet官方文档或者示例代码,学习如何创建和配置`Application`和`Component`,定义路由规则,并处理HTTP请求。 在使用过程中,要注意版本兼容性问题,确保Restlet框架及其依赖库与你...
第二章“Beginning a Restlet application”中,作者通过一个实际的例子引导读者逐步创建一个简单的Restlet应用。这包括设置开发环境、定义资源、处理HTTP方法(如GET、POST等)以及配置服务器。这一章节对于初学者...
下面,我们将深入探讨基于JAX-RS和Restlet的REST服务开发,以及如何将Restlet与Spring框架整合。 1. **JAX-RS与REST服务开发** JAX-RS(Java API for RESTful Web Services)是Java平台上的标准API,用于简化REST...
"绝对不坑"可能意味着这个项目或者RESTlet框架在使用过程中相对稳定,没有太多隐藏的陷阱或者难以理解的问题,开发者可以放心使用。 在提供的压缩包文件名称列表中,只有一个名为"RestApplication"的文件或目录。这...
restlet2.0 Restlet Caused by: java.lang.ClassNotFoundException: com.sun.syndication.feed.synd.SyndFeed java.lang.NoClassDefFoundError: com/sun/syndication/feed/synd/SyndFeed
Restlet是一个轻量级的Java Web服务开发框架,它提供了构建RESTful(Representational State Transfer)应用程序的工具和API。REST是一种架构风格,强调简洁、无状态和可缓存的网络交互,常用于构建高性能、高可用性...