传统form方式

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 标签</title>
</head>
<body>
	<form action="servlet/DoRequestServlet" method="get">
		<p>
			姓名: <input type="text" name="name" />
		</p>
		<p>
			地址: <input type="text" name="address" />
		</p>
		<input type="submit" value="Submit" />
	</form>
</body>
</html>

测试运行
不基于form表单的请求方式(前端一)

反馈结果(这里不展示后台代码)
不基于form表单的请求方式(前端一)

基于button方式改进

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 标签</title>
</head>
<body>
	<button type="button" onclick="clickEvent()">更新</button>

	<div>
		<p>
			姓名: <input type="text" name="name" />
		</p>
		<p>
			地址: <input type="text" name="address" />
		</p>
	</div>
</body>

<script type="text/javascript">
	function clickEvent() {
		var turnForm = document.createElement("form");
		// 一定要加入到body中!!   
		document.body.appendChild(turnForm);
		turnForm.method = 'get';
		turnForm.action = 'servlet/DoRequestServlet';
		// 创建隐藏表单
		var name = document.getElementsByName("name")[0].value;
		var address = document.getElementsByName("address")[0].value;
		var nameElement = document.createElement("input");
		nameElement.setAttribute("name", "name");
		nameElement.setAttribute("type", "hidden");
		nameElement.setAttribute("value", name);
		turnForm.appendChild(nameElement);
		var addressElement = document.createElement("input");
		addressElement.setAttribute("name", "address");
		addressElement.setAttribute("type", "hidden");
		addressElement.setAttribute("value", address);
		turnForm.appendChild(addressElement);
		// 提交
		turnForm.submit();
	}
</script>

</html>

测试运行
不基于form表单的请求方式(前端一)

反馈结果(这里不展示后台代码)
不基于form表单的请求方式(前端一)

基于 h5新特性form元素改进

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 标签</title>
</head>
<body>
	<button type="button" onclick="clickEvent()">更新</button>

	<div>
		<p>
			姓名: <input type="text" name="name" />
		</p>
		<p>
			地址: <input type="text" name="address" />
		</p>
	</div>
</body>

<script type="text/javascript">
	function clickEvent() {
		var turnForm = document.createElement("form");
		turnForm.setAttribute("id", "form1");
		// 一定要加入到body中!!   
		document.body.appendChild(turnForm);
		// 表单属性
		turnForm.method = 'get';
		turnForm.action = 'servlet/DoRequestServlet';
		// 新增的form属性
		var nameElement = document.getElementsByName("name")[0];
		var addressElement = document.getElementsByName("address")[0];
		
		// form中的id属性 匹配 input中的form属性
		nameElement.setAttribute("form", "form1");
		addressElement.setAttribute("form", "form1");
		
		// 提交
		turnForm.submit();
	}
</script>

</html>

测试运行
不基于form表单的请求方式(前端一)

反馈结果(这里不展示后台代码)
不基于form表单的请求方式(前端一)

基于异步请求XMLHttpRequest方式改进

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 标签</title>
</head>
<body>
	<button type="button" onclick="clickEvent()">更新</button>

	<div>
		<p>
			姓名: <input type="text" name="name" />
		</p>
		<p>
			地址: <input type="text" name="address" />
		</p>
	</div>
</body>

<script type="text/javascript">
	function clickEvent() {
		// 
		var name = document.getElementsByName("name")[0].value;
		var address = document.getElementsByName("address")[0].value;
		
		// url 拼接参数
		var url = "http://localhost:8080/dyWeb/servlet/DoHttpRequestServlet?name=" + name + "&address=" + address;
		// 
		var xmlHttpReq = new XMLHttpRequest();
		xmlHttpReq.open("GET", url, true);
		
		xmlHttpReq.onreadystatechange = function HandleStateChange()
		{
			if (xmlHttpReq.readyState == 4)
		 	{
		    	alert("Result = " + xmlHttpReq.responseText);
		  	}
		}
		xmlHttpReq.send();
	}
</script>

</html>

测试运行
不基于form表单的请求方式(前端一)

反馈结果(这里不展示后台代码)
不基于form表单的请求方式(前端一)

基于jquery库ajax方式改进

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>form 标签</title>
</head>
<body>
	<button type="button" onclick="clickEvent()">更新</button>

	<div>
		<p>
			姓名: <input type="text" name="name" />
		</p>
		<p>
			地址: <input type="text" name="address" />
		</p>
	</div>
</body>

<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
	function clickEvent() {
		// 
		var name = $("input[name='name']").val();
		var address = $("input[name='address']").val();

		// url 
		var url = "http://localhost:8080/dyWeb/servlet/DoHttpRequestServlet";
		// 
		$.ajax({
			type : "GET",
			url : url,
			data: "name=" + name + "&address=" + address,
			success : function(html) {
				alert("Result = " + html);
			}
		});
	}
</script>

</html>

测试运行
不基于form表单的请求方式(前端一)

反馈结果(这里不展示后台代码)
不基于form表单的请求方式(前端一)

相关文档下载

不基于form表单的请求方式(前端一)

不基于form表单的请求方式(前端一)

链接:https://pan.baidu.com/s/1HOl_CxCUooiRjfBzcnd30g
提取码:g08w

相关文章: