一 Jersey简介
Jersey是 JAX-RS API的一个实现,通过它可以方便的开发RESTful Web services。
Http中的常用方法与REST中资源的CURD操作对应
方法 | REST中的资源的操作 |
GET | 检索资源 |
PUT | 更新资源 |
POST | 创建资源 |
DELETE | 删除资源 |
二 Jersey简单例子
使用jar包 : asm-3.3.1.jar, jersey-core-1.1.4.1.jar, jersey-server-1.1.4.1.jar, jsr311-api-1.1.1.jar
IUserMgtWeb.java
package controller; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.sun.jersey.api.view.Viewable; @Path("/user") public interface IUserMgtWeb { @POST @Path("/login") @Produces(MediaType.TEXT_HTML) public Viewable login(@FormParam("username") String username, @FormParam("password") String password); @GET @Path("/info") @Produces(MediaType.APPLICATION_JSON) public Response getUserInfo(); }
UserMgtWebImpl.java
package controller.impl; import javax.ws.rs.Path; import javax.ws.rs.core.Response; import com.sun.jersey.api.view.Viewable; import controller.IUserMgtWeb; @Path("/user") public class UserMgtWebImpl implements IUserMgtWeb { @Override public Viewable login(String username,String password) { if("admin".equals(username)&&"admin".equals(password)){ System.out.println("nice man!"); return null; }else{ System.out.println("username:"+username+",password:"+password); return new Viewable("/login.html",null); } } @Override public Response getUserInfo() { return Response.ok("{id:'001',name:'sam'}").build(); } }
UserMgtApplication.java
package application; import java.util.HashSet; import java.util.Set; import javax.ws.rs.core.Application; import controller.IUserMgtWeb; import controller.impl.UserMgtWebImpl; public class UserMgtApplication extends Application{ private Set<Object> singletons = new HashSet<Object>(); private Set<Class<?>> empty = new HashSet<Class<?>>(); @Override public Set<Class<?>> getClasses() { return empty; } @Override public Set<Object> getSingletons() { return singletons; } public UserMgtApplication(){ empty.add(IUserMgtWeb.class); singletons.add(new UserMgtWebImpl()); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Jersey</display-name> <servlet> <servlet-name>UserMgtWebRest</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <!-- <init-param> --> <!-- <param-name>javax.ws.rs.Application</param-name> --> <!-- <param-value>application.UserMgtApplication</param-value> --> <!-- </init-param> --> <!-- 如果启用以下执行jersey初始化,那么容器将对指定包内的class都当作singletons做处理, 此时必须在相应的实现类中有rest相应注解出现,否则容器会报错 --> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>controller.impl</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>UserMgtWebRest</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app>
login.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <form action="/Jersey/rest/user/login" method="post"> <label>username:</label> <input type="text" name="username"/> <label>password:</label> <input type="password" name="password"/> <input type="submit" value="submit"/> </form> </body> </html>
Note:
尽量不要使用PUT与DELETE方法,因为如果使用PUT或者DELETE方法,在后台通过request.getParameter("username")获取不到相应的数据。只能通过request.getInputStream()获取流中数据在解析。
如果使用PUT与DELETE方法并且通过FormParam注入参数,但是在filter或者其他代码快【先于注入方法的任意代码】中读取了request.getInputStream()流中信息,这FormParam要注入的参数将无法获取值,因为流已经被读取了。
相关推荐
- **Jersey简介**:Jersey是Sun Microsystems(后被Oracle收购)为实现RESTful Web Services而开发的一个框架。作为JAX-RS(JSR 311/339/367/370)规范的参考实现,它提供了创建和访问RESTful服务的一整套工具和服务...
1. **Jersey简介** Jersey是JAX-RS(Java API for RESTful Web Services)规范的实现,JAX-RS是Java EE的一部分,用于简化REST服务的开发。通过使用注解和Java对象,开发者可以快速创建处理HTTP请求的方法,如GET、...
2. **Jersey简介**:作为JAX-RS的实现,Jersey提供了一整套工具和服务,包括API、Servlet容器集成、过滤器、提供者等,使得开发RESTful服务变得简单。 3. **基本概念**:在学习Jersey时,我们通常会接触到如`@Path`...
【知识点一】:Jersey简介 Jersey是Java语言中实现Representational State Transfer (REST)架构风格的开源框架,它是JAX-RS(Java API for RESTful Web Services)规范的参考实现。通过Jersey,开发者可以轻松地创建...
#### 二、Jersey简介 Jersey是基于Java平台的一个完全符合JSR 311(Java API for RESTful Web Services)标准的实现框架。其设计目标是使开发者能够轻松地创建RESTful Web服务,并提供了一整套API来支持这一过程。...
** Jersey简介 ** Jersey 提供了一个轻量级的、模块化的框架,允许开发者快速构建和部署RESTful服务。它支持多种功能,如HTTP请求处理、URL映射、内容协商、错误处理等。此外,Jersey可以与各种容器集成,如Tomcat...
1. **Jersey简介:** Jersey是JAX-RS(Java API for RESTful Web Services)规范的一个实现,提供了一套用于构建RESTful服务的API。它允许开发者使用Java注解来定义资源类和方法,简化了Web服务的创建。 2. **...
**一、Jersey简介** Jersey是Java平台上的一个开源框架,主要用于构建RESTful Web服务。它基于JAX-RS(Java API for RESTful Web Services)规范,提供了一套全面的工具和服务,简化了开发人员在创建、部署和管理...
1. **Jersey简介**: Jersey是JAX-RS规范的实现,它提供了一种简单的方式来创建RESTful Web服务。通过使用注解,开发者可以在Java类和方法上定义HTTP操作(如GET、POST等)和资源路径。 2. **Spring简介**: ...
1. **Jersey简介**: Jersey是一个开源框架,用于构建符合JAX-RS标准的RESTful服务。它提供了丰富的特性和工具,包括注解驱动的编程模型、内容协商、过滤器、拦截器等,使得开发者可以便捷地创建、部署和管理...
二、Jersey简介 Jersey是Sun Microsystems(现已被Oracle收购)开发的一个开源项目,它是Java语言中实现RESTful服务的JAX-RS(Java API for RESTful Web Services)规范的参考实现。它提供了一套完整的框架,帮助...
1. **Jersey简介**:Jersey是开源的、轻量级的、基于标准的、完全符合JAX-RS的RESTful服务实现。它允许开发者通过简单的注解来定义资源类,这些类可以被映射到HTTP请求上,从而提供RESTful服务。 2. **功能特性**:...
一、jersey简介 jersey是基于JAX-RS标准的RESTful服务实现,它提供了一套全面的工具集来创建和部署RESTful服务。通过jersey,开发者可以方便地定义资源类,通过HTTP方法(如GET、POST、PUT、DELETE)处理请求,并...
一、Jersey简介 Jersey是由Sun Microsystems(现已被Oracle收购)开发的开源项目,它是JAX-RS(Java API for RESTful Web Services)规范的参考实现。JAX-RS为开发RESTful服务提供了一套标准的注解,使得开发者可以...
**Jersey简介** Jersey是Sun Microsystems开发的开源项目,它是JAX-RS规范的参考实现。它提供了一个全面的框架,包括处理器、过滤器、提供者、容器和扩展,帮助开发者快速构建高质量的RESTful服务。通过使用Jersey,...
#### 二、Jersey简介及其作用 **Jersey**是Java平台上JAX-RS规范的一个参考实现。它既提供了服务器端的API,也包括了客户端模块。服务器端API包括`@Path`、`@GET`、`@Produces`等注解,用于构建RESTful服务;而...
1. **Jersey简介**: Jersey是实现Java RESTful Web服务的开源框架,它基于JAX-RS(Java API for RESTful Web Services)标准。它提供了创建、部署和消费RESTful服务所需的一系列API和工具。 2. **Spring框架**: ...
- **2.4 模块列表**:详细列出了 Jersey 提供的所有模块,以及它们的功能简介。 ##### 3. JAX-RS 应用、资源与子资源 - **3.1 根资源类**: - **@Path**:标记资源类的 URL 路径。 - **HTTP 方法 (@GET, @PUT, @...
Jersey 框架简介** Jersey 提供了一整套工具和服务,用于快速构建高性能的 RESTful 服务。通过使用注解,开发者可以轻松地将 HTTP 方法(如 GET、POST、PUT 和 DELETE)映射到 Java 类和方法,从而简化服务的创建。...
**二、JAX-RS 简介** JAX-RS 是 Java 平台上定义的一套用于创建 RESTful Web 服务的标准 API,它简化了 REST 服务的开发过程。Jersey 实现了 JAX-RS 规范,提供了一套全面的工具集,包括注解、API 和运行时组件,...