针对url进行处理

来源:互联网 发布:软件不兼容高分辨率 编辑:程序博客网 时间:2024/05/22 00:50


第一种是在java程序中获取的方法:

public static String getFullUrl(HttpServletRequest request){int port  = request.getServerPort();String strBackUrl = "http://" + request.getServerName() //服务器地址                  + (port==80?"":":" + request.getServerPort())                    + request.getContextPath()      //项目名称                  + request.getServletPath()  ;    //请求页面或其他地址          if(!StringHelp.IsNullOrEmpty(request.getQueryString())){        strBackUrl += "?" + (request.getQueryString()); //参数          }return strBackUrl;}

这是在java程序中获取完整的url    在action中可以通过ServletActionContext.getRequest()的方法获取request对象

这里提供一个网友的方法比较好用 用途是:用来获取url中的参数  返回值是map对象


 /**     * 去掉url中的路径,留下请求参数部分     * @param strURL url地址     * @return url请求参数部分     */    private static String TruncateUrlPage(String strURL)    {    String strAllParam=null;      String[] arrSplit=null;           strURL=strURL.trim().toLowerCase();           arrSplit=strURL.split("[?]");      if(strURL.length()>1)      {          if(arrSplit.length>1)          {                  if(arrSplit[1]!=null)                  {                  strAllParam=arrSplit[1];                  }          }      }         return strAllParam;       }   /**     * 解析出url参数中的键值对     * 如 "index.jsp?Action=del&id=123",解析出Action:del,id:123存入map中     * @param URL  url地址     * @return  url请求参数部分     */    public static Map<String, String> URLRequest(String URL)    {    Map<String, String> mapRequest = new HashMap<String, String>();         String[] arrSplit=null;         String strUrlParam=TruncateUrlPage(URL);    if(strUrlParam==null)    {        return mapRequest;    }      //每个键值为一组 www.2cto.com    arrSplit=strUrlParam.split("[&]");    for(String strSplit:arrSplit)    {          String[] arrSplitEqual=null;                   arrSplitEqual= strSplit.split("[=]");                   //解析出键值          if(arrSplitEqual.length>1)          {              //正确解析              mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);                       }          else          {              if(arrSplitEqual[0]!="")              {              //只有参数没有值,不加入              mapRequest.put(arrSplitEqual[0], "");                     }          }    }       return mapRequest;       }    


第二种是在jsp中通过js 的代码获取url中的参数值


/** * 获取url参数 * @param paras 要获取的参数名称 * @returns */function request(paras) {    var url = location.href;    var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");    var paraObj = {}    for (i = 0; j = paraString[i]; i++) {        paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);    }    var returnValue = paraObj[paras.toLowerCase()];    if (typeof (returnValue) == "undefined") {        return "";    } else {        return returnValue;    }}  
如:url= localhost:8080/test?name='张三'

那么通过  js   alert(request(name));即可获得name的属性值。



0 0
原创粉丝点击