异步请求1

本文介绍了一个使用JSP前端与Servlet后端进行数据交换的例子。前端通过AJAX每三秒请求一次后端Servlet来获取JSON数据,并更新页面显示。后端Servlet使用Gson将List类型的数据转换为JSON字符串返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我前端用的jsp,后端用的是servlet ,请求是还回了json串


=======================================================JSP===========================================

<script type="text/javascript">
    function refush() {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) { //如果是响应返回了
                var text = xhr.responseText;
                var arry = eval("(" + text + ")");
                document.getElementById("cont1").innerHTML = arry[0];
                document.getElementById("cont2").innerHTML = arry[1];
            }
        };
        xhr.open("get", "../Xiawan_pc/getcount?cj=1", false); // 发送请求前的准备
        xhr.send();

    };
    setInterval("refush()", 3000);  // 定时功能   3000毫秒
</script>

========================================================servlet==================================================

public class FindAction extends HttpServlet {
    UserSerice userservice = new UserServiceImpl();

    @Override
    public void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        List<Long> list = userservice.firstcount();
        if (list.size() == 2) {
            request.setAttribute("manycount", list.get(0));
            request.setAttribute("onlinecount", list.get(1));
        } else {
            request.setAttribute("manycount", list.get(0));
        }
        String cj = request.getParameter("cj");
        Object many = request.getAttribute("many");
        if (many != null) {
            String may = (String) many;
            cj = "9999999";
            if ("tiao".equals(may)) {
                List<User> user = userservice.findAll(1, 2);
                request.setAttribute("alluser", user);
                RequestDispatcher rd = request
                        .getRequestDispatcher("Jsp/showalluser.jsp");
                rd.forward(request, response);
            }
        }
        // System.out.println(list.get(0)+"              cj="+cj+"              "+list.get(1));
        if (cj == null) {
            // System.out.println("会打印cj=null吗");
            RequestDispatcher rd = request
                    .getRequestDispatcher("Jsp/Manycount.jsp");
            rd.forward(request, response);
        } else if (cj.equals("1")) {
            // System.out.println("会打印cj=1吗");
            PrintWriter out = response.getWriter();
            Gson gson = new Gson();
            String json = gson.toJson(list);
            out.write(json);
        }

    }
}

要在web.xml 配置一下

 <servlet>
  <servlet-name>getcount</servlet-name>
  <servlet-class>com.cn.xiaw.action.FindAction</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>getcount</servlet-name>
  <url-pattern>/getcount</url-pattern>
  </servlet-mapping>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值