使用jersey构建Restful web service
2016-07-14 16:33
573 查看
简介
RESTful Web Service是轻量级的service,可以通过HTTP的方式来实现对后台数据库的CRUD, 在Web开发和移动开发时使用的比较广泛,非常方便。 在Java世界里, JAX-RS规范定义了对RESTful Web Service的实现。 Oracle的Jersey框架则是对JAX-RS的一个实现。 下面我们学习如何使用Jersey来创建RESTful WebService。
使用
准备环境
下载jerseyhttps://jersey.java.net/download.html
创建一个 Dynamic Web Project.
把刚刚下载的jersey解压,把lib目录下面的jar包放到WEB-INF/lib下面
配置
在web.xml配置文件里面,配置如下信息<servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.aplex.web</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>
创建java类
package com.aplex.web; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/hello") public class FindUsers { // This method is called if TEXT_PLAIN is request @GET @Produces(MediaType.TEXT_PLAIN) public String sayPlainTextHello() { System.out.println("hello"); return "Hello Jersey"; } // This method is called if XML is request @GET @Produces(MediaType.TEXT_XML) public String sayXMLHello() { return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>"; } // This method is called if HTML is request @GET @Produces(MediaType.TEXT_HTML) public String sayHtmlHello() { return "<html> " + "<head><title>" + "Hello Jersey" + "</title>" +"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head>" + "<body><h1>" + "say Hello to 小胖 from webserivce base on jersey" + "</body></h1>" + "</html> "; } }
访问
http://localhost:8080/RestfulDemo/rest/hello
拓展
jersey还有个强大之处就是能完成bean和 (XML与json的映射,类似于Android的Gson;使用
新建一个类ResponseJson.javapackage com.aplex.web; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import com.aplex.web.bean.User; @Path("/getjson") public class ResponseJson { @GET @Produces({MediaType.APPLICATION_JSON }) public User getUser(){ User u = new User(); u.setUsername("cmz8888"); u.setPassword("888888"); return u; } }
新建一个类User.java
package com.aplex.web.bean; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
访问
http://localhost:8080/RestfulDemo/rest/getjson
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树