在进行了HTML(包含bootstrap框架)、java基础、Oracle数据库、java高级、JavaScript(包含JQuery框架)及Javaweb项目的编程学习后,笔者(初学者)决定对一些过程中的重难点及感悟思考进行总结,供自我反思与进步,也欢迎有兴趣者做交流。
(水平有限,不足敬谅!)
JSP动态网页中,ajax的应用范围十分广泛!但也会对初学者带来不少的困扰(个人感觉)。
笔者最先接触ajax,是可通过ajax实现注册登录过程中的动态提示,如注册时提示“该用户名已存在!”等;也可以应用json实现将所要编辑内容的已存在值返回模态框等;当然也包括在视频播放界面进行评论,网页只进行部分更新等这些常用且实用的功能。
简单来说,ajax通过异步方式实现功能,存在于网页与数据库之间,也只需与库进行少量的数据交换即可实现对部分网页的更新,而不会打断或影响网页全局的应用。方便快捷,效率极高,杜绝许多浪费;但也因为打破了原有的网页运作模式,在数据安全方面存在一定风险。
ajax通常以json形式传输数据——json是一种轻量级的主流数据交换格式,易于人、机读写,也以"key"-"value"的形式存储数据,如:
{"checkBook":"editBook"}。
ajax可谓涉猎广泛,但绝非广而不精!在使用jQuery的情况下使用ajax,代码十分精炼!只需定位所需的url、数据传输方式(get/post)、所要传输的少量数据、返回数据的格式(json/String)、及成功或失败后的函数即可。如:
//编辑图书 $('button[name="editBk"]').click(function () { var editNum = $(this).val(); $.ajax({ url: 'CheckBkServlet', type: 'get', data: { editNum: editNum }, dataType: 'json', success: function (data) { var myJson = JSON.stringify(data); $('#editBkNum').val(data[0].bsNum); $('#editBkNam').val(data[0].bsNam); $('#editAut').val(data[0].bsAut); $('#editPub').val(data[0].bsPub); $('#editBkDat').val(data[0].bsDat); $('#editAmt').val(data[0].bsAmt); $('#editPri').val(data[0].bsPri); $('#editBkModal').modal('show'); }, error: function (xhr, textStstus) { console.log("错误"); } }); });
在对应的servlet中,结合输出流使用,部分代码如下:
String num = request.getParameter("editNum"); int editNum = 0; if (num != null) { editNum = Integer.parseInt(num); } TsBizInter tb = new TsBizImpl(); Books editBk = tb.checkBk(editNum); ArrayList<Books> booksArrayList = new ArrayList<>(); booksArrayList.add(editBk); JSONArray jsonArray = new JSONArray(); jsonArray = jsonArray.fromObject(booksArrayList); PrintWriter printWriter = response.getWriter(); printWriter.print(jsonArray); printWriter.flush(); printWriter.close();
最终在模态框中展示出来的效果如下图: