我做myeclipse和数据库的连接,数据库连接上了,但jsp页面不能访问,并报错

我做myeclipse和数据库的连接,数据库连接上了,但跟数据库有关的那个jsp页面不能访问,我的数据库驱动加了,代码没有问题,并且代码在别人的电脑上可以运行,但是我的就... 我做myeclipse和数据库的连接,数据库连接上了,但跟数据库有关的那个jsp页面不能访问,我的数据库驱动加了,代码没有问题,并且代码在别人的电脑上可以运行,但是我的就不行,这是为什么?其中报错的代码是package servlet;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import demo.BookBean;

public class BookQueryServlet extends HttpServlet{
Connection dbConnection=null;
PreparedStatement pstmt= null; //数据库操作
ResultSet rst = null; //结果集处理
public void init() {
String deriver="org.gjt.mm.mysql.Driver";
String dburl="jdbc:mysql://127.0.0.1:3306/bookstore";
String username="root";
String password="root";
try{
Class.forName(deriver);
dbConnection=DriverManager.getConnection(dburl,username,password);
}catch(ClassNotFoundException e1){
}catch(SQLException e2){}
}
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{

String bookid=request.getParameter("bookid");
int bookids=Integer.parseInt(bookid);
try{
String sql="SELECT * FROM books WHERE bookid=?";
PreparedStatement pstmt=dbConnection.prepareStatement(sql);
pstmt.setInt(1,bookids);
ResultSet rst=pstmt.executeQuery();
if(rst.next()){
BookBean book=new BookBean();
book.setBookid(rst.getInt("bookid"));
book.setTitle(rst.getString("title"));
book.setAuthor(rst.getString("author"));
book.setPrice(rst.getDouble("price"));
book.setPublisher(rst.getString("publisher"));
request.getSession().setAttribute("book",book);
RequestDispatcher view=request.getRequestDispatcher("showBook.jsp");
view.forward(request,response);
}else{
RequestDispatcher view=request.getRequestDispatcher("error.jsp");
view.forward(request,response);
}
}catch(SQLException e){
e.printStackTrace();
}
}
public void destroy(){
try{
dbConnection.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
展开
 我来答
百度网友0f91928ef
2012-05-09 · TA获得超过109个赞
知道答主
回答量:87
采纳率:0%
帮助的人:97.1万
展开全部
500错误说穿了还是tomcat的配置有问题,你多个servlet是否修改过tomcat下web.xml(不是项目的),里面有个context标签,自动加载设置为TRUE。<param-value>此处改成ture</param-value>
2、用TOMCAT6.EXE启动WEB服务器.切记不要从控制台启动!!!
追问
你说的我改了,还是不能运行,再执行时就变成26行有错,即是:PreparedStatement pstmt=dbConnection.prepareStatement(sql);这行有问题,图片中有说明,实在是不知道怎么弄?
追答
String sql="SELECT * FROM books WHERE bookid=?";
PreparedStatement pstmt=dbConnection.prepareStatement(sql);
问题出在这两句,上句和下句都有可能,我觉得可能较大是你的声明
Connection dbConnection=null;
把获得数据库的方法public void getConn()这样写:public Connection getConn()
原因应该是,你父类中修饰符没用protected,而是private,那么当你子类声明Connection dbConnection=null;即使你获得一个数据库,在该类中声明了变量为空,返回值还是空。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jll350598380
2012-05-09 · TA获得超过213个赞
知道小有建树答主
回答量:196
采纳率:100%
帮助的人:145万
展开全部
空指针异常,rst.next(),跳到下一行的数据,原因是你的book.setBookid(rst.getInt("bookid"));,取到的是null,null不能放入在int中,所以包错~~别人的说明人家可能有两条或者是多条数据,而你只有一条数据,在用了rst.next(),之后就读取下一行数据,你只有一行数据,没有第二行数据,所以为空 ,可以试试去掉rst.next()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莔囧冏冋冂
2012-05-09 · TA获得超过642个赞
知道小有建树答主
回答量:411
采纳率:100%
帮助的人:545万
展开全部
33行 空指针异常。
BookBean 这个类编译并且放到tomcat里 webapp的 WEB-INF\classes\demo文件夹下了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白眉VS徐良
2012-05-09 · TA获得超过107个赞
知道答主
回答量:151
采纳率:0%
帮助的人:69.8万
展开全部
关注
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式