关于用Java实现Ajax的一点基础问题

slowside45 2017-09-10 04:58:15
问题背景:
我希望通过Ajax技术在html页面中实时显示一个公告板,公告板的内容通过JDBC来读取,但是调试了很久都没成功

代码如下:
主页面:

<%@ 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">
/******************错误处理的方法*******************************/
function onerror(){
alert("您的操作有误!");
}

/******************实例化Ajax对象的方法*******************************/
function getInfo(){
http_request = false;
if (window.XMLHttpRequest) { // 非IE浏览器
http_request = new XMLHttpRequest(); //创建XMLHttpRequest对象
} else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP"); //创建XMLHttpRequest对象
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP"); //创建XMLHttpRequest对象
} catch (e) {}
}
}
if (!http_request) {
alert("不能创建XMLHttpRequest对象实例!");
return false;
}
String url="getInfo.jsp";
//调用返回结果处理函数
http_request.open('GET','getInfo.jsp', true); //创建与服务器的连接
http_request.send(null);
http_request.onreadystatechange = funtion(){
if(http_request.readyState==4){
if(http_request.status==200){
document.getElementById("showInfo").innerHTML=http_request.responsText;
}else{
alert("调用失败");
}
}
};
}
window.onload=function(){
getInfo(); //调用getInfo()方法获取公告信息
window.setInterval("getInfo()", 600000); //每隔10分钟调用一次getInfo()方法
}



</script>

<title>实时显示公告信息(无重构)</title>
</head>
<body>
<div style="border: 1px solid;height: 200px; width:200px;padding: 5px;">
<marquee direction="up" scrollamount="3">
<div id="showInfo"></div>
</marquee>
</div>
</body>
</html>

getInfo.jsp
这个jsp文件用来执行数据库的查询语句,能正确读取出数据库的内容并显示

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>获取信息</title>

</head>
<body>
<jsp:useBean id="conN" class="第13章Ajax.ConnDB" ></jsp:useBean>
<%
String sql = "SELECT title FROM tb_bbsinfo ORDER BY id DESC";
ResultSet rs = conN.getRes(sql);
while(rs.next()){
out.println("<ul><li>"+rs.getString(1)+"</li></ul>");
}
if(!(rs.next())){
out.println("<ul><li>"+"暂无公告信息"+"</li></ul>");
}
%>

</body>
</html>


JDBC类:

package 第13章Ajax;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnDB{
public Connection conn = null; // 声明Connection对象的实例
public Statement stmt = null; // 声明Statement对象的实例
public ResultSet rs = null; // 声明ResultSet对象的实例
public Connection getConnection() {

try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/conndb?useSSL=true";
String username="root";
String pwd="888555mm";
conn = DriverManager.getConnection(url,username,pwd);
if (conn == null) {
System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.");
}
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public ResultSet getRes(String sql) {
try {
conn = getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);


} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return rs;
}
}


...全文
275 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37523392 2017-09-11
  • 打赏
  • 举报
回复
开发者模式下F12很容易发现的,还是太粗心了
slowside45 2017-09-10
  • 打赏
  • 举报
回复
引用 2楼showbo 的回复:
又是一个后台转前端的。。js没有String类型申明,申明变量只需要var String url="getInfo.jsp"; ====> var url="getInfo.jsp"; function也打错了 http_request.onreadystatechange = funtion(){ => http_request.onreadystatechange = function(){ 自己f12打开浏览器开发工具看具体报什么错误

Web开发学习资料推荐
XDomainRequest,IE8+跨域请求对象
Web前端开发框架
多谢多谢,只要不是逻辑上有问题就好,自己实在太粗心了
Go 旅城通票 2017-09-10
  • 打赏
  • 举报
回复
又是一个后台转前端的。。js没有String类型申明,申明变量只需要var String url="getInfo.jsp"; ====> var url="getInfo.jsp"; function也打错了 http_request.onreadystatechange = funtion(){ => http_request.onreadystatechange = function(){ 自己f12打开浏览器开发工具看具体报什么错误

Web开发学习资料推荐
XDomainRequest,IE8+跨域请求对象
Web前端开发框架
slowside45 2017-09-10
  • 打赏
  • 举报
回复
运行后html页面如下,没有错误提示,也没有显示任何信息

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧