Jsp页面获得url参数的方式
展开
url为 http://localhost:8080/demo/hello.jsp?name=susan
1)java代码 request获取
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String name = request.getParameter("name");//用request得到
%>
在页面中显示该值
<html>
<body>
hello:<%=name%>
</body>
</html>
2)使用jstl 方式
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
因为当使用jstl时,url请求参数被放置到隐含对象param中,所以可以用 ${name} 或者${param.name}直接获取到。
比如页面中:
<html>
<body>
hello:${param.name}
</body>
</html>
js中:
$(function(){
alert(${param.name});
});
3)js代码取得
function getUrlPara1(strName){
var strHref = document.location.href;
var intPos = strHref.indexOf("?");
var strRight = strHref.substr(intPos + 1);
var arrTmp = strRight.split("&");
for(var i = 0; i < arrTmp.length; i++ ) {
var arrTemp = arrTmp[i].split("=");
if(arrTemp[0].toUpperCase() == strName.toUpperCase())
return arrTemp[1];
}
return 0;
}
使用正则表达式的写法:
function getUrlPara(strName){
var reg = new RegExp("(^|&)"+strName+"=([^&]*)(&|$)","i");
var r = decodeURI(window.location.search).substr(1).match(reg);
if(r!=null) return (r[2]);
return null;
}
调用
var testUrl=getUrlPara("name");