`

基于java restful web services jersey的pojo对象如何获取HttpServletRequest对象

阅读更多

      当你在jsp页面通过JS方式调用restful web services服务提供的某个方法时,往往需要在方法中获取request,response等对象,例如,假如你希望在方法中判断用户输入的验证码与你保存到session中的值是否一致,那么你就必须要获取request对象。那jersey是如何满足这一需求的呢?很简单,只要通过@Context标注就可以实现,具体就是在你需要调用的方法中增加一如@Context HttpServletRequest request的参数,调用的时候不用传入这个参数,直接在方法中直接调用request对象即可。

 

下面是一个检验验证码的例子

 

pojo类的方法如下:

@GET
 @Produces(MediaType.TEXT_PLAIN)
 public String validate(@DefaultValue("") @QueryParam("authCode") String authCode,
       @Context HttpServletRequest request){
  String flag = "false";
  String sessionAuthCode = ""+request.getSession().getAttribute("authCode");
  if(sessionAuthCode != null && sessionAuthCode.equalsIgnoreCase(authCode)){
   flag = "true";
  }
  return flag;
 }

 

页面通过jquery进行访问:

jQuery.ajax({
    type: "GET",
    url: '<%=path%>/services/authCodeValidator',
    data: "authCode="+authCode,
    success: function(data) {
      flag = data;
      if(flag == "false"){
          alert("验证码错误!");
          return;
      }   

}
  });

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics