$Post传参

通过POST传参的话,HttpServletRequest接收参数的方法 

request.getParameter(String) 
request.getParameterValues(String) 
request.getParameterNames() 
一个一个介绍,第一种getParameter(String),这种接收参数方法用于接收单个参数或者多个参数(多个参数用英文逗号隔开),方法内传递一个String类型的参数名,请求地址如下:singleParam?param=Jack,Rose,Tom(我这个在struts2中的写法),前端代码如下:

<a href="singleParam?param=Jack,Rose,Tom">多个参数一</a><br/>

后台接收代码

Loglog = LogFactory.getLog(Action.class); publicString singleParam(){ HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); log.info(request.getParameter("param")); String[] param = request.getParameter("param").split(","); for(int i=0;i<param.length;i++){ log.info(param[i]); } return SUCCESS; }

代码解释:将Action上下文获取的HTTP_REQUEST转型成HttpServletRequest,获取参数用逗号分割,隔出来的参数为String类型的数组,遍历打印日志

第二种getParameterValues(String),用于接收多个参数名相同的参数,比如:manyParam?param=Jack&param=Rose&param=Tom,参数名都叫做param,方法内传递的String类型的参数为那个一致的名称,本例中就是param,前端页面代码:

<a href="manyParam?param=Jack&param=Rose&param=Tom">多个参数二</a>
  • 1
  • 1

后台接收参数的代码块:

public String manyParam(){
        HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
        log.info(request.getParameterValues("param"));
        String[] param = request.getParameterValues("param");
        for(int i=0;i<param.length;i++){
            log.info(param[i]);
        }
        return SUCCESS;
    

第三种getParameterNames(),得到传递的参数名列表,返回一个Enumeration对象,遍历这个对象就可以循环得到每一个参数名。例如:paramName?param1=Apple&param2=Banana&param3=Orange,有三个参数param1,param2,param3,前台页面代码:

<a href="paramName?param1=Apple&param2=Banana&param3=Orange">多个参数 参数名</a>
  • 1
  • 1

后台接收参数代码:

public String paramName(){
        HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
        Enumeration<String> params = request.getParameterNames();
        while(params.hasMoreElements()){
            log.info(params.nextElement());
        }
        return SUCCESS;
    }

一般Jquery $.post等ajax方法,可以用JSON传参,其实是Jquery会自己调用jquery.param()对传入参数进行序列化。序列化之后也就变成 param1=value1&param2=value2这样的URL可识别字串。详细可以查找jquery.param()的介绍。

猜你喜欢

转载自radzhang.iteye.com/blog/2367718