当前页面: 开发资料首页 → JSP 专题 → include的问题,麻烦发表一下意见.
include的问题,麻烦发表一下意见.
摘要: include的问题,麻烦发表一下意见.
初学jsp
文件prebook.jsp代码如下:
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page contentType="html/txt;charset=GB2312" %>
<head>
PREBOOK</head>
<body bgcolor="#FFFFFF">
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:BOOKDB");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("Select * from BOOK1");
%>
sidhgjip
</body>
文件book.jsp代码如下:
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page contentType="html/txt;charset=GB2312" %>
<head>
BOOKDB
</head>
<body bgcolor="#FFFFFF">
<%!
//Connection con=null;
//Statement stmt=null;
//ResultSet rs=null;
%>
<%
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//con=DriverManager.getConnection("jdbc:odbc:BOOKDB");
//stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//rs=stmt.executeQuery("Select * from BOOK1");
rs.next();//要先调用rs.next()后,将游标指向返回rs数据的第一行,然后再进行查询
%>
<table>
<tr>
<td>书籍编号</td><td><%=rs.getString("BOOKID")%></td>
<td>作者</td><td><%=rs.getString("WRITER")%></td>
</tr>
</table>
<%
rs.close();
stmt.close();
con.close();
%>
</body>
在book.jsp中老提示rs,stmt,con这三个prebook中的变量无法解析,can't be resolved.我在book.jsp中已经标明了,为什么还会出现这样的情况呢?
book.jsp和prebook.jsp是两个页面,不通用
也没用
如果你要用prebook.jsp中的变量 就使用:
<%@ include file="prebook.jsp" %>
而不要用
后者是“动态加载”的 前者是“静态编译”的
@_@
上面的方法我试了,但是试了之后又出现了新的问题,浏览book.jsp时便弹出了保存book.jsp文件的对话框,不知道是怎么回事?
记得要设置个属性,忘记是哪个了……
前两天刚看完
-_||||||
<%@ page contentType="html/txt;charset=GB2312" %>
想起来了,就是这个,这个你没删吧??
删了的话就会出现那种情况
<%@ page contentType="html/txt;charset=GB2312" %>有啊,我没删
还是那个情况啊
具体代码:
book.jsp:
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page contentType="html/txt;charset=GB2312" %>
<%@ include file="prebook.jsp" %>
<head>
BOOKDB
</head>
<body bgcolor="#FFFFFF">
<%!
//Connection con=null;
//Statement stmt=null;
//ResultSet rs=null;
%>
<%
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//con=DriverManager.getConnection("jdbc:odbc:BOOKDB");
//stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//rs=stmt.executeQuery("Select * from BOOK1");
rs.next();//要先调用rs.next()后,将游标指向返回rs数据的第一行,然后再进行查询
%>
<table>
<tr>
<td>书籍编号</td><td><%=rs.getString("BOOKID")%></td>
<td>作者</td><td><%=rs.getString("WRITER")%></td>
</tr>
</table>
<%
rs.close();
stmt.close();
con.close();
%>
</body>
prebook.jsp:
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page contentType="html/txt;charset=GB2312" %>
<head>
PREBOOK
</head>
<body bgcolor="#FFFFFF">
<%!
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:BOOKDB");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("Select * from BOOK1");
%>
sidhgjip
</body>
问题解决了,谢谢楼上的意见.