H5获取向下一个页面传值并接收参数

时间:2022-03-20 17:00:05

最近在看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的缓存工具。