当前位置: java基础教程 > 22-servlet框架 > 阅读正文

前端页面发送请求

2021.3.22.   982 次   1700字

发送请求, 通常有 ①使用 form 表单快速提交, ②使用 ajax 提交

使用 form 表单提交

其中 action 表示发送的 url , method 表示发送的方式, 发送数据时,

<form action="xxxServlet" method="post">
   xxx代码
</form>

使用此方式提交时, 通常需要注意的有:

  • 使用 onblur 属性检测每个 input 的输入是否正确
  • 使用 form 的 onsubmit 检测整个表单
  • 使用 input 的 name 属性, 否则无法提交数据

当你需要使用 post,限定不能再增加 input,此时可以用以下方法

<form action=“loginServlet?t=123456” method=“post”>
   xxx内容
</form>

这个方式是在 post 请求中,把请求url写成一个显示的get请求并赋予参数,这里称为 post 隐藏传参

这种方式在后端仍监听 post,而t参数也被包含在请求参数中。

使用ajax提交请求

使用 ajax 发送请求时, 不会更新整个页面, 只会局部更新, 非常方便, 下面仅展示 jquery 下的 ajax 提交

jquery 实现的 ajax 更简单,方便,有 3 种实现写法。

( 下载 jquery 源文件,点击这里 )

$.ajax 方式

发送的数据通常使用 json 格式,可以一次发送多对值

(实际参数比列出的要多,这里只列出了常用参数)

$.ajax({
	url:"ajaxServlet1111" , // 请求路径
	type:"POST" , //请求方式
	//data: "username=jack&age=23",//请求参数
	data:{"username":"jack","age":23},
 
	success:function (data) {
		alert(data);
	},//响应成功后的回调函数
	error:function () {
		alert("出错啦...")
	},//表示如果请求响应出现错误,会执行的回调函数

	dataType:"text"//设置接受到的响应数据的格式
});
$.get 方式

只能发送 get 请求,比 $.ajax 方式更简单

//只有 4 个参数,①url,②数据,③响应回调函数,④响应数据格式

$.get("ajaxServlet",{username:"rose"},function (data) {
    alert(data);
},"text");
$.post 方式

只能发送 post 请求,比 $.ajax 方式更简单

//只有 4 个参数,①url,②数据,③响应回调函数,④响应数据格式

$.post("ajaxServlet",{username:"rose"},function (data) {
    alert(data);
},"text");

响应数据格式可以省略,浏览器会自动根据响应的 MIME 类型判断

选择那种请求方式?

对用户的操作, 常用异步请求, 如果使用表单提交, 那么仅能校验格式, 而无法校验数据库,

而表单提交后, 必定会跳转页面, 一旦无法登录, 你不得不重定向回来继续输入!!!

通常在表单中使用ajax

//checkAll绑定表单的submit方法,不写action和method
//当表达提交时,调用所有的校验方法
function checkall(){
	// 1.发送数据到服务器
	if(nameflag&&checkPassWord()&&checkRePassWord()&&checkEmail()&&checkCode2()){
		//ajax异步请求
		// alert("校验通过")
		$.post("registUserServlet",{username:$("#username").val(),
			password:$("#pwd").val(),email:$("#email").val()},
				function(msg){
				//刷新验证码,下次注册必须重新输入
					changeCode();
					if(msg!="注册成功"){
						alert( "提示: " + msg);
					}else {
						//注册成功
					}

				},"text");
	//注册成功, 直接重定向
					location.href="register_ok.html";
	};
	//2.注册不成功,表单提交不通过
	return false;
}

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群