加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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);
}
 

更多关系Spring的信息

?Spring 论坛??http://www.itchm.com/forum-59-1.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读