首页 > 编程语言 >Javaweb(十二)

Javaweb(十二)

时间:2023-10-21 22:31:36浏览次数:34  
标签:username Java Javaweb request xhttp 十二 JSON response

1、Ajax:异步的JavaScript和XML

1.1、Ajax的作用:

①、与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据

使用了AJAX和服务器进行通信,就可以使用HTML+AJAX来替换JSP页面了

image.png

②、异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用校验等等…

1.2、Ajax快速入门:

image.png

//Servlet的编写
@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //响应数据
        response.getWriter().write("Hello ajax!");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

html的编写:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    //1、创建核心对象
    var xhttp;
    if (window.XMLHttpRequest) {
        xhttp = new XMLHttpRequest();
    } else {
        xhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //2、发送请求
    /**
     * 参数一表示请求的方式,参数二要写全路径
     * */
    xhttp.open("GET", "http://localhost:8080/test/ajaxServlet");
    xhttp.send();
    //3、获取响应
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            //this.responseText就是返回的数据
            alert(this.responseText);
        }
    };

</script>

</body>
</html>

然后浏览器一访问这个html就会调用alert输出里面的信息。

1.3、用户注册案例,当用户在注册框输入用户名后的鼠标离开后,就会自动校验该用户名是否可用,实现的思路如下所示:

①、编写Servlet

@WebServlet("/selectUserServlet")
public class SelectUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取username
        String username = request.getParameter("username");
        //根据username调用service中的方法查询User对象

        //用户和前端进行交互的判断标志,表明是否查找成功
        boolean flag = true;

        //响应标记
        response.getWriter().write("" + flag);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

②、编写html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<script>
    //1、给用户输入绑定焦点事件
    document.getElementById("username").onblur = function () {
        //2、发送Ajax请求
        //获取用户输入的值
        let username = this.value;

        //2.1、创建核心对象
        var xhttp;
        if (window.XMLHttpRequest) {
            xhttp = new XMLHttpRequest();
        } else {
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //2.2、发送请求
        /**
         * 参数一表示请求的方式,参数二要写全路径
         * */
        xhttp.open("GET", "http://localhost:8080/test/selectUserServlet");
        xhttp.send();
        //2.3、获取响应
        xhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                //this.responseText就是返回的数据
                if (this.responseText == "true") {
                    //用户存在,显式提示信息,可以设置标签中的display属性来确定是否显示该标签
                    document.getElementById("username_err").style.display = '';
                } else {
                    document.getElementById("username_err").style.display = 'none';
                }
            }
        };
    }

</script>
</body>
</html>
2、Axios

2.1、快速入门:

image.png

2.2、Axios请求方式别名

image.png

3、JSON

由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输。

3.1、JSON基础语法

image.png

3.2、JSON数据和Java对象的转换

使用Fastjson库可以快捷完成完成我们的需求!!!!Fastjson库的使用如下所示:

image.png

请求数据:JSON字符串转为)ava对象

响应数据:Java对象转为SON字符串

public class Demo1 {
    @Test
    public void test1(){
        //1、将Java对象转换为JSON字符串
        Person p = new Person("zhangsan",21);
        String s = JSON.toJSONString(p);
        System.out.println("Java对象转换为JSON字符串为:" + s);   //Java对象转换为JSON字符串为:{"age":21,"name":"zhangsan"}

        //2、将JSON字符串转换为Java对象
        Person person = JSON.parseObject(s, Person.class);
        System.out.println("JSON字符串转换为Java对象为:" + person.toString());    //JSON字符串转换为Java对象为:Person{name = zhangsan, age = 21}
    }
}

标签:username,Java,Javaweb,request,xhttp,十二,JSON,response
From: https://blog.51cto.com/u_15433911/7969979

相关文章

  • JavaWeb-初识Spring
    目录Spring简介Spring项目Bean管理基于xml的Bean管理创建对象属性注入基于xml+注解的Bean管理创建对象属性注入基于纯注解的Bean管理内容Spring简介Spring是什么Spring是于2003年兴起的一个轻量级的Java的开放源代码的设计层面框架......
  • javaweb
    web.xml配置文件<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java......
  • javaweb-会话跟踪技术
    首先了解什么是会话?会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束,在一次会话中可以包含多次请求和响应 上述图例就是会话。会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在同一次会话的多次请求中共享数据 ......
  • Javaweb(十一)
    1、实现登录操作时提示的错误信息可封装在request域中,如下所示:然后再JSP中访问域中的数据:<divid="errorMsg">${login_msg}${register_msg}</div>获取cookie中的值:2、Filter概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的......
  • Javaweb前端-cnblog
    HTML+CSS+JS+Vue+Element目录HTML+CSS+JS+Vue+Element一、基本概念二、Web服务器三、HTMLCSS3.1官方文档四、JavaScript五、Vue六、Ajax七、前端工程化八、Element一、基本概念静态web:html,css缺点:无法动态更新;无法和数据库交互伪动态:轮播图、点击特效(JavaScript)......
  • Javaweb后端-cnblog
    Javaweb后端目录Javaweb后端MavenHTTP请求响应请求(补充)xml文件分层解耦三层架构IOC/DI入门IoC控制反转DI依赖注入MySQL事务索引分页查询MyBatis快速入门数据库连接池Lombok增删改查删除新增查询条件查询xml映射文件动态sql案例部门管理分页查询文件上传阿里云OSS配置文件参数......
  • Vue源码学习(十二):列队处理(防抖优化,多次调用,只处理一次)
    好家伙, 本篇讲的是数据更新请求列队处理 1.一些性能问题数据更新的核心方法是watcher.updata方法实际上也就是vm._updata()方法,vm._updata()方法中的patch()方法用于将新的虚拟DOM树与旧的虚拟DOM树进行比较,并将差异更新到实际的DOM树上.这一步是非常消耗性能的 2.......
  • javaweb第10章源码
    javaweb第10章源码下载链接:https://wwpv.lanzoue.com/iDhBE1c5hcxg文件结构CHAPTER10│.classpath│.project│chapter10.iml│├─.idea│encodings.xml│misc.xml│modules.xml│workspace.xml│├─.settings│.jsdtscope......
  • javaWeb-MVC 和三层架构(非详解)
    1.MVC模式MVC结构:MVC是一种分层开发的模式其中1.M:Model,业务模型,处理业务2.V:View,视图,界面展示3.C:Controller,控制器,处理请求,调用模型和视图 下面是一张展示流程控制图MVC的好处:1.职责单一,互不影响2.有利于分工协作3.利于维护,利于组件重用2.三层架构1表现层2.业务逻辑......
  • javaweb-jsp脚本总结笔记
    1什么是JSPjsp又叫JavaserveltPage这门技术最大的特点就是,写jsp就像是再写html但是不仅可以写静态页面,而且可以内置Java代码写出动态页面,也就是说可以为用户提供动态数据。总的来说jsp=java+HTML2.JSP快速入门2.1提供对应的驱动包2.1创建对应jsp文件2.2写对应代码......