jersey + tomcat 实现restful风格
环境:
idea 15.0.2
jersey 1.3
tomcat 7.0
maven 3.3.3
1.idea 基于maven 构建webapp 略过
2.项目构建完成之后pom.xml 文件加入项目所需包:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-core</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-client</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.2</version> </dependency>
3.创建pojo类 Student:
@XmlRootElement public class Student { private int id; private String name; private String dept; public int getId() { return id; } public Student() { } public Student(int id, String name, String dept) { super(); this.id = id; this.name = name; this.dept = dept; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } }
同时创建资源类:
@Path("/students") public class RestWsDemo { private static Logger logger = Logger.getLogger(RestWsDemo.class); private static int index = 1; private static Map<Integer,Student> studentList = new HashMap<Integer, Student>(); public RestWsDemo() { if(studentList.size()==0) { studentList.put(index, new Student(index++, "Frank", "CS")); studentList.put(index, new Student(index++, "Jersey", "Math")); } } @GET @Path("{studentid}") @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Student getMetadata(@PathParam("studentid") int studentid) { if(studentList.containsKey(studentid)) return studentList.get(studentid); else return new Student(0, "Nil", "Nil"); } @GET @Path("list") @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public List<Student> getAllStudents() { List<Student> students = new ArrayList<Student>(); students.addAll(studentList.values()); return students; } @POST @Path("add") @Produces("text/plain") public String addStudent(@FormParam("name") String name, @FormParam("dept") String dept) { studentList.put(index, new Student(index++, name, dept)); return String.valueOf(index-1); } @DELETE @Path("delete/{studentid}") @Produces("text/plain") public String removeStudent(@PathParam("studentid") int studentid) { logger.info("Receieving quest for deleting student: " + studentid); Student removed = studentList.remove(studentid); if(removed==null) return "failed!"; else return "true"; } @PUT @Path("put") @Produces("text/plain") public String putStudent(@QueryParam("studentid") int studentid, @QueryParam("name") String name, @QueryParam("dept") String dept ) { logger.info("Receieving quest for putting student: " + studentid); if(!studentList.containsKey(studentid)) return "failed!"; else studentList.put(studentid, new Student(studentid, name, dept)); return String.valueOf(studentid); } }
创建完之后项目结构如图:
4.再web.xml 配置如下:
<servlet> <servlet-name>jerseyws</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name> <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>cz.service</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jerseyws</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>
其中 com.sun.jersey.config.property.packages 的属性值是你资源所在的包的路径
5.maven install 略过
6.启动tomcat 访问路径 http://localhost:8081/rest/students/list 就看以看到如下结果:
7.其他资源获取方式自行领悟、测试

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)