Jersey是什么
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"Jersey是什么",在日常操作中,相信很多人在Jersey是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jersey是什么"的疑惑有所帮助!接
千家信息网最后更新 2025年12月01日Jersey是什么
这篇文章主要介绍"Jersey是什么",在日常操作中,相信很多人在Jersey是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jersey是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Jersey是个restfull 框架 类似于springmvc
服务端
maven
4.0.0 JERSEY_SERVER JERSEY_SERVER 1.0 com.sun.jersey jersey-server 1.18 com.sun.jersey jersey-grizzly2 1.18 org.apache.maven.plugins maven-shade-plugin 2.3 package shade com.sean.MyResource
代码
package com.sean; import java.io.IOException; import java.net.URI; import java.util.Iterator; import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Request; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; import org.glassfish.grizzly.http.server.HttpServer; import com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory; import com.sun.jersey.api.core.PackagesResourceConfig; import com.sun.jersey.api.core.ResourceConfig; import com.sun.jersey.spi.resource.Singleton; @Singleton @Path("service") public class MyResource { @Path("{sub_path:[a-zA-Z0-9]*}") @GET @Consumes({MediaType.TEXT_PLAIN, MediaType.APPLICATION_JSON}) @Produces(MediaType.TEXT_PLAIN) public String getResourceName( @PathParam("sub_path") String resourceName, @DefaultValue("Just a test!") @QueryParam("desc") String description, @Context Request request, @Context UriInfo uriInfo, @Context HttpHeaders httpHeader) { System.out.println(this.hashCode()); // 将HTTP请求打印出来 System.out.println("****** HTTP request ******"); StringBuilder strBuilder = new StringBuilder(); strBuilder.append(request.getMethod() + " "); strBuilder.append(uriInfo.getRequestUri().toString() + " "); strBuilder.append("HTTP/1.1[\\r\\n]"); System.out.println(strBuilder.toString()); MultivaluedMap headers = httpHeader.getRequestHeaders(); Iterator iterator = headers.keySet().iterator(); while(iterator.hasNext()){ String headName = iterator.next(); System.out.println(headName + ":" + headers.get(headName) + "[\\r\\n]"); } System.out.println("[\\r\\n]"); String responseStr =resourceName + "[" + description + "]"; return responseStr; } public static void main(String[] args) { URI uri = UriBuilder.fromUri("http://127.0.0.1").port(10000).build(); ResourceConfig rc = new PackagesResourceConfig("com.sean"); try { HttpServer server = GrizzlyServerFactory.createHttpServer(uri, rc); server.start(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { Thread.sleep(1000*1000); } catch (InterruptedException e) { e.printStackTrace(); } } } 客户端
maven
4.0.0 JERSEY_CLIENT JERSEY_CLIENT 1.0 UTF-8 UTF-8 1.8 1.8 1.8 com.sun.jersey jersey-client 1.18 com.sun.jersey jersey-grizzly2 1.18 org.apache.maven.plugins maven-shade-plugin 2.3 package shade com.sean.JerseyClient
代码
package com.sean;import java.net.URI;import java.util.Iterator;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.MultivaluedMap;import javax.ws.rs.core.UriBuilder;import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.ClientResponse;import com.sun.jersey.api.client.WebResource;import com.sun.jersey.api.client.config.ClientConfig;import com.sun.jersey.api.client.config.DefaultClientConfig;public class JerseyClient { public static void main(String[] args) {// 要使用Jersey Client API,必须首先创建Client的实例// 有以下两种创建Client实例的方式// 方式一 ClientConfig cc = new DefaultClientConfig(); cc.getProperties().put(ClientConfig.PROPERTY_CONNECT_TIMEOUT, 10*1000);// Client实例很消耗系统资源,需要重用// 创建web资源,创建请求,接受响应都是线程安全的// 所以Client实例和WebResource实例可以在多个线程间安全的共享 Client client = Client.create(cc);// 方式二// Client client = Client.create();// client.setConnectTimeout(10*1000);// client.getProperties().put(ClientConfig.PROPERTY_CONNECT_TIMEOUT, 10*1000);// WebResource将会继承Client中timeout的配置// WebResource resource = client.resource("http://127.0.0.1:10000/service/sean?desc=description");//// String str = resource// .accept(MediaType.TEXT_PLAIN)// .type(MediaType.TEXT_PLAIN)// .get(String.class);// System.out.println("String:" + str); URI uri = UriBuilder.fromUri("http://127.0.0.1/service/sean").port(10000) .queryParam("desc", "description").build(); WebResource resource = client.resource(uri); //header方法可用来添加HTTP头 ClientResponse response = resource.header("auth", "123456") .accept(MediaType.TEXT_PLAIN) .type(MediaType.TEXT_PLAIN) .get(ClientResponse.class);// 将HTTP响应打印出来 System.out.println("****** HTTP response ******"); StringBuilder strBuilder = new StringBuilder(); strBuilder.append("HTTP/1.1 "); strBuilder.append(response.getStatus() + " "); strBuilder.append(response.getStatusInfo() + "[\\r\\n]"); System.out.println(strBuilder.toString()); MultivaluedMap headers = response.getHeaders(); Iterator iterator = headers.keySet().iterator(); while(iterator.hasNext()){ String headName = iterator.next(); System.out.println(headName + ":" + headers.get(headName) + "[\\r\\n]"); } System.out.println("[\\r\\n]"); System.out.println(response.getEntity(String.class) + "[\\r\\n]"); }} 到此,关于"Jersey是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
实例
学习
方式
安全
代码
方法
更多
线程
资源
UTF-8
帮助
实用
接下来
多个
客户
客户端
文章
框架
理论
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河北博泉网络技术
软件开发企业收入
数据库系统创建表怎么输入数据
社群精灵服务器
修改数据库类型
solr 配置数据库
信息中心工作总结网络安全
中国网络安全和军事发展
软件开发年底总结汇报
多玩数据库6.0
中国移动网络安全解决方案
手机贵金属分析的软件开发
ibm服务器进入安全模式
馆陶县网络安全信息化副主任
linux 跳转服务器
戴尔服务器老bios界面
网络安全班会主题心得
ftp文件服务器定期覆盖
it技术软件开发
数据库中scource
软件开发原型设计到底做什么
数据库60页答案
蓟州区项目网络技术不二之选
中国网络安全和军事发展
oracle数据库可以重排吗
网络安全智能防御监控系统开发
微信公众号为什么要用服务器
数据库匹配两张表的数据
有必要用到云服务器吗
怎么看表单大师的数据库