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

Jersey快速入门案例

作者头像
青山师
发布2023-05-05 19:50:48
5750
发布2023-05-05 19:50:48
举报
文章被收录于专栏:IT当时语_青山师_JAVA技术栈

_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
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档