• js自动访问数据库


    js自动访问数据库

    maven依赖

    <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
        <dependency>
          <groupId>c3p0</groupId>
          <artifactId>c3p0</artifactId>
          <version>0.9.1.2</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.39</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
        <dependency>
          <groupId>commons-dbutils</groupId>
          <artifactId>commons-dbutils</artifactId>
          <version>1.4</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.8.5</version>
        </dependency>
    </dependencies>
    

    Servlet

    用的三层架构,service,dao层就不写了,用的是C3P0连接池,mysql为数据库

    最后返回的是一个json字符串

    //测试前端是否能访问
    //System.out.println("getPlanePosition方法被调用了...");
    
    PlaneService planeService = new PlaneServiceImpl();
    PlanePosition planePosition = planeService.findPosition();
    
    Gson gson = new Gson();
    String jsonStr = gson.toJson(planePosition, PlanePosition.class);
    //设置响应头为json对象
    response.setContentType("application/json;charset=utf-8");
    //返回一个json对象
    response.getWriter().print(jsonStr);
    
    //是否能输出正确的值
    //System.out.println(jsonStr);
    

    JSutils

    之后需要用到的小工具

    /**
     * 获取部署的项目地址
     * @returns {string}
     */
    function contextPath(){
        // var curWwwPath = window.document.location.href;
        var pathName =  window.document.location.pathname;
        // var pos = curWwwPath.indexOf(pathName);
        // var localhostPaht = curWwwPath.substring(0,pos);
        // var projectName = pathName.substring(0,pathName.substr(1).indexOf('/')+1);
        // return (localhostPaht + projectName);
        var number = pathName.indexOf("/", 1);
        return pathName.substring(0,number);
    }
    
    /**
     * 生成XMLHttpRequest
     * @returns {XMLHttpRequest}
     */
    function ajaxFunction() {
        var xmlHttp;
        try { // Firefox, Opera 8.0+, Safari
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
            try {// Internet Explorer
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                }
            }
        }
        return xmlHttp;
    }
    

    html中js代码

    模拟get方法

    //全局变量
    var yPosition;
    function get() {
    
        //1. 创建xmlhttprequest 对象
        var request = ajaxFunction();
    
        //2. 发送请求  用false是因为需要同步(true为异步)
        request.open("GET", "PlaneServlet?method=getPlanePosition", false);
    
        //3. 获取响应数据 注册监听的意思。  一会准备的状态发生了改变,那么就执行 = 号右边的方法
        request.onreadystatechange = function () {
    
            //前半段表示 已经能够正常处理。  再判断状态码是否是200
            if (request.readyState == 4 && request.status == 200) {
                //弹出响应的信息,测试用
                // alert(request.responseText);
                //转为json对象
                var obj = JSON.parse(request.responseText);
                //把服务器响应的json对象赋值给yPosition
                yPosition = obj.yPosition;
                // alert(yPosition);
            }
        };
    
        request.send();
    }
    

    设置每2秒刷新一次

    var myVar = setInterval(function () {
        ChangePosition();
    }, 2000);
    
  • 相关阅读:
    BorderContainer 背景透明一不小心就解决了!
    C#编程应用线程与委托
    第二次SQL RAP要点
    最近的学习
    BW中传输的问题
    7月总结Dotnetnuke的研究总结
    EP学习要点记忆
    盲人摸象SAP PS模块的介绍与讨论
    如何跨Client删除数据
    如何修改Portal与BW系统的链接域名
  • 原文地址:https://www.cnblogs.com/richardwlee/p/10452221.html
Copyright © 2020-2023  润新知