RESTSample接口的实现,这里我们只是简单的实现下,并不是涉及实
发布时间:2020-12-17 00:41:41 所属栏目:安全 来源:网络整理
导读:package com.hoo.service; ? import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRe
package com.hoo.service;
? import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Request; import javax.ws.rs.core.UriInfo; import com.hoo.entity.MapBean; import com.hoo.entity.User; import com.hoo.entity.Users; ? /* 注释(Annotation):在 javax.ws.rs.* 中定义,是 JAX-RS (JSR 311) 规范的一部分。 @Path:定义资源基 URI。由上下文根和主机名组成,资源标识符类似于 http://localhost:8080/RESTful/rest/hello。 @GET:这意味着以下方法可以响应 HTTP GET 方法。 @Produces:以纯文本方式定义响应内容 MIME 类型。 @Context: 使用该注释注入上下文对象,比如 Request、Response、UriInfo、ServletContext 等。 @Path("{contact}"):这是 @Path 注释,与根路径 “/contacts” 结合形成子资源的 URI。 @PathParam("contact"):该注释将参数注入方法参数的路径,在本例中就是联系人 id。其他可用的注释有 @FormParam、@QueryParam 等。 @Produces:响应支持多个 MIME 类型。在本例和上一个示例中,APPLICATION/XML 将是默认的 MIME 类型。 */ /** * <b>function:</b> CXF RESTful风格WebService * @author hoojo * @createDate 2012-7-20 下午01:23:04 * @file RESTSampleSource.java * @package com.hoo.service * @project CXFWebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ @Path(value = "/sample")
public class RESTSampleSource implements RESTSample { @Context private UriInfo uriInfo;
@Context private Request request; @GET @Produces(MediaType.TEXT_PLAIN) public String doGet() { return "this is get rest request"; } @Path("/request/{param}")
public String doRequest(@PathParam("param") String param,
@Context HttpServletRequest servletRequest,@Context HttpServletResponse servletResponse) { System.out.println(servletRequest); System.out.println(servletResponse); System.out.println(servletRequest.getParameter("param"));
System.out.println(servletRequest.getContentType()); System.out.println(servletResponse.getCharacterEncoding()); System.out.println(servletResponse.getContentType()); "success"; "/bean/{id}") @Produces({ MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON }) public User getBean(@PathParam("id") int id) { System.out.println("####getBean#####");
"id:" + id); "Method:" + request.getMethod()); "uri:" + uriInfo.getPath()); System.out.println(uriInfo.getPathParameters()); User user = new User();
user.setId(id); user.setName("JojO");
return user; "/list") @Produces({ MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML }) public Users getList() { "####getList#####"); "Method:" + request.getMethod()); "uri:" + uriInfo.getPath()); System.out.println(uriInfo.getPathParameters()); List<User> list = new ArrayList<User>();
User user = null; for (int i = 0; i < 4;i ++) {
user = user.setId(i);
user.setName("JojO-" + i);
list.add(user); } Users users = new Users();
users.setUsers(list); return users; "/map") public MapBean getMap() { "####getMap#####"); Map<String,User> map = new HashMap<String,User>();
map.put("key-" + i,user);
MapBean bean = new MapBean();
bean.setMap(map); return bean; } @Consumes:声明该方法使用 HTML FORM。 @FormParam:注入该方法的 HTML 属性确定的表单输入。 @Response.created(uri).build(): 构建新的 URI 用于新创建的联系人(/contacts/{id})并设置响应代码(201/created)。 您可以使用 http://localhost:8080/Jersey/rest/contacts/<id> 访问新联系人 */ @POST "/postData") public User postData(User user) throws IOException {
System.out.println(user); "jojo##12321321"); return user; } @PUT "/putData/{id}") @Produces({ MediaType.APPLICATION_XML }) public User putData(@PathParam(int id,User user) {
"#####putData#####"); user.setAddress("hoojo#gz");
user.setEmail("hoojo_@126.com");
"hoojo"); System.out.println(user); } @DELETE "/removeData/{id}") void deleteData(@PathParam("#######deleteData#######" + id);
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |