环境准备:
- Intellij IDEA
- tomcat 7
创建完成后,使用Add Frameworks Support把maven项目的支持引入。
在项目上右键:
到此为止就已经成功创建了一个web项目了。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.25</version> </dependency>
修改web.xml
<servlet> <servlet-name>JAX-RS Servlet</servlet-name> <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> <init-param> <param-name>jersey.config.server.provider.packages</param-name> <param-value>com.hlzf.hellojersey</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAX-RS Servlet</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping>
package com.hlzf.hellojersey; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; /** @Path 对应的是restful api的子路劲,比如前面配置的是/api/*,则访问该API的路径就是https//:ip:port/api/hello @GET @POST 对应的是请求资源用的HTTP方法 @Produces 表示返回的数据类型,如MediaType.TEXT_PLAIN对应返回文本类型 */ @Path("hello") public class Hello { @GET @Produces(MediaType.TEXT_PLAIN) public String sayHello(){ return "Hello,I am text!"; } @POST @Produces(MediaType.TEXT_XML) public String sayXMLHello() { return "<?xml version=\"1.0\"?>" + "<hello> Hello,I am xml!" + "</hello>"; } @GET @Produces(MediaType.TEXT_HTML) public String sayHtmlHello() { return "<html> " + "<title>" + "Hello Jersey" + "</title>" + "<body><h1>" + "Hello,I am html!" + "</body></h1>" + "</html> "; } }
在tomcat中引入项目,启动
使用网页进行get请求:
打包完成后,在out目录找到war包 :
使用该注释获取参数时可以获取URI中制定规则的参数
//该类的路径为/user @GET @Path("{username"}) @Produces(MediaType.APPLICATION_JSON) public User getUser(@PathParam("username") String userName) { //... }
@GET @Path("/user") @Produces("text/plain") public User getUser(@QueryParam("name") String name, @QueryParam("age") int age) { //... }
@POST @Consumes("application/x-www-form-urlencoded") publicvoid post(@FormParam("name") String name) { // }
@GET @Path("/user") @Produces("text/plain") public User getUser(@QueryParam("name") String name, @DefaultValue("26") @QueryParam("age") int age) { //...
}
@GET public String get(@Context UriInfo ui) { MultivaluedMap<String, String> queryParams = ui.getQueryParameters(); MultivaluedMap<String, String> pathParams = ui.getPathParameters(); }
https://www.jianshu.com/p/ac01105241bf