分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Ajax -02 -JQuery+Servlet -实现页面点击刷出表格数据

发布时间:2023-09-06 02:31责任编辑:郭大石关键词:Ajax
  1. demo功能分析

    1. jquery 的js文件需要导入,json的三个文件需要导入,不然writeValueAsString 会转化成JsonArray(json 数组)失败
    2. $("#mytbody").html(result);相当innerHTML先清空后添加 ,并且注意对应下面的id,需要加 "#" !
    3.  在servelt中
      1.    resp.setContentType("application/json;charset=utf-8"); //设置json字符流为utf-8
      2.           PrintWriter out = resp.getWriter(); out.print() 中的内容就是服务器返回的内容 ,out里不要写(返回)其他的多余信息, 笔者不小心加上了一段辅助信息   "
         out.print("服务器返回的内容: \n");
        "  ,然后找了大半天的bug! 毕竟,加上后,json就没法进行解析了!!
      3. jquery.post()的callback 是成功时的回调函数, 接受 out.print() 中的json内容,然后以html的形式进行显示 
      4. api :  
      5. 数据库:没有, 数据只有两个简单的Users对象,组成一个ArrayList. 
      6. EL表达式同样胜任.
  2. 工程组织

    1.   

  3. servlet 代码

    1.   
      public class Users { ???private int id; ???private String password,username; ??// ??getter/setter........ ?????}
      import com.fasterxml.jackson.databind.ObjectMapper;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;
      头文件
      @WebServlet("/demo")public class DemoServlet extends HttpServlet { ???@Override ???protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ???????System.out.println("执行demo控制器............"); ???????Users users=new Users(); //建立pojo对象 ???????users.setId(1); ???????users.setPassword("123456"); ???????users.setUsername("张三"); ???????Users users2=new Users(); //建立pojo对象2 ???????users2.setId(2); ???????users2.setPassword("123456"); ???????users2.setUsername("李四"); ???????ArrayList<Users> list=new ArrayList(); ???????list.add(users); ???????list.add(users2); ???????ObjectMapper mapper = new ObjectMapper(); //将对象list转化为json字符串 ???????String result= mapper.writeValueAsString(list); ???????????????????????????//请求头:MIME 格式; ???????resp.setContentType("application/json;charset=utf-8"); //设置json字符流为utf-8 ???????PrintWriter out = resp.getWriter(); ????// ??out.print("服务器返回的内容: \n"); ???????out.println(result); ???????out.flush(); ???????out.close(); ???}}

       测试/demo 控制器

  4. JQuery 代码

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %><html> ?<head> ???<title>$Title$</title> ???<script type="text/javascript" src="js/jquery-1.7.2.js"></script> ???<script type="text/javascript"> ???????$(function () { ???????????$("a").click(function () { ???????????????$.post("demo",{},function (data) { ???????????????????var result=""; ???????????????????for(var i=0;i<data.length;i++){ ???????????????????????result+="<tr>"; ???????????????????????result+="<td>"+data[i].id+"</td>"; ???????????????????????result+="<td>"+data[i].username+"</td>"; ???????????????????????result+="<td>"+data[i].password+"</td>"; ???????????????????????result+="</tr>"; ???????????????????} ???????????????????//$("table").append(result); ???????????????????//相当innerHTML先清空后添加 ???????????????????$("#mytbody").html(result); ???????????????}) ???????????????return false; ???????????}) ???????}); ???</script> ?</head> ?<body> ???<a href="demo">点击显示下面表单的详细信息</a> ???<br/> ???<br> ???<table border="1"> ?????<tr> ???????<td>编号</td> ???????<td>账号</td> ???????<td>密码</td> ?????</tr> ?????<tbody id="mytbody"></tbody> ???</table> ?</body></html>

    2. 最后, jsp的EL表达式同样可以实现这个功能,个人感觉还更方便,一个setParameter ,另一个直接getParameter ,岂不更直接了断哉23333~~ 

        

Ajax -02 -JQuery+Servlet -实现页面点击刷出表格数据

原文地址:https://www.cnblogs.com/zhazhaacmer/p/10315380.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved