JavaWeb(ajax+json实现自动补全+配置404页面)

目录

一、ajax

二、准备阶段

三、语法

案例一:使用jQuery的ajax即时判断用户名是否可用

案例二:使用jQuery的ajax+json实现自动补全功能

配置404页面


一、ajax

ajax:只刷新局部页面的技术

技术核心:发送请求到服务器并获得返回结果

异步:发送请求后不等返回结果,由回调函数处理结果

二、准备阶段

1、jquery-3.3.1.js

2、JSON需要的jar包:fastjson-1.2.47.jar

3、eclipse

4、将jQuery和jar包全部导入到项目中

三、语法

$.ajax({
	url:"vname.do",//请求地址 servlet
	data:{iname:name},//"iname="+name, 请求参数(传递到服务器)
	type:"post",//请求参数
	dataType:"text",//预期服务器可能返回的数据类型 
	success:function(data){//成功的回调函数 data是服务器返回的数据
		//alert(data);
		$("#aa").html(data);//innerHTML 给span赋值
	},
	error:function(){//失败的回调函数
		alert("有误");
	}
});
//      url          data        success
$.post("vname.do", {iname:name}, function(data) {
		$("#aa").html(data);
  //[dataType]
}, "text")

案例一:使用jQuery的ajax即时判断用户名是否可用

html代码:

<h2>使用jQuery的ajax即时判断用户名是否可用</h2>
用户名:<input type="text" id="sname">
<span style="color:red;" id="aa"></span>

servlet代码:

public class VNameServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置编码方式
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html; charset=UTF-8");
		//获取out
		PrintWriter out=resp.getWriter();
		//接收参数
		String name=req.getParameter("iname");
		//调用biz层 select * from 用户表 where uname = ?  返回boolean 
		String str = "该用户名可用";//可用
		//假设法:假设数据表已经存在admin这个用户
		if("admin".equals(name)) {
			str = "该用户名已存在";
		}
		//把响应输送到客户端
		out.print(str);
		out.flush();//刷新
		out.close();//关闭
	}
}

        写好servlet之后一定要在web.xml进行配置映射

jQuery代码:

$(function(){
		//给文本框添加失焦事件
		$("#sname").blur(function(){
			//获取文本框 的值
			var name=$("#sname").val();
            //把name值传到vname.do中
			$.post("vname.do", {iname:name}, function(data) {
                //赋值
				$("#aa").html(data);
			})
		});
	})

        将servlet返回回来的值赋给div

运行:

        用户名可用:

        

        当用户名为admin时:

                

案例二:使用jQuery的ajax+json实现自动补全功能

html代码:

<h2>使用jQuery的ajax+json实现自动补全功能</h2>
<input type="text" id="sname" style="width:400px"/>
<div id="aa"></div>

servlet代码:

public class AutoFillServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//设置编码方式
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html; charset=UTF-8");
		//获取out
		PrintWriter out=resp.getWriter();
		//接收参数
		String name=req.getParameter("iname");
		//调用查询全部的方法  biz层 里氏替换原则 
		UserDao ud=new UserDao();
		//用户集合 模糊查询的方法
		List<User> ls=ud.getAll(name);
		//怎么将集合--->字符串
		/**
		 * 模拟json格式: 边遍历边拼接
		 * 对象:{"uname":"xx1","uage":20}
		 * 数组:[]
		 * 对象数组:[{"uname":"xx1","uage":20},{"uname":"xx2","uage":21}]
		 */
		/*StringBuffer sb=new StringBuffer();
		sb.append("[");
		//遍历集合
		for (User u : ls) {
			sb.append("{");
			sb.append("\"uuid\":"+u.getUuid()+",");
			sb.append("\"uname\":\""+u.getUname()+"\",");
			sb.append("\"usex\":\""+u.getUsex()+"\",");
			sb.append("\"uage\":"+u.getUage());
			sb.append("},");
		}
		sb.append("]");*/
		
		//将集合--->String
		String str=JSON.toJSONString(ls);
		
		//把响应输送到客户端
		out.print(str);
		out.flush();//刷新
		out.close();//关闭
	}
}

jQuery代码:

$(function(){
    //让div隐藏
	$("#aa").hide();
	//给文本框添加失焦事件
	$("#sname").keyup(function(){//键盘事件
		//让div显示
		$("#aa").show();
		//获取文本框 的值
		var name=$("#sname").val();
		//$.post()  url,data,success,[dataType]
		$.post("autoFill.do", {iname:name}, function(data) {
			//json格式的对象数组的字符串 
			//将json格式的对象数组字符串-->js的对象数组
			//var ss=eval(data);//js方式
			var ss=$.parseJSON(data);//jQuery方式
			var sb="<ul>";
			//遍历集合
			$.each(ss,function(i,u){//下标,用户
				sb+="<li onclick=\"myf('"+u.uname+"')\" onmouseover=\"this.className='xx'\" onmouseout=\"this.className='yy'\">"+u.uname+"</li>";
			});
			sb+="</ul>";
			//给div赋值
			$("#aa").html(sb);
		})
	});
})
	
	function myf(name) {
		//给文本框赋值
		$("#sname").val(name);
		//让div隐藏
		$("#aa").hide();
	}

运行:

配置404页面

        第一步:找到web.xml

        第二步:在</web-app>之前配置以下代码:

<error-page>
  <error-code>404</error-code>
  <location>/error.jsp</location>//要跳转的404界面
 </error-page>

要成功地进行Xilinx Zynq-7000 SoC的集成开发,你将需要熟悉TLZ7xH-EVM开发板的硬件特性以及相应的软件编程。在此,我们推荐参考以下资源《创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7》,这将为你的项目提供详尽的支持。 参考资源链接:[创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7](https://wenku.youkuaiyun.com/doc/80nyorov3y) 首先,在硬件编程方面,你需要了解开发板的硬件架构和资源。TLZ7xH-EVM开发板集成了双核ARM Cortex-A9处理器和Kintex-7 FPGA。你应该首先阅读Zynq-7000开发板规格书,了解各个硬件接口和信号引脚的详细信息。根据你的项目需求,进行硬件资源配置,包括配置处理器的时钟频率、电源管理、存储接口以及外设接口等。 其次,在软件编程方面,Xilinx提供了Vivado和SDK套件,用于硬件逻辑设计和软件应用开发。在Vivado中,你需要完成硬件平台的设计和生成,包括创建项目、综合、实现和生成比特流文件。完成硬件设计后,你可以通过Xilinx SDK进行软件编程,创建应用程序和驱动,以与硬件平台交互。编写代码时,你需要参考开发板提供的Demo程序,这些示例程序展示了如何加载和运行用户代码。 确保你具备相关的硬件编程经验,以及掌握至少一种用于嵌入式开发的编程语言,如C/C++。在软件开发过程中,你还需要了解操作系统的选择和配置,比如使用PetaLinux等。 集成开发成功的关键在于硬件和软件的紧密配合,这通常需要进行多次迭代和调试。使用TLZ7xH-EVM开发板上的调试接口,比如JTAG和串口,进行代码调试和性能分析。 在开发过程中,不妨利用创龙科技提供的技术支持和服务,及时解决开发中遇到的问题。此外,你可以利用公司提供的增值服务平台,如定制化开发、培训等,进一步提升开发效率和产品品。 综上所述,通过阅读相关规格书,使用Vivado和SDK进行硬件设计和软件编程,结合创龙科技的技术支持,你将能够高效地完成Zynq-7000 SoC的集成开发任务。对于那些希望深入学习和探索更多高级功能和技巧的读者,我们再次推荐《创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7》,这份资料不仅帮助你入门,还将引导你掌握更深层次的知识。 参考资源链接:[创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7](https://wenku.youkuaiyun.com/doc/80nyorov3y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码怎么敲啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值