Jersey快速入门案例

_01_jersey_hello

第一章 jersey基础

jersey概述

Eclipse Jersey 是一个 REST 框架,提供了 JAX-RS (JSR-370) 的实现。

JAX-RS介绍

JAX-RS是JAVAEE6引入的一个新技术。JAX-RS即JavaAPIforRESTfulWebServices,是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了JavaSE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。

JAX-RS提供了一些注解将一个资源类,一个POJO Java类,封装为Web资源。注解包括:

  • @Path,标注资源类或者方法的相对路径

  • @GET,@PUT,@POST,@DELETE:标注方法的HTTP请求的类型。

  • @Produces:标注返回的MIME媒体类型

  • @Consumes:标注可接受请求的MIME媒体类型

  • @PathParam,@QueryParam,@HeaderParam,@CookieParam,@MatrixParam,@FormParam

    • 分别标注方法的参数来自于HTTP请求的不同位置,例如@PathParam来自于URL的路径,@QueryParam来自于URL的查询参数,@HeaderParam来自于HTTP请求的头信息,@CookieParam来自于HTTP请求的Cookie。

基于JAX-RS实现的框架有Jersey,RESTEasy等。

这两个框架创建的应用可以很方便地部署到Servlet 容器中,比如Tomcat,JBoss等。

值得一提的是RESTEasy是由JBoss公司开发的,所以将用RESTEasy框架实现的应用部署到JBoss服务器上,可以实现很多额外的功能。

jersey 用户指南

Jersey 2.31 User Guide

jersey入门案例

创建maven-webapp工程添加依赖



<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0modelVersion>

  <groupId>org.byron4jgroupId>
  <artifactId>_01_jersey_helloartifactId>
  <version>1.0-SNAPSHOTversion>
  <packaging>warpackaging>


  <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>1.8maven.compiler.source>
    <maven.compiler.target>1.8maven.compiler.target>
  properties>

  <dependencies>
    <dependency>
      <groupId>junitgroupId>
      <artifactId>junitartifactId>
      <version>4.12version>
      <scope>testscope>
    dependency>

    
    <dependency>
      <groupId>javax.servletgroupId>
      <artifactId>javax.servlet-apiartifactId>
      <version>3.1.0version>
      <scope>providedscope>
    dependency>

    
    <dependency>
      <groupId>com.sun.jerseygroupId>
      <artifactId>jersey-serverartifactId>
      <version>1.17.1version>
    dependency>
    <dependency>
      <groupId>com.sun.jerseygroupId>
      <artifactId>jersey-coreartifactId>
      <version>1.17.1version>
    dependency>
    <dependency>
      <groupId>com.sun.jerseygroupId>
      <artifactId>jersey-servletartifactId>
      <version>1.17.1version>
    dependency>


  dependencies>

  <build>
    <finalName>_01_jersey_hellofinalName>
    
  build>
project>

web.xml


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <servlet>
        <servlet-name>ServletContainerservlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainerservlet-class>
        <init-param>
            
            <param-name>com.sun.jersey.config.property.packagesparam-name>
            <param-value>org.byron4j.restparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
    servlet>
    <servlet-mapping>
        <servlet-name>ServletContainerservlet-name>
        <url-pattern>/rest-points/*url-pattern>
    servlet-mapping>
    

web-app>

编写代码: JerseyHelloWorldService.java

package org.byron4j.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/show-on-screen")
public class JerseyHelloWorldService {

    @GET
    @Path("/{message}")
    public Response getMsg(@PathParam("message") String msg){
        String str = "msg:" + msg;

        return Response.status(200).entity(str).build();
    }
}

访问测试

访问:http://localhost:8080/rest-points/show-on-screen/hello

可以看到: msg:hello

注解回顾

  • @Path("/show-on-screen"):设置路径,可以用在类、方法上
  • @GET:支持http的get请求
  • @Path("/{message}"):处理路径为/show-on-screen/*的请求,并且最后的参数值绑定到message参数上
  • @PathParam(“message”) String msg:获得路径的参数message的值,并赋值给msg

附录-JSR

  • JSR

你可能感兴趣的:(【Java,Web】,#,jersey框架,jersey,jax-rs,restful,java,maven)