Java面试题整理-前端

原生ajax执行流程
1.创建XMLRequest对象(ajax引擎)
2.注册回调函数
3.设置连接信息
4.发送信息,与服务器开始交互
5.接收服务器返回数据

    function jsAjax() {
        // 首先创建一个ajax引擎对象
        var request = new XMLHttpRequest();
        //给这个对象绑定事件
        request.onreadystatechange = function () {
            /**
             * request.readyState 指的是xmlHttpRequest对象状态
             * 1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
             * 2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
             * 3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成。
             * 4 Loaded HTTP 响应已经完全接收。
             */
            if (request.readyState = 4 && request.status == 200) {
                /**
                 * request.status 指的是响应的状态码
                 * request.responseText  指的是响应体的内容
                 * 对于一个请求,我们应该在得到响应之后才来做相应的操作。
                 * 所以需要等待request.readyState的状态变为4的时候,才去做相应操作。
                 * 而且我们应该是这个请求的响应状态是200的时候,才去做相应的处理。
                 */
                    alert(request.responseText)
            }
            /**
             * 设置请求发送的参数
             * 第一个参数:请求的方式
             * 第二个参数:请求的地址
             * 第三个参数:是否是异步
             */
        request.open("get", "${pageContext.request.contextPath}/DemoServlet?username=zhangsan", true);
            //发送请求
            request.send();
        }
    }

JSP中动态INCLUDE与静态INCLUDE的区别:
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态INCLUDE用include伪码实现,不会检查所含文件的变化,适用于包含静态页面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java面试题真的很多,下面我来回答一个有关多线程的问题。 在Java中实现多线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式有何区别? 继承Thread类的方式是直接定义一个类继承Thread,并重写它的run()方法。然后创建该类的对象,并调用对象的start()方法来启动线程。这种方式简单直接,但因为Java是单继承的,所以如果某个类已经继承了其他类,就不能再直接继承Thread类实现多线程。 实现Runnable接口的方式是定义一个类实现Runnable接口,并实现其唯一的抽象方法run()。然后创建Thread类的对象,将实现了Runnable的对象作为参数传递给Thread类的构造方法。最后调用Thread对象的start()方法来启动线程。这种方式灵活性更大,因为Java允许一个类实现多个接口,所以即使某个类已经继承了其他类,仍然可以通过实现Runnable接口来实现多线程。 另一个区别在于资源共享的问题。继承Thread类的方式,不管是数据还是方法,都是线程自己拥有的,不存在共享的情况。而实现Runnable接口的方式,多个线程可以共享同一个对象的数据和方法,因为多个线程共同操作的是同一个Runnable对象。 总结来说,继承Thread类方式简单直接,但只能通过单继承来实现多线程;实现Runnable接口方式更灵活,可以解决单继承的限制,并且多个线程可以共享同一个Runnable对象的数据和方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值