p121a.jsp
<%!
public String Bytes(String str)
{
try
{
String strOld=str;
byte[] strNew=strOld.getBytes("ISO-8859-1");
String bytes=new String(strNew);
return bytes;
}
catch(Exception e){}
return null;
}
%>
p135.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312"%>
<html>
<head>
<title>商品搜索</title>
<style type="text/css">
<!--
.style1{font-size:12px}
.style2{color:#ff0000}
-->
</style>
</head>
<body>
<form name="form1" onsubmit="return check()" method="post" action="p137.jsp">
<table width="80%" border="0" align="center" bgcolor="#0099ff">
<tr bgcolor="#ffffff">
<th height="39" scope="row">
<div align="left">
<span style="font-weight:400"><font size="2">查询项目:</font>
</span>
</div>
</th>
<td>
<select name="item" size=1>
<option value="">请选择</option>
<option value="p_type">p_type</option>
<option value="p_id">p_id</option>
<option value="p_name">p_name</option>
</select>
</td>
<td><font size="2">查询内容:</font></td>
<td><input type="text" name="content"></td>
<td><input type="submit" name="submit" value="查询"/></td>
</tr>
</table>
</form>
</body>
<script type="text/javascript">
function check()
{
if(form1.content.value=="")
{
alert("请输入查询内容!");
form1.content.focus();
return false;
}
}
</script>
</html>
p137.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312"%>
<%@ page import="java.sql.*" %>
<html>
<head> <title>商品搜索结果</title></head>
<style type="text/css">
<!--
.style1{font-size:12px}
.style2P{color:#ff0000}
-->
</style>
<body>
<jsp:include page="p135.jsp"/>
<%@ include file="p121a.jsp" %>
<%
Connection conn=null;
ResultSet rsAll=null;
Statement stmt=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strConn="JDBC:odbc:shopData";
conn=DriverManager.getConnection(strConn);
/*Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String strConn="jdbc:sqlserver://localhost:1433;DatabaseName=Shop System";*/
conn=DriverManager.getConnection(strConn,"sa","123456");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String strItem=request.getParameter("item");
String strContent=Bytes(request.getParameter("content"));
String strSql="";
if(strItem==null||strItem=="")
{
strSql="select p_id,p_type,p_name,p_price,p_quantity,p_time from product";
}
else
{
strSql="select p_id,p_type,p_name,p_price,p_quantity,p_time from priduct where "+strItem.trim()+"like'%"+strContent.trim()+"%'";
}
rsAll=stmt.executeQuery(strSql);
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<table width="80%" border=1 cellspacing="0" align="center">
<tr>
<td><font size="2" color="#0000ff">商品编号</font></td>
<td><font size="2" color="#0000ff">商品名称</font></td>
<td><font size="2" color="#0000ff">商品类别</font></td>
<td><font size="2" color="#0000ff">商品价格</font></td>
<td><font size="2" color="#0000ff">商品数量</font></td>
<td><font size="2" color="#0000ff">上架日期</font></td>
</tr>
<%
String str=(String)request.getParameter("page");
if(str==null)
{
str="0";
}
int pagesize=10;
rsAll.last();
int recordCount=rsAll.getRow();
int maxPage=0;
maxPage=(recordCount%pagesize==0)?(recordCount/pagesize):(recordCount/pagesize+1);
int currentPage=Integer.parseInt(str);
if(currentPage<1)
{
currentPage=1;
}else
{
if(currentPage>maxPage)
{
currentPage=maxPage;
}
}
rsAll.absolute((currentPage-1)*pagesize+1);
for(int i=1;i<=pagesize;i++)
{
%>
<tr>
<td><font size="2"><%=rsAll.getString("p_id") %></font></td>
<td><font size="2"><%=rsAll.getString("p_name") %></font></td>
<td><font size="2"><%=rsAll.getString("p_type") %></font></td>
<td><font size="2"><%=rsAll.getString("p_price") %></font></td>
<td><font size="2"><%=rsAll.getString("p_quantity") %></font></td>
<td><font size="2"><%=rsAll.getString("p_time") %></font></td>
<td><a href="#"><font size="2">详情</font></a></td>>
<td><a href="#"><font size="2">购买</font></a></td>>
</tr>
<%
try
{
if(!rsAll.next())
{break;}
}catch(Exception e){}
}
%>
</table>
<p align="center"><font size="2">跳转到:<input type="text" name="page" size="3"/>当前页数:[<%=currentPage %>/<%=maxPage %>]
<%
if(currentPage>1)
{
%>
<a href="p137.jsp?page=1">第一页</a><a href="p137.jsp?page=<%=currentPage-1 %>">上一页</a>
<%
}
if(currentPage<maxPage)
{
%>
<a href="p137.jsp?page=<%=currentPage+1 %>">下一页</a> <a href="p137.jsp>page=<%=maxPage %>">最后一页 </a>
<%
}
rsAll.close();
stmt.close();
conn.close();
%>
</font></p>
</body>
</html>
估计是p137.jsp错了,但是不知道错在哪,求大神指点迷津
------解决思路----------------------
错误不是都给你显示出来了吗?p137.jsp的第66行报空指针异常。
就是说你代码里面得到的rsAll这个变量的值为null,检查一下rsAll=stmt.executeQuery(strSql);,我感觉应该是这个方法查询的时候返回的是null。
------解决思路----------------------
JSP页面把这个错误所发生的地方提示出来了呀,你仔细检查看看。
你或者用Myeclipse的Debug调试,然后打断点一步步跟踪,就知道了。
------解决思路----------------------
strSql="select p_id,p_type,p_name,p_price,p_quantity,p_time from priduct where "+strItem.trim()+"like'%"+strContent.trim()+"%'";
这里你的表名字写错了吧。。 应该是from product
------解决思路----------------------
我还是相信拷贝复制
------解决思路----------------------
你在这个语句“rsAll=stmt.executeQuery(strSql);”后面把rsAll的值弹出来看看是否有值。
------解决思路----------------------
strSql="select p_id,p_type,p_name,p_price,p_quantity,p_time from priduct where "+strItem.trim()+"like'%"+strContent.trim()+"%'";
大哥 你绝的你数据库字段用strItem.trim() 合适吗 改成数据库字段试一下
------解决思路----------------------
找到jsp编译后的java文件,看一下第146行为什么会报 NullPointer 吧
------解决思路----------------------
if(curentPage>1)---还要写上且 curentPage<maxPage
if(curentPage<=maxPage)---
------解决思路----------------------
product表里存有数据么?
------解决思路----------------------
楼主把String strSql="";改为String strSql=null;试试?
------解决思路----------------------
rsAll=stmt.executeQuery(strSql);后面把rsAll这个值alert出来看看是什么,或者浏览器调试一下看看啊
错误非常明显,调试一下打印一下就可以很容易找到啊
------解决思路----------------------
查查rsAll为什么为空吧 从这里入手
------解决思路----------------------
在rsAll.last();前打印rsAll.getRow()试试
------解决思路----------------------
在rsAll.last()前加if(rsAll.next)
------解决思路----------------------
首先你sql你运行一下对不对【在运行结果集后面System.out.println();一个个字段】
其次你在界面中能打印的地方都用System.out.println();去打印值出来,看下哪一步的值没有打印出来,就用这种最土的办法了,毕竟你的都是jsp代码