先介绍一下JS中处理URL的方法:
网址示例:http://localhost/test/test.htm?id=1
[javascript] view plaincopyprint?
- <mce:script languge=javascript><!--
- alert(window.location.pathname); --返回 /test/test.htm
- alert(window.location.search); --返回 ?id=1
- alert(window.location.href); --返回 http://localhost/test/test.htm?id=1
- // --></mce:script>
<mce:script languge=javascript><!-- alert(window.location.pathname); --è¿å /test/test.htm alert(window.location.search); --è¿å ?id=1 alert(window.location.href); --è¿å http://localhost/test/test.htm?id=1 // --></mce:script>
location对象
含有当前URL的信息.
属性
href 整个URL字符串.
protocol 含有URL第一部分的字符串,如http:
host 包含有URL中主机名:端口号部分的字符串.如//www.zzcn.net/server/
hostname 包含URL中主机名的字符串.如http://www.zzcn.net/ ;
port 包含URL中可能存在的端口号字符串.
pathname URL中"/"以后的部分.如~list/index.htm
hash "#"号(CGI参数)之后的字符串.
search "?"号(CGI参数)之后的字符串.
在HTML中用JS接收参数用到的函数
[javascript] view plaincopyprint?
- function getParameter(param)
- {
- var query = window.location.search;
- var iLen = param.length;
- var iStart = query.indexOf(param);
- if (iStart == -1)
- return "";
- iStart += iLen + 1;
- var iEnd = query.indexOf("&", iStart);
- if (iEnd == -1)
- return query.substring(iStart);
- return query.substring(iStart, iEnd);
- }
function getParameter(param) { var query = window.location.search; var iLen = param.length; var iStart = query.indexOf(param); if (iStart == -1) return ""; iStart += iLen + 1; var iEnd = query.indexOf("&", iStart); if (iEnd == -1) return query.substring(iStart); return query.substring(iStart, iEnd); }
使用的时候:var temp = getParameter("传过来的参数");
必须得xx.htm?xx=xx这样用哦。呵呵,,,
HTML静态参数做法(JavaScript接收)---- 2
[javascript] view plaincopyprint?
- /**
- * HTML接收参数
- */
- function request(paramName)
- {
- //获取URL的字符串
- var sSource=String(window.document.location);
- var sName= paramName;
- var sReturn="";
- var sQUS="?";
- var sAMP="&";
- var sEQ="=";
- var iPos;
- //获取sSource中的"?",无则返回 -1
- iPos=sSource.indexOf(sQUS);
- if(iPos==-1)
- return;
- //汲取参数,从iPos位置到sSource.length-iPos的位置,
- //若iPos = -1,则:从-1 到 sSource.length+1
- var strQuery=sSource.substr(iPos,sSource.length-iPos);
- // alert(strQuery);
- //先全部转换为小写
- var strLCQuery = strQuery.toLowerCase();
- var strLCName = sName.toLowerCase();
- //从子字符串strLCQuery中查找“?”、参数名,以及“=”,即“?参数名=”
- iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ);
- //alert(iPos);
- //如果不存在
- if(iPos == -1)
- {
- //继续查找可能的后一个参数,即带“&参数名=”
- iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ);
- }
- //判断是否存在参数
- if(iPos != -1)
- {
- sReturn = strQuery.substr(iPos + sName.length + 2,strQuery.length-(iPos + sName.length + 2));
- var iPosAMP = sReturn.indexOf(sAMP);
- if (iPosAMP == -1)
- {
- return sReturn;
- }
- else
- {
- sReturn = sReturn.substr(0,iPosAMP);
- }
- }
- return sReturn;
- }
/** * HTMLæ¥æ¶åæ° */ function request(paramName) { //è·åURLçå符串 var sSource=String(window.document.location); var sName= paramName; var sReturn=""; var sQUS="?"; var sAMP="&"; var sEQ="="; var iPos; //è·åsSourceä¸ç"?"ï¼æ åè¿å -1 iPos=sSource.indexOf(sQUS); if(iPos==-1) return; //æ±²ååæ°ï¼ä»iPosä½ç½®å°sSource.length-iPosçä½ç½®ï¼ //è¥iPos = -1ï¼åï¼ä»-1 å° sSource.length+1 var strQuery=sSource.substr(iPos,sSource.length-iPos); // alert(strQuery); //åå¨é¨è½¬æ¢ä¸ºå°å var strLCQuery = strQuery.toLowerCase(); var strLCName = sName.toLowerCase(); //ä»åå符串strLCQuery䏿¥æ¾â?âãåæ°åï¼ä»¥åâ=âï¼å³â?åæ°å=â iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ); //alert(iPos); //妿ä¸åå¨ if(iPos == -1) { //ç»§ç»æ¥æ¾å¯è½çåä¸ä¸ªåæ°ï¼å³å¸¦â&åæ°å=â iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ); } //夿æ¯å¦åå¨åæ° if(iPos != -1) { sReturn = strQuery.substr(iPos + sName.length + 2,strQuery.length-(iPos + sName.length + 2)); var iPosAMP = sReturn.indexOf(sAMP); if (iPosAMP == -1) { return sReturn; } else { sReturn = sReturn.substr(0,iPosAMP); } } return sReturn; }
比如URL=www.123.com?a1=中国&a2=美国&日本
参数接收:
[javascript] view plaincopyprint?
- <mce:script language="javascript"><!--
- var a1=request("a1");
- var a2=request("a2");
- var a3=request("a3");
- alert("a1="+a1+",a2="+a2+",a3="+a3);
- // --></mce:script>
<mce:script language="javascript"><!-- var a1=request("a1"); var a2=request("a2"); var a3=request("a3"); alert("a1="+a1+",a2="+a2+",a3="+a3); // --></mce:script>
<div id= 'username '> </div>
<script language= 'javascript '>
document.getElementById( 'username ').innerHTML = getcookie( 'username ');
</script>
注意:document.getElementById( 'username ').innerHTML = getcookie( 'username '); 一定要放在所要得到数据DIV 的下面
JSP 接收带中文的参数
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String userName = new String(request.getParameter("username").getBytes("iso8859-1"),"UTF-8");
String birthday = new String(request.getParameter("birthday").getBytes("iso8859-1"),"UTF-8");
String myparameter = (String)request.getAttribute("another");
%>
用户名:<%=userName %>
用户生日:<%=birthday %>
用户自定义参数:<%=myparameter %>
JSP页面中需要加入:
<%@ page contentType = "text/html; charset=GBk" %>
<%@page pageEncoding= "GBk"%>
<%request.setCharacterEncoding( "GBk");%>
<%@ page import="java.net.URLEncoder" %>