在struts2的拦截器中,如何获得post,get请求得内容呢?比如用户在表单得文本框中输入了某些特殊字符,或者在浏览器里面输入了一些不允许出现得字符,我想让拦截器拦截到,并且做某些处理。比如psot或者get的请求得内容是http://www.xxx.com.cn/xxx.action?id=1请问大家,我应该如何获得呢?希望知道得兄弟帮忙一下。谢谢!

解决方案 »

  1.   

    ActionContext这个对象里面可以取到你所需要在东西,查看一下API吧
      

  2.   

    用ServletActionContext类获取,
    String id = (String)ServletActionContext.getRequest().getParameter("id");
    就可以获取到url中的值
      

  3.   

    楼上的说的,相当于这个拦截器已经写死了,就是为这个action服务的,这样就失去了拦截器的价值。
    我来说一下思路:
    在invoke调用之前,Map parame = ServletActionContext.getRequest().getParameterMap();
    然后遍历param,得到所有的值,对值进行一些处理,比如禁用词过滤等等。
      

  4.   

    Object obj = invocation.getAction();
    String str = "shit";
    String newStr = "*";
    if(obj != null){
    if(obj instanceof PublishAction){
    PublishAction publishAction = (PublishAction)obj;
    String content = publishAction.getContent();                  //输入的content内容
    System.out.println("输入的content内容:" + content);
    if(content!=null){
    if(content.contains(str)){
    content = content.replaceAll(str, newStr);
    publishAction.setContent(content);
    }
        return invocation.invoke();
    }
    else{
    return Action.LOGIN;
    }
    }
    else{
    return Action.LOGIN;
    }
    }
    return Action.LOGIN;
    }
      

  5.   

    org.apache.struts2.ServletActionContext.getRequest().getMethod();
      

  6.   

    struts会把这些值放入valuestack里