1、servlet-name/servlet-nameservlet-classcom.sun.jersey.spi.container.servlet.ServletContainerload-on-startup1/servletservlet-mappingurl-pattern/services/*/servlet-mapping在工程的classpath下会引用下列包:这些包可以从下载(使用maven2)首先创建一个简单的类Categoryimport javax.xml.bind.annotation.XmlRootElement;XmlRootElementpublic class
2、Category private int id;private String name;public Category ()super(); public Category (int id, String name) this.id=id; this.name=name;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) this.name = name;使用XmlRootE
3、lement标注该类点击图标创建webservice,选择restblog工程,Framework选择REST(JAX-RS)Java class : CategoryServiceURL path: 资源路径 填写category ,这样所有与category相关的资源都使用http:/yourpath/services/category访问LIfecycle: Pre-request(JAX-RS default)每次请求时生成一个服务类实例(这里指CategoryService),singleton:单例,只存在一个实例Consumes: 接受的contentType 包括applica
4、tion/xml ,application/json 通俗来说就是接受提交数据的格式。Produces: 产生的数据格式选项同样为applicatin/xml,application/json 等。注意这里的Consumes/Produces是指请求http:/yourpath/services/category的数据格式。点击 Add 按钮添加服务方法,界面如下:这是一个构造服务方法的界面,下面有代码预览。在添加参数的时候,选择Param Type选项的意义:Context: 这是一个标识该参数为请求上下文。可以直接获得request的参数。QueryParam:uri?之后的参数PathP
5、aram:uri中的参数如:/category/id中的id就是PathParamFormParam:使用post提交的参数。CookieParam: Cookie参数。HeaderParam: 请求的头部信息。也许你已经注意到没有session参数,是的,所谓的无状态stateless多少就体现在这里,web服务不保存请求相关的信息。综合上面的用法,下面的例子涵盖了常用的服务方法的写法,之中的处理过程暂时用硬编码。packagecom.dawnpro.restblog;importjava.util.ArrayList;java.util.List;javax.ws.rs.Consumes;
6、javax.ws.rs.DELETE;javax.ws.rs.DefaultValue;javax.ws.rs.FormParam;javax.ws.rs.GET;javax.ws.rs.POST;javax.ws.rs.PUT;javax.ws.rs.Path;javax.ws.rs.PathParam;javax.ws.rs.Produces;javax.ws.rs.core.Context;javax.ws.rs.core.UriInfo;org.codehaus.jettison.json.JSONException;org.codehaus.jettison.json.JSONObj
7、ect;Path(category)publicclassCategoryServiceGETProduces(application/json,application/xml)/*getCategories产生json,xml两种数据格式,具体那种格式取决于contentType*/ListgetCategories()result=newArrayList();result.add(newCategory(1,第一个分类);Category(2,第二个分类returnresult;idCategorygetCategory(PathParam(id)intid)newCategory(id
8、,id为+id+的类别);json/idJSONObjectgetCategoryJson(PathParam(id)/产生jsonoJSONObject();tryo.put(,id);name的categorycatch(JSONExceptione)e.printStackTrace();o;PUTaddProduces(text/htmlConsumes(StringaddCategory(Categorycategory)System.out.println(处理添加类别逻辑,接受的数据为id:+category.getId()+,name:+category.getName();ok;POSTaddbynameaddCategory(FormParam(categorynameDefaultValue(未命名cateogryname)处理添加类别逻辑,接受的数据为name:+cateogryname);添加类别+cateogryname+成功updatecategoryupdateCategory(Category处理更新类别逻辑,接受的数据为id:DELETEdelete/iddeleteCategory(PathParam(处理删除类别逻辑,接受的数据为id:+id);commonProcesspu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1