最近在看h5的时候,不但要请求后台数据,前台还要向h5传入参数,刚刚接触h5并不知道怎么办,搜了好久,找到一个简单的方法,先看第一个页面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<a href="jssendValue.html? id=1" target="_blank">aaaaaaaaaaa</a>
</body>
</html>
然后看第二个页面,第二个页面是用来接收第一个页面传过来的参数的:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script language="javascript">
function getParameter(param) {
var query = window.location.search; //获取URL地址中?后的所有字符
var iLen = param.length; //获取你的参数名称长度
var iStart = query.indexOf(param); //获取你该参数名称的其实索引
if(iStart == -1) //-1为没有该参数
return "";
iStart += iLen + 1;
var iEnd = query.indexOf("&", iStart); //获取第二个参数的其实索引
if(iEnd == -1) //只有一个参数
return query.substring(iStart); //获取单个参数的参数值
return query.substring(iStart, iEnd); //获取第二个参数的值
}
function init() {
var param = getParameter("id");
document.getElementById("a").value = param;
}
</script>
</head>
<body onload="init()">
this is a test <br>
<input id="a" type="text" />
</body>
</html>
究其原理,其实就是找到"&"这个字符,然后获取符号前后的参数值.可是这只是静态页面之间的传值,虽然这个页面请求了后台,但他并不是动态页面,如何将单纯的h5页面变成动态页面呢,其实这就要牵扯到jsp了,当我们从手机*问这个h5页面时,我们需要给其中的页面传入对应的参数,否则这个h5页面没有参数无法访问后台并获取数据,当然是用静态页面传值的方法肯定是能够实现的,使用静态页面我们只需要将对应参数拼接在url后面即可,可是如果h5页面比较多的话,这就很麻烦,所以我们选择动态传值,那就是将h5所需要的参数放入map集合中,讲这个集合作为头部添加到url中,请牢记map中的key值,因为在h5页面中获取的时候还要用到。那么,怎么才能在h5页面中获取url头部信息呢:例子如下:
首先在页面最顶部加上下面两句话,就是导入相关工具
<%@page contentType="text/html" pageEncoding="utf-8"%>
<%@page import="java.util.*"%>
然后在需要的地方进行获取数据:
var headerId = "<%=request.getHeader("id")%>";
var headerName = "<%=request.getHeader("name")%>";
这样我们就获取到了前台传入的参数,为了方便使用,我们把它缓存下来,:
localStorage.setItem('userId', headerId);
localStorage.setItem('userName',headerName);
localStorage是h5的缓存工具。