第一种是在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的属性值。