js自动访问数据库

maven依赖

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.11</version>
  6. <scope>test</scope>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
  9. <dependency>
  10. <groupId>c3p0</groupId>
  11. <artifactId>c3p0</artifactId>
  12. <version>0.9.1.2</version>
  13. </dependency>
  14. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  15. <dependency>
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <version>5.1.39</version>
  19. </dependency>
  20. <!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
  21. <dependency>
  22. <groupId>commons-dbutils</groupId>
  23. <artifactId>commons-dbutils</artifactId>
  24. <version>1.4</version>
  25. </dependency>
  26. <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
  27. <dependency>
  28. <groupId>com.google.code.gson</groupId>
  29. <artifactId>gson</artifactId>
  30. <version>2.8.5</version>
  31. </dependency>
  32. </dependencies>

Servlet

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

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

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

JSutils

之后需要用到的小工具

  1. /**
  2. * 获取部署的项目地址
  3. * @returns {string}
  4. */
  5. function contextPath(){
  6. // var curWwwPath = window.document.location.href;
  7. var pathName = window.document.location.pathname;
  8. // var pos = curWwwPath.indexOf(pathName);
  9. // var localhostPaht = curWwwPath.substring(0,pos);
  10. // var projectName = pathName.substring(0,pathName.substr(1).indexOf('/')+1);
  11. // return (localhostPaht + projectName);
  12. var number = pathName.indexOf("/", 1);
  13. return pathName.substring(0,number);
  14. }
  15. /**
  16. * 生成XMLHttpRequest
  17. * @returns {XMLHttpRequest}
  18. */
  19. function ajaxFunction() {
  20. var xmlHttp;
  21. try { // Firefox, Opera 8.0+, Safari
  22. xmlHttp = new XMLHttpRequest();
  23. } catch (e) {
  24. try {// Internet Explorer
  25. xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  26. } catch (e) {
  27. try {
  28. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  29. } catch (e) {
  30. }
  31. }
  32. }
  33. return xmlHttp;
  34. }

html中js代码

模拟get方法

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

设置每2秒刷新一次

  1. var myVar = setInterval(function () {
  2. ChangePosition();
  3. }, 2000);

js自动访问数据库的更多相关文章

  1. 单页js文件访问数据库

    最原始的编程方式,业务逻辑混杂在html中 <%@ page language="java" import="java.util.*" pageEncod ...

  2. js访问数据库

    一.js访问数据库的一般步骤: 1. 创建一个到数据库的 ADO 连接 conn = new ActiveXObject("ADODB.Connection"); 2. 打开数据库 ...

  3. 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库

    采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...

  4. MVC Code First 自动生成数据库

    1.新建一个MVC项目

  5. (转)发布Silverlight+WCF程序到IIS后,客户端访问数据库失败的解决方案

    转自url:http://greatverve.cnblogs.com/archive/2011/11/30/silverlight-wcf-pub.html 我们在编写Silverlight程序时, ...

  6. EntityFramework系列:SQLite.CodeFirst自动生成数据库

    http://www.cnblogs.com/easygame/p/4447457.html 在Code First模式下使用SQLite一直存在不能自动生成数据库的问题,使用SQL Server C ...

  7. Entity FrameWork 中使用Expression<Func<T,true>>访问数据库性能优化

    问题的本质是:扩展的Where方法有四个参数重载.传进去Func<T,true>那么返回值是IEnumable的接口类型的集合,如果是Expression<Func<T,tru ...

  8. Spring实战6:利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  9. oracle 事务简介,锁的概念,java访问数据库注意事项

    java链接oracle和连接其他数据库一样有两种方式:1 桥接 jdbc-obdc2 jbdc insert语句一次插入大量数据 insert into table (列1,列2,列3) selec ...

随机推荐

  1. 全栈项目|小书架|服务器开发-Koa全局路由实现

    什么是路由 路由就是具体的访问路径,指向特定的功能模块.一个api接口是由ip(域名)+端口号+路径组成,例如 :https://www.npmjs.com/package/koa-router就是一 ...

  2. 关于Vue-ElementUI修改默认样式不成功问题解决

    Element是一个很好用的组件库,但是有时候我们需要修改一些组件的样式以满足我们自己的需求. 我们用浏览器调试找到相应的class,在本地重写这个class时,发现修改不成功. 这是因为在Vue文件 ...

  3. mybatisplus 使用案例

    案例地址 https://github.com/qixianchuan/SpringBootQD/tree/master/mybatisplus

  4. 流程控制 while for

    循环执行 计算机最擅长的功能之一就是按照规定的条件,重复执行某些操作,这是程序设计中最能发挥计算机特长的程序结构. 1.while语句 while(表达式){ 各种语句.... } 当表达式的值为tr ...

  5. Linux如何监控每个进程所消耗流量

    查看整个系统的网卡流量使用情况 可以参考下这篇总结比较全面的文章 监控具体的某个进程所消耗的流程 首先,Linux没有自带这样的工具,通过这款第三方开源工具,也是比较好用,如果有其他的办法欢迎留言 # ...

  6. [476] Database Mail is not enabled for agent notifications. Cannot send e-mail to

    配置完DB Mail后JOB的的通知邮件不能发送,日志报错476] Database Mail is not enabled for agent notifications. Cannot send ...

  7. DNS服务——域名解析容错

    介绍 DNS服务至关重要,你我每天访问网站不可能是记忆IP地址.因此DNS服务器的可靠性至关重要.下面介绍DNS服务器容错机制,看图 为了防止DNS服务器故障不再提供服务,引入辅助DNS服务器.辅助D ...

  8. 运维开发笔记整理-Request对象与Response对象

    运维开发笔记整理-Request对象与HttpResponse对象 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.request对象 1>.什么是request 首先,我 ...

  9. frp服务搭建

    安装命令 C wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/ma ...

  10. LG3690 【模板】Link Cut Tree 和 SDOI2008 洞穴勘测

    UPD:更新了写法. [模板]Link Cut Tree 给定n个点以及每个点的权值,要你处理接下来的m个操作.操作有4种.操作从0到3编号.点从1到n编号. 后接两个整数(x,y),代表询问从x到y ...