connDB.properties:
DB_CLASS_NAME=com.mysql.jdbc.Driver
DB_URL=jdbc:mysql://127.0.0.1:3306/db_database16?user=root&password=111&useUnicode=true
package com.caiduping.core;

//导入java.io.InputStream类
import java.io.InputStream;
//导入java.sql包中的所有类
import java.sql.*;
//导入java.util.Properties类
import java.util.Properties; public class ConnDB {
// 声明Connection对象的实例
public Connection conn=null;
// 声明Statement对象的实例
public Statement stmt=null;
// 声明ResultSet对象的实例
public ResultSet rs=null;
// 指定资源文件保存的位置
public static String propFileName="connDB.properties";
// 创建并实例化Properties对象的实例
public static Properties prop=new Properties();
//定义保存数据库驱动的变量
public static String dbClassName="com.mysql.jdbc.Driver";
private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/db_database16?user=root&password=111&useUnicode=true";
/*
* 构造方法
*
* */
public ConnDB(){
try{
//将Properties文件读取到InputStream对象中
InputStream in=getClass().getResourceAsStream(propFileName);
// 通过输入流对象加载Properties文件
prop.load(in);
// 获取数据库驱动
dbClassName=prop.getProperty("DB_CLASS_NAME");
//获取URL
dbUrl=prop.getProperty("DB_URL","dbUrl");
}catch(Exception e){
// 输出异常信息
e.printStackTrace();
}
}
/*
* 建立数据连接
*
* */
public static Connection getConnection(){
Connection conn=null;
//连接数据库时可能发生异常因此需要捕捉该异常
try{
//装载数据库驱动
Class.forName(dbClassName).newInstance();
//建立与数据库URL中定义的数据库的连接
conn=DriverManager.getConnection(dbUrl);
}catch(Exception ee){
ee.printStackTrace();
}
if (conn == null) {
//在控制台上输出提示信息
System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"+dbClassName+"\r\n链接位置:"+dbUrl);
}
return conn;
}
/*
* 执行查询语句
*
* */
public ResultSet executeQuery(String sql) {
try {
// 调用getConnection()方法构造Connection对象的一个实例conn
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
//执行SQL语句,并返回一个ResultSet对象rs
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
// 输出异常信息
System.err.println(ex.getMessage());
}
// 返回结果集对象
return rs;
}
/*
* 执行更新操作
*
* */
public int executeUpdate(String sql) {
// 定义保存返回值的变量
int result = ;
try {
// 调用getConnection()方法构造Connection对象的一个实例conn
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// 执行更新操作
result = stmt.executeUpdate(sql);
} catch (SQLException ex) {
// 将保存返回值的变量赋值为0
result = ;
}
// 返回保存返回值的变量
return result;
}
/*
* 关闭数据库的连接
*
* */
public void close() {
try {
// 当ResultSet对象的实例rs不为空时
if (rs != null) {
// 关闭ResultSet对象
rs.close();
}
// 当Statement对象的实例stmt不为空时
if (stmt != null) {
// 关闭Statement对象
stmt.close();
}
// 当Connection对象的实例conn不为空时
if (conn != null) {
// 关闭Connection对象
conn.close();
}
} catch (Exception e) {
// 输出异常信息
e.printStackTrace(System.err);
}
}
}

ConnDB

// 定义一个全局变量net
var net = new Object();
// 编写构造函数
net.AjaxRequest = function(url, onload, onerror, method, params) {
this.req = null;
this.onload = onload;
this.onerror = (onerror) ? onerror : this.defaultError;
this.loadDate(url, method, params);
}
// 编写用于初始化XMLHttpRequest对象并指定处理函数,最后发送HTTP请求的方法
net.AjaxRequest.prototype.loadDate = function(url, method, params) {
if (!method) {
method = "GET";
}
if (window.XMLHttpRequest) {
this.req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
this.req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (this.req) {
try {
var loader = this;
this.req.onreadystatechange = function() {
net.AjaxRequest.onReadyState.call(loader);
}
// 建立对服务器的调用
this.req.open(method, url, true);
// 如果提交方式为POST
if (method == "POST") {
this.req.setRequestHeader("Content-Type",
// 设置请求头
"application/x-www-form-urlencoded");
}
// 发送请求
this.req.send(params);
} catch (err) {
this.onerror.call(this);
}
}
} // 重构回调函数
net.AjaxRequest.onReadyState = function() {
var req = this.req;
var ready = req.readyState;
if (ready == ) {// 请求完成
if (req.status == ) {// 请求成功
this.onload.call(this);
} else {
this.onerror.call(this);
}
}
}
// 重构默认的错误处理函数
net.AjaxRequest.prototype.defaultError = function() {
alert("错误数据\n\n回调状态:" + this.req.readyState + "\n状态: " + this.req.status);
}

AjaxRequest.js

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="conn" class="com.caiduping.core.ConnDB" scope="page"></jsp:useBean>
<ul>
<%
//获取公告信息
ResultSet rs=conn.executeQuery("SELECT title FROM tb_bbsInfo ORDER BY id DESC");
if(rs.next()){
do{
out.print("<li>"+rs.getString()+"</li>");
}while(rs.next());
}else{
out.print("<li>暂无公告信息!</li>");
}
%> </ul>

getInfo.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<script language="javascript" src="JS/AjaxRequest.js"></script>
<script language="javascript">
/******************错误处理的方法*******************************/
function onerror(){
alert("您的操作有误!");
}
/******************实例化Ajax对象的方法*******************************/
function getInfo(){
var loader=new net.AjaxRequest("getInfo.jsp?nocache="+new Date().getTime(),deal_getInfo,onerror,"GET");
}
/************************回调函数**************************************/
function deal_getInfo(){
document.getElementById("showInfo").innerHTML=this.req.responseText;
}
window.onload=function(){
getInfo(); //调用getInfo()方法获取公告信息
window.setInterval("getInfo()", ); //每隔1秒调用一次getInfo()方法
}
</script> <title>实时显示公告信息</title>
</head>
<body>
<div style="border: 2px solid;height: 350px; width:350px;padding: 5px;color:#FF0000">
<marquee direction="up" scrollamount="">
<div id="showInfo"></div>
</marquee>
</div>
</body>
</html>

index.jsp

run:

Ajax之数据连接信息捕获的更多相关文章

  1. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...

  2. 十三 web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息

    crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...

  3. 帆软报表FineReport中数据连接的JDBC连接池属性问题

    连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...

  4. MSClass 和setInterval 的并发,ajax定时有采集信息滚动显示

    setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. //****************************************** 项目中引用到jquer ...

  5. ThinkPHP中ajax提交数据

    最近在做项目时遇到了一些需要从页面用ajax提交数据到后台的操作,无奈本人技术有限,网上苦寻,研究了一下ajax和thinkPHP的结合,黄天不负苦心人,终于搞定了. 闲话少叙,进入正题:我需要从页面 ...

  6. 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

    小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...

  7. node.js之用ajax获取数据和ejs获取数据

    摘要:学了node之后有时候分不清前台和后台,今天用ajax和ejs来从后台获取数据,没有数据库,用json数据来进行模拟数据库:来区分前台和后台需要干什么? 一.用ejs获取数据 1.文件目录 2. ...

  8. vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全

    https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...

  9. form表单提交数据,页面必定会刷新,ajax提交数据不会刷新,做到悄悄提交,多选删除,ajax提交实例

    很多页面用到的模态对话框,如知明网站https://dig.chouti.com/的登录页都是模态对话框, 当点登录时,是用的ajax提交,因为输入错了信息,有返回消息,而页面没有刷新. jquery ...

随机推荐

  1. [刷题codeforces]651B/651A

    651B Beautiful Paintings 651A Joysticks 点击可查看原题 651B是一个排序题,只不过多了一步去重然后记录个数.每次筛一层,直到全为0.从这个题里学到一个正确姿势 ...

  2. PostgreSQL的 initdb 源代码分析之十一

    继续分析: /* Top level PG_VERSION is checked by bootstrapper, so make it first */ write_version_file(NUL ...

  3. hdu 4662 MU Puzzle

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4662 MU Puzzle Time Limit: 2000/1000 MS (Java/Others) ...

  4. sql 指令

    SELECT 是用来做什么的呢?一个最经常使用的方式是将资料从数据库中的表格内选出.从这一句回答中.我们立即能够看到两个keyword:从 (FROM)数据库中的表格内选出 (SELECT).(表格是 ...

  5. iOS开发笔记系列-基础6(预处理程序)

    预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...

  6. Codeforces Gym 100338I TV Show 傻逼DFS,傻逼题

    Problem I. TV ShowTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest ...

  7. linux 进程地址空间的一步步探究

    我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间.其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间. 那虚拟内存空间 ...

  8. 三大文本处理工具grep、sed及awk的简单介绍

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  9. SqlDependency缓存数据库表小案例

    SqlDependency的简介: SqlDependency是outputcache网页缓存的一个参数,它的作用是指定缓存失效的数据库依赖项,可以具体到数据库和表. SqlDependency能解决 ...

  10. python中文处理之encode/decode函数

    python中文处理相信迷惑过不少同学.下面说说python2/3的encode和decode函数. python2中,使用decode()和encode()来进行解码和编码,以unicode类型作为 ...