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. 在ASP.NET MVC中的四大筛选器(Filter)及验证实现

    http://www.cnblogs.com/artech/archive/2012/08/06/action-filter.html http://www.cnblogs.com/ghhlyy/ar ...

  2. '用Roslynpad做一个轻量级的C#编辑器'

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:'用Roslynpad做一个轻量级的C#编辑器'.

  3. MFC实现数独(2)

    主要功能描述: 运行程序后对话框会显示一个9x9的待输入数独区域,并提供随机生成数独和生成数独按钮,生成数独按钮后会创建数独并随机显示其中一个至数独区域,随机生成数独会从已生成的数独中随机获取一个并显 ...

  4. 项目经验之:再来一章:excel导入数据 封装成最棒的不容易!!!

    我见过很的系统,包括OA,ERP,CRM等,在常用的功能当中,从外部导入数据是最常用到的.因为很多客户需要以excel的形式提供数据,,这样的方式我们又如何做呢, 大家最常见的做法可能是这样的,在需要 ...

  5. 【灵感】wifi通过wifi发送优惠信息

    1.[灵感]wifi通过wifi发送优惠信息 http://content.businessvalue.com.cn/post/15362.html 2.手机彩票大爆发 http://content. ...

  6. ADO.NET 快速入门(十一):连接池

    这个示例演示了如何构建一个到数据源的连接池.你可以通过连接池部署高性能的应用程序.本例中使用连接串创建连接池,并且由 SqlConnection 自动管理.   string connString; ...

  7. [cocos2d-x3.0]Xcode 升级到5.1后,cocos2d-x3.0 编译64bit出错解决方案

    转自:http://blog.csdn.net/blucenong/article/details/21198089 把Architectures --->Other 改成 $(ARCHS_ST ...

  8. BZOJ 1079: [SCOI2008]着色方案 记忆化搜索

    1079: [SCOI2008]着色方案 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  9. Codeforces Round #277 (Div. 2) B. OR in Matrix 贪心

    B. OR in Matrix Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/486/probl ...

  10. 关于port的关闭——Linux

    本文出自:http://blog.csdn.net/svitter 引文出自:http://bbs.chinaunix.net/thread-775649-1-1.html 1.关闭服务 servic ...