为什么我在<%! %>中定义的方法中连接数据库页面就不能打开,一直处于等待中,而我把连接数据的代码放到<% %>中时页面就能打开呀!这是为什么呀,大家帮帮忙呀,我搞了半天了还没有搞懂为什么?
底下是在<%!%>的方法中连接数据库的代码!
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="../conn/conn.jsp" %>
<html>
<head>
<title>这是一个测试</title>
</head>
<body>
<%!
String str=null;
String connectdb()
{
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
return str;
}%>
<div align="center"><%=connectdb()%></div>
</body>
</html>下面是我把连接数据代码放到<% %>中就能够打开!
代码如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="../conn/conn.jsp" %>
<html>
<head>
<title>这是一个测试</title>
</head>
<body>
<%
String str=null;
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
out.print(str);
%>
<div align="center"><%=str%></div>
</body>
</html>其中conn.jsp是
<%@ page contentType="text/html;charset=gb2312" %>
<link rel="stylesheet" href="../conn/laba.css" type="text/css">
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%Connection con;
Statement stmt;
ResultSet rs;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con=java.sql.DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/OA?user=root&password=12345678&useUnicode=true&characterEncoding=gb2312");
/*DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String dbUrl="jdbc:mysql://localhost:3306/OA?useUnicode=true&characterEncoding=GB2312";
String dbUser="root";
String dbPwd="12345678";
con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);*/stmt=con.createStatement();%>
底下是在<%!%>的方法中连接数据库的代码!
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="../conn/conn.jsp" %>
<html>
<head>
<title>这是一个测试</title>
</head>
<body>
<%!
String str=null;
String connectdb()
{
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
return str;
}%>
<div align="center"><%=connectdb()%></div>
</body>
</html>下面是我把连接数据代码放到<% %>中就能够打开!
代码如下:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="../conn/conn.jsp" %>
<html>
<head>
<title>这是一个测试</title>
</head>
<body>
<%
String str=null;
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
out.print(str);
%>
<div align="center"><%=str%></div>
</body>
</html>其中conn.jsp是
<%@ page contentType="text/html;charset=gb2312" %>
<link rel="stylesheet" href="../conn/laba.css" type="text/css">
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%Connection con;
Statement stmt;
ResultSet rs;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con=java.sql.DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/OA?user=root&password=12345678&useUnicode=true&characterEncoding=gb2312");
/*DriverManager.registerDriver(new com.mysql.jdbc.Driver());
String dbUrl="jdbc:mysql://localhost:3306/OA?useUnicode=true&characterEncoding=GB2312";
String dbUser="root";
String dbPwd="12345678";
con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);*/stmt=con.createStatement();%>
解决方案 »
- 关于cos组件上传时路径不确定以及过滤文件类型的问题
- 给高度赋值问题
- 按钮不会失效。。。
- 如何给 form中的action参数赋变量
- 我公司(在深圳电子科技大厦)近来在招聘开发人员
- tomcat下不能调用javabean!!请大家指教啊
- 如何在上传网页(.html文件)的时候,一起将网页内的图片、FLASH、CSS、背景图片等一起上传到服务器?
- 请大家看这句话
- 哪位大虾帮帮我的忙,关于速查码的问题,解决的话就给100分,在线等
- 请教:从数据库中取出的结果赋值时出错,什么原因?谢谢了
- 答谢贴,本人承诺150,我上个贴只能放100,在此再开50,此贴非倒分贴,请查实,liubeiqi(无爱无悔)进来领分...
- 中软国际笔试
页面用<jsp:useBean..../>
就行了.具体原因,我也说不上来.
反正我以前也遇到此问题
出错,具体原因,等楼下的......
{
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
return str;
}
总感觉这个函数应该加上throws SQLException等异常声明才顺眼
<%%>是一段可以在处理请求时间执行的java代码,它可以产生输出,并发到客户端的输出流里
我加了还是一样打不开
<%@ page contentType="text/html;charset=gb2312" %>
<%@ include file="../conn/conn.jsp" %>
<%@ page import="java.lang.Exception" %>
<html>
<head>
<title>这是一个测试</title>
</head>
<body>
<%!
String str=null;
public String connectiondb()
{
String sql1="select * from message where id='1'";
try
{
stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
if(rs.next())
{
str=rs.getString("topic");
}
}catch (Exception e)
{
e.printStackTrace();
}
finally
{
rs.close();
stmt.close();
con.close();
}
return str;
}%>
<div align="center"><%=connectiondb()%></div>
</body>
</html>
而且在我这里可以输出的:
<%!
String w=null;
public String a()
{
//try{
String url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=room";
String className="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String name="room";
String pw="e";
Connection con=ConnectionProvider.getConnection(url,className,name,pw);
DbResuletSet op=new DbResuletSet();
op.setCommand("select * from usertest");
op.execute();
if(op.next())
{
w=op.getString(2);
}
con.close();
// }
// catch (Exception e){}
return w;
}
%>^^^^^^^^^^^^
<%=a()%>
String str=null;
String connectdb()
{
String sql1="select * from message where id='1'";stmt=con.createStatement();
rs=stmt.executeQuery(sql1);
while(rs.next())
{
str=rs.getString("topic");}
rs.close();
stmt.close();
con.close();
return str;
}%>
这里是定义变量的地方,不是执行的地方。
连编译都通不过,还怎么跑啊。重复了,你自己的帖子:http://community.csdn.net/Expert/topic/4458/4458242.xml?temp=.8427545
<%!%>中定义的是方法 你不调用他就不会起作用
<%%>中是执行的内容