前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jersey快速入门案例

Jersey快速入门案例

作者头像
青山师
发布2023-05-05 19:50:48
5190
发布2023-05-05 19:50:48
举报

_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工程添加依赖

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<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.0</modelVersion>

  <groupId>org.byron4j</groupId>
  <artifactId>_01_jersey_hello</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>


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

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <!-- servlet 依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <!--jersey 依赖-->
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-server</artifactId>
      <version>1.17.1</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
      <version>1.17.1</version>
    </dependency>
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-servlet</artifactId>
      <version>1.17.1</version>
    </dependency>


  </dependencies>

  <build>
    <finalName>_01_jersey_hello</finalName>
    
  </build>
</project>

web.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<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>ServletContainer</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <!-- 来自于:PackagesResourceConfig.PROPERTY_PACKAGES -->
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>org.byron4j.rest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletContainer</servlet-name>
        <url-pattern>/rest-points/*</url-pattern>
    </servlet-mapping>
    

</web-app>

编写代码: JerseyHelloWorldService.java

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • _01_jersey_hello
  • 第一章 jersey基础
    • jersey概述
      • JAX-RS介绍
      • jersey 用户指南
    • jersey入门案例
      • 创建maven-webapp工程添加依赖
      • web.xml
      • 编写代码: JerseyHelloWorldService.java
      • 访问测试
      • 注解回顾
  • 附录-JSR
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档