Ajax之数据连接信息捕获
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之数据连接信息捕获的更多相关文章
- 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息 crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多 ...
- 十三 web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- MSClass 和setInterval 的并发,ajax定时有采集信息滚动显示
setTimeout 用于延时器,只执行一次. setInterval:用于多次执行. //****************************************** 项目中引用到jquer ...
- ThinkPHP中ajax提交数据
最近在做项目时遇到了一些需要从页面用ajax提交数据到后台的操作,无奈本人技术有限,网上苦寻,研究了一下ajax和thinkPHP的结合,黄天不负苦心人,终于搞定了. 闲话少叙,进入正题:我需要从页面 ...
- 用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库
小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢no ...
- node.js之用ajax获取数据和ejs获取数据
摘要:学了node之后有时候分不清前台和后台,今天用ajax和ejs来从后台获取数据,没有数据库,用json数据来进行模拟数据库:来区分前台和后台需要干什么? 一.用ejs获取数据 1.文件目录 2. ...
- vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全
https://segmentfault.com/q/1010000005618139 vue ajax获取数据的时候,如何保证传递参数的安全或者说如何保护api的安全 点击提交,发送请求.但是api ...
- form表单提交数据,页面必定会刷新,ajax提交数据不会刷新,做到悄悄提交,多选删除,ajax提交实例
很多页面用到的模态对话框,如知明网站https://dig.chouti.com/的登录页都是模态对话框, 当点登录时,是用的ajax提交,因为输入错了信息,有返回消息,而页面没有刷新. jquery ...
随机推荐
- 算法之旅,直奔<algorithm>之十七 find_first_of
find_first_of(vs2010) 引言 这是我学习总结 <algorithm>的第十七篇,find_first_of是匹配的一个函数.<algorithm>是c++的 ...
- oracle 中控制文件中到底记录了哪些信息
oracle 控制文件中的信息 oracle 11g oracle 10g DATABASE ...
- Table 样式设置
http://www.gzsums.edu.cn/webclass/html/table.html
- ABA problem
多线程及多进程编程同步时可能出现的问题,如果一个值被P1读取两次,两次的值相同,据此判断该值没有被修改过,但该值可能在两次读取之间被P2修改为另外一个value,并在P1再次读取之前修改回了原值.P1 ...
- 多线程访问winform控件出现异常的解决方法
一. 多线程访问winform控件出现异常的解决方法 1. 问题描述<1> 如果创建某控件的线程之外的其他线程试图调用该控件,则会引发一个 InvalidOperationExcept ...
- 建立名称server
一.实验的目的: 实现DNSserver功能,提供正向.反向解析 二.实验环境 装有Linux的Windows系统 IP为192.168.6.3的虚拟机 三.实验目的 建立gr.org ...
- HomeSnap
http://arnauddegiuli.github.io/HomeSnap/ OnBufferingUpdateListener https://github.com/LuckyJayce/Mat ...
- SOA面向服务化编程架构(dubbo)
dubbo 是阿里系的技术.并非淘宝系的技术啦,淘宝系的分布式服务治理框架式HSF啦 ,只闻其声,不能见其物.而dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身 集成了监控中心,注 ...
- LumiSoft.Net邮件接收乱码问题解决
本文非本人编写,转载自:http://www.cnblogs.com/youngerliu/archive/2013/05/27/3101488.html 今天遇到用LumiSoft.Net这个组件收 ...
- sql操作事务SqlTransHelper类实现
具体实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...