我想实现JSP一个页面内传递参数,页面分为上部分与下部分;
下部分是A,B,C,D实物的小图,比如,当点A时,上部分会从ACCESS数据库中调用出A的详细信息(A,B,C小图也是由ACCESS中调用出来的,运行决报错,请多多指教。。程序如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="16.css" rel="stylesheet" type="text/css" />
</head><body>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:jspdata"); //建立数据库链接,jspdata为ODBC数据源名称
//建立Statement对象
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("select * from watch"); //建立ResultSet(结果集)对象,并执行SQL语句
%>
<div id="container">
<div id="left">
<div id="logo"></div>
<div id="nav">
<div id="menu">
<ul>
<li><a href="#"><span class="a">Home</span></a></li>
<li><a href="#"><span class="a">Message grom CEO</span></a></li>
<li><a href="#"><span class="a">Background</span></a></li>
<li><a href="#"><span class="a">Brands</span></a></li>
<li><a href="#"><span class="a">Watch making expertise</span></a></li>
<li><a href="#"><span class="a">Values</span></a></li>
<li><a href="#"><span class="a">Store</span></a></li>
<li><a href="#"><span class="a">Contact</span></a></li>
</ul>
</div></div>
</div>
<div id="right">
<div id="right_top">
<div id="watch_logo"><img src="images/TRDC_new-logo-small.gif" width="316" height="65" /></div>
<%
String picId ="";
if(request.getParameters("nid") !=null)
{
picId = request.getParameters("nid");
}
%>
<div id="watch" ><img src="images/Fuego-orange21888-10-big.gif" width="109" height="250" /></div>
<div id="text">
<p>Model No :<br />
Size:<br />
Case:<br />
Dial:<br />
Strap:<br />
Movement:<br />
</p>
</div>
</div>
<div id="right_bottom">
<div id="line1"></div>
<div id="watch_list">
<%
while(rs.next())
{
%>
<a href="16.jsp?nid=<%= rs.getString("id") %>" ><img src="<%= rs.getString("small-img") %>" width="44" height="100" border="0" /></a>
<%
}rs.close();
stmt.close();
con.close();
%></div>
<div id="line2"></div>
</div>
</div>
</div>
</div>
</body>
</html>
下部分是A,B,C,D实物的小图,比如,当点A时,上部分会从ACCESS数据库中调用出A的详细信息(A,B,C小图也是由ACCESS中调用出来的,运行决报错,请多多指教。。程序如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<link href="16.css" rel="stylesheet" type="text/css" />
</head><body>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:jspdata"); //建立数据库链接,jspdata为ODBC数据源名称
//建立Statement对象
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("select * from watch"); //建立ResultSet(结果集)对象,并执行SQL语句
%>
<div id="container">
<div id="left">
<div id="logo"></div>
<div id="nav">
<div id="menu">
<ul>
<li><a href="#"><span class="a">Home</span></a></li>
<li><a href="#"><span class="a">Message grom CEO</span></a></li>
<li><a href="#"><span class="a">Background</span></a></li>
<li><a href="#"><span class="a">Brands</span></a></li>
<li><a href="#"><span class="a">Watch making expertise</span></a></li>
<li><a href="#"><span class="a">Values</span></a></li>
<li><a href="#"><span class="a">Store</span></a></li>
<li><a href="#"><span class="a">Contact</span></a></li>
</ul>
</div></div>
</div>
<div id="right">
<div id="right_top">
<div id="watch_logo"><img src="images/TRDC_new-logo-small.gif" width="316" height="65" /></div>
<%
String picId ="";
if(request.getParameters("nid") !=null)
{
picId = request.getParameters("nid");
}
%>
<div id="watch" ><img src="images/Fuego-orange21888-10-big.gif" width="109" height="250" /></div>
<div id="text">
<p>Model No :<br />
Size:<br />
Case:<br />
Dial:<br />
Strap:<br />
Movement:<br />
</p>
</div>
</div>
<div id="right_bottom">
<div id="line1"></div>
<div id="watch_list">
<%
while(rs.next())
{
%>
<a href="16.jsp?nid=<%= rs.getString("id") %>" ><img src="<%= rs.getString("small-img") %>" width="44" height="100" border="0" /></a>
<%
}rs.close();
stmt.close();
con.close();
%></div>
<div id="line2"></div>
</div>
</div>
</div>
</div>
</body>
</html>
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:90: ';' expected
picId = request.getParameters("nid")
^
An error occurred at line: 44 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:89: cannot resolve symbol
symbol : method getParameters (java.lang.String)
location: interface javax.servlet.http.HttpServletRequest
if(request.getParameters("nid")!=null){
^
An error occurred at line: 44 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:90: cannot resolve symbol
symbol : method getParameters (java.lang.String)
location: interface javax.servlet.http.HttpServletRequest
picId = request.getParameters("nid")
^
3 errors
<%
String picId ="";
if(request.getParameter("nid")!=null){
picId = request.getParameter("nid");
}
%>
<%
Objece object = connection.executeQuery("select * from watch where id = picId"); %>报错:
org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 51 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:98: cannot resolve symbol
symbol : class Objece
location: class org.apache.jsp.web2._16_jsp
Objece object = connection.executeQuery("select * from watch where id = picId");
^
An error occurred at line: 51 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:98: cannot resolve symbol
symbol : variable connection
location: class org.apache.jsp.web2._16_jsp
Objece object = connection.executeQuery("select * from watch where id = picId");
^
2 errors
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:95: cannot resolve symbol
symbol : class Objece
location: class org.apache.jsp.web2._16_jsp
Objece object = connection.executeQuery("select * from table where id = " +picId);
^
An error occurred at line: 45 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:95: cannot resolve symbol
symbol : variable connection
location: class org.apache.jsp.web2._16_jsp
Objece object = connection.executeQuery("select * from table where id = " +picId);
^
2 errors
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//载入驱动程序类别
Connection con = DriverManager.getConnection("jdbc:odbc:jspdata"); //建立数据库链接,jspdata为ODBC数据源名称
//建立Statement对象
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);%>
<div id="container">
<div id="left">
<div id="logo"></div>
<div id="nav">
<div id="menu">
<ul>
<li><a href="#"><span class="a">Home</span></a></li>
<li><a href="#"><span class="a">Message grom CEO</span></a></li>
<li><a href="#"><span class="a">Background</span></a></li>
<li><a href="#"><span class="a">Brands</span></a></li>
<li><a href="#"><span class="a">Watch making expertise</span></a></li>
<li><a href="#"><span class="a">Values</span></a></li>
<li><a href="#"><span class="a">Store</span></a></li>
<li><a href="#"><span class="a">Contact</span></a></li>
</ul>
</div></div>
</div>
<div id="right">
<div id="right_top">
<div id="watch_logo"><img src="images/TRDC_new-logo-small.gif" width="316" height="65" /></div>
<%
String picId ="";
if(request.getParameter("nid")!=null){
picId = request.getParameter("nid");
}
ResultSet tt = stmt.executeQuery("select * from watch where id ="+picId);
tt.close();
%>
<div id="watch" ><img src="images/Fuego-orange21888-10-big.gif" width="109" height="250" /></div>
<div id="text">
<p>Model No :<br />
Size:<br />
Case:<br />
Dial:<br />
Strap:<br />
Movement:<br />
</p>
</div>
</div>
<div id="right_bottom">
<div id="line1"></div>
<div id="watch_list"><%
ResultSet rs = stmt.executeQuery("select * from watch"); //建立ResultSet(结果集)对象,并执行SQL语句
while(rs.next())
{
%>
<a href="16.jsp?nid=<%= rs.getString("id") %>" ><img src="<%= rs.getString("small-img") %>" width="44" height="100" border="0" /></a>
<%
}rs.close();
stmt.close();
con.close();
%></div>
<div id="line2"></div>
</div>
</div>
</div>
</div>
</body>报错:
message description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'id =' 中。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.web2._16_jsp._jspService(_16_jsp.java:154)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'id =' 中。
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
org.apache.jsp.web2._16_jsp._jspService(_16_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'wid =' 中。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.web2._16_jsp._jspService(_16_jsp.java:154)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'wid =' 中。
sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3065)
sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
org.apache.jsp.web2._16_jsp._jspService(_16_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
要是varchar , sql语句是("select * from watch where wid ='"+picId+"'");
要是int , 把 picId 转成int类行
<%
int picId =0;
if(request.Parameter(nid)!=null){
picId = request.Parameter(nid);
}
ResultSet tt = stmt.executeQuery("select * from table where id = " +picId); 还不行,
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 45 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:90: cannot resolve symbol
symbol : variable nid
location: class org.apache.jsp.web2._16_jsp
if(request.Parameter(nid)!=null){
^
An error occurred at line: 45 in the jsp file: /web2/16.jsp
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\web2\_16_jsp.java:91: cannot resolve symbol
symbol : variable nid
location: class org.apache.jsp.web2._16_jsp
picId = request.Parameter(nid);
^
2 errors
%>
你的 "wid="是数据库里是int 还是varchar,
要是varchar , sql语句是("select * from watch where wid ='"+picId+"'");
要是int , ---
单引号加了吗?
另:
symbol : variable nid
nid未定义
Objece object
这里应该是Object
Object object = connection.executeQuery("select * from watch where id = picId");
应该改为
Object object = stmt.executeQuery("select * from watch where id = picId");
又或者你在输入代码时心里面在想着晚上该用什么招式和MM过招。