jersey struts2 springMVC详解

jersey

jersey是JAX-RS(JSR311)Java API for RESTful Web Services开源参考实现用于构建 RESTful Web service,它包含三个部分:

    核心服务器(Core Server) :通过提供JSR 311中标准化的注释和API标准化,可以用直观的方式开发RESTful Web服务。

    核心客户端(Core Client) :Jersey客户端API能够帮助开发者与RESTful服务轻松通信;

    集成(Integration) :Jersey还提供可以轻松继承Spring、Guice、Apache Abdera的库。
   
    jersey常用的标签如下:
@Path  web程序访问这个jersey的resouce的路径
@PathParam 获取request中的url指定规则的参数
@Produces  用来返回给客户端(浏览器)的数据标示类型MIME, 可以作为class注释,也可以作为方法注释,方法的 @Produces 注释将会覆盖class的注释。
如:Produces("application/json")或者Produces("application/xml","application/json")
@Consumes  用来指定客户端(浏览器)发送过来的数据标示类型MIME,一般用于post或者put
如:consumes("application/xml").
@QueryParam("name")获取request中的请求查询的参数
如public List<User> getUsers(@QueryParam("name")String name);
@formParam 接收表单传递过来的数据
@BeanParam 当请求参数很多时,比如客户端提交一个修改用户的PUT请求,请求中包含很多项用户信息。这时可以用 @BeanParam。
使用@BeanParam时,需要注意的是,JavaBean必须使用 @XmlRootElement 标注,没有 @XmlElement 注释的字段将包含一个名称与之相同的XML元素。
如:@XmlRootElement
public class User{
  @XmlElement(name = "name1")
  private String name;
  @XmlElement(name="age")
  private int age;
}
然后在REST服务中使用:
@Path("/user")
public class UserResource {
  @POST
  @Produces("application/json")
  public OptionResult create(@BeanParam User user) {
    ...
  }
}

SpringMVC常用注解

@Controler 注册一个bean到spring上下文当中,bean的ID默认为类的名称开头字母小写,也可以指定,如@Controller("userContr")
@RequestMapping  请求request访问的url,和jersey的@path相对应
@PathVariable    从请求参数url中获取参数值,与jersey中的@PathParam相对应

@ModelAttribute 
1.应用于方法参数,参数可以在页面直接获取,相当于request.setAttribute(,),应用于方法参数时,@ModelAttribute("xx"),须关联到object的数据类型,基本数据类型:如int,string不起作用
2,应用于方法,将方法的返回值进入到模型对象的属性列表中

@SessionAttributes session管理,跟ModelAttributes类似,只是是把数据存放到session中,范围比ModelAttribute广泛.
@CookieValue 获取cookie信息
@RequestHeader 获取请求的头部信息



   


你可能感兴趣的:(restfull)