AJAX第一个练习(经典源码实现异步传输)

1.4 AJAX 实例
需求:计算某个用户的 BMI 。 用户在 jsp 输入自己的身高,体重; servlet 中计算 BMI ,并显示 BMI 的计算结果和建议。
BMI 指数(即身体质量指数,英文为 BodyMassIndex ,简称 BMI ),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准
成人的 BMI 数值:
1 )过轻:低于 18.5
2 )正常: 18.5-23.9
3 )过重: 24-27
4 )肥胖: 28-32
5 )非常肥胖 , 高于 32

开发步骤:
1.idea 中创建新的工程,名称:ch01-bmi-ajax

2.配置 tomcat 服务器,如果已经配置,省略此步骤。

选择 Local

配置 tomcat 服务器的位置

Module 添加 tomcat 支持

选择 2 Library

 

确定使用 tomcat

 3.创建index. jsp,有参数 nameweightheight


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>json局部刷新</title>
  

    <script type="text/javascript" >

      function doAjax() {
        //使用内存中的异步对象来代替浏览器发起请求。异步对象是使用JS创建和管理的。

        //创建异步对象
        var xmlHttp=new XMLHttpRequest();
        //绑定事件
        xmlHttp.onreadystatechange=function (){
          //处理服务器端返回的数据,更新当前页面。
          if (xmlHttp.readyState==4 && xmlHttp.status==200){
            var data=xmlHttp.responseText;
            document.getElementById("mydata").innerText=data;
          }
        }
        var name=document.getElementById("name").value;
        var weight=document.getElementById("weight").value;
        var height=document.getElementById("height").value;
        var param="name="+name+"&weight="+weight +"&height="+height;

        //初始请求对象
        xmlHttp.open("get","BmiServlet?"+param,true);
        //发起请求
        xmlHttp.send();
      }

    </script>
  </head>
  <body>
  <p>局部刷新Ajax-计算BMI</p>
  <div>
    姓名:<input type="text" id="name"><br>
    体重(公斤):<input id="weight" type="text"><br>
    身高(米):<input type="text" id="height"><br>
    <input type="button" value="计算bmi" id="btn1" onclick="doAjax()" >
  </div>
  <div id="mydata">
    等待加载数据

  </div>
  </body>
</html>

4.新建 Servlet, 名称为BmiServlet

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>json局部刷新</title>
    <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<%--    <script type="text/javascript">--%>
<%--$(function () {--%>
<%--  $("#btn1").click(function () {--%>
<%--    var name=$("#name").val();--%>
<%--    var height=$("#height").val();--%>
<%--    var weight=$("#weight").val();--%>
<%--    $.ajax({--%>
<%--      url:"BmiServlet",--%>
<%--      type:"get",--%>
<%--      data:{--%>
<%--        "name":name,--%>
<%--        "weight":weight,--%>
<%--        "height":height--%>
<%--      },--%>
<%--      dataType:"json",--%>
<%--      success:function (ms) {--%>
<%--        alert("请求成功")--%>
<%--      },--%>
<%--      error:function () {--%>
<%--        alert("请求失败");--%>
<%--      }--%>
<%--    })--%>
<%--  })--%>
<%--})--%>
<%--    </script>--%>

    <script type="text/javascript" >

      function doAjax() {
        //使用内存中的异步对象来代替浏览器发起请求。异步对象是使用JS创建和管理的。

        //创建异步对象
        var xmlHttp=new XMLHttpRequest();
        //绑定事件
        xmlHttp.onreadystatechange=function (){
          //处理服务器端返回的数据,更新当前页面。
          if (xmlHttp.readyState==4 && xmlHttp.status==200){
            var data=xmlHttp.responseText;
            document.getElementById("mydata").innerText=data;
          }
        }
        var name=document.getElementById("name").value;
        var weight=document.getElementById("weight").value;
        var height=document.getElementById("height").value;
        var param="name="+name+"&weight="+weight +"&height="+height;

        //初始请求对象
        xmlHttp.open("get","BmiServlet?"+param,true);
        //发起请求
        xmlHttp.send();
      }

    </script>
  </head>
  <body>
  <p>局部刷新Ajax-计算BMI</p>
  <div>
    姓名:<input type="text" id="name"><br>
    体重(公斤):<input id="weight" type="text"><br>
    身高(米):<input type="text" id="height"><br>
    <input type="button" value="计算bmi" id="btn1" onclick="doAjax()" >
  </div>
  <div id="mydata">
    等待加载数据

  </div>
  </body>
</html>
5.注册 Servlet ,在web.xml配置文件中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>BmiServlet</servlet-name>
        <servlet-class>BmiServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>BmiServlet</servlet-name>
        <url-pattern>/BmiServlet</url-pattern>
    </servlet-mapping>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

项目结构(个别类为测试类,实际代码就是上面的三个)

运行结果:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

做一道光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值