请教:使用servlet和javabean和jsp(MVC模式实例)时的错误提示

wenyuanhao 2009-11-15 04:09:40
HTTP Status 404 - /7jsp_javaBean/servlet/unknownBook.jsp

--------------------------------------------------------------------------------

type Status report

message /7jsp_javaBean/servlet/unknownBook.jsp

description The requested resource (/7jsp_javaBean/servlet/unknownBook.jsp) is not available.
是说jsp文件找不到吗?我的jsp文件名是displayBook.jsp,在7jsp_javaBean文件里。
servlet的访问路径形式:http://localhost:8086/7jsp_javaBean/servlet/QueryBookServlet
但是提示上面的错误!实在想不出那里出错了。
...全文
190 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
静电 2009-11-21
  • 打赏
  • 举报
回复
404这是标识错误,表示没有找到相关资源!
wenyuanhao 2009-11-21
  • 打赏
  • 举报
回复
zhouyongyang的说法我也试了,但是if(rs.next()!=null) 的写法是错的,因为rs.next()返回的是boolean值
zhouyongyang 2009-11-16
  • 打赏
  • 举报
回复
"rs = stmt.executeQuery();"
就算查询出来没有结果,,此时的rs也不会等于null
zhouyongyang 2009-11-16
  • 打赏
  • 举报
回复
java.sql.SQLException: 用尽的 Results

这个异常表示,你的Results没有里面没有数据,,而你又去拿它的值,,,肯定会报错的,,,

"f(rs!=null)
{
try {
rs.next(); "

不能这样写,,,要写成

f(rs.next()!=null)
{
try {
pyyyf1118 2009-11-16
  • 打赏
  • 举报
回复
学习了。
wenyuanhao 2009-11-15
  • 打赏
  • 举报
回复
补充一点,以上少了statement的关闭,我也尝试了关闭statement,结果是一样的错误,没有改变
wenyuanhao 2009-11-15
  • 打赏
  • 举报
回复
这是跳转到jsp的servlet,不好意思,我开始没注意到String address = "unknowbook.jsp";
但是执行servlet时,就是报错:HTTP Status 404 - /7jsp_javaBean/servlet/unknownBook.jsp
但是,如果换成是"/displayBook.jsp" 仍然提示找不到这个jsp,myeclipse报错:结果集用尽。啊?我的数据库相关连接,通道,结果集也都在程序运行结束后关闭了啊。到底是那里出错啊?一下是servlet的源码

package cn;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.DBUtil;

public class QueryBookServlet extends HttpServlet {
//private String address;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
final String SQL = "select * from BookList where isbn=?";
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String address = "unknowbook.jsp";
//创建JavaBean对象
BookBean book = new BookBean();

try {
//获取数据库连接
conn = DBUtil.getConnection();
stmt = conn.prepareStatement(SQL);
//指定参数
stmt.setString(1, req.getParameter("isbn"));
//执行查询
rs = stmt.executeQuery();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if(rs!=null)
{
try {
rs.next();
//改变JavaBean中的属性
book.setIsbn(rs.getString("isbn"));
book.setTitle(rs.getString("title"));
book.setAuthor(rs.getString("author"));
book.setPublisher(rs.getString("publisher"));
book.setPrice(rs.getInt("price"));
address = "displayBook.jsp";
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
//清理
DBUtil.closeResultSet(rs);
DBUtil.closeConnection(conn);
//将JavaBean放到req作用域中
req.setAttribute("bookBean", book);
//跳转到jsp页面
RequestDispatcher dis = req.getRequestDispatcher(address);
dis.forward(req, resp);
}



}

以下是myeclipse报错:
java.sql.SQLException: 用尽的 Resultset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:347)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1559)
at cn.QueryBookServlet.doGet(QueryBookServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
lyqiang00 2009-11-15
  • 打赏
  • 举报
回复
request.getRequestDispatcher("/unknownBook.jsp").forword(request, response);
老张-AI 2009-11-15
  • 打赏
  • 举报
回复
路径错误了吧
kingshigang 2009-11-15
  • 打赏
  • 举报
回复
address?
有定义?
wenyuanhao 2009-11-15
  • 打赏
  • 举报
回复
7jsp_javaBean是我的项目名称,我的跳转方式是通过servlet来完成的,目标页面是displayBook.jsp
这是跳转的实现代码:
..............
//将JavaBean放到req作用域中
req.setAttribute("bookBean", book);
//跳转到jsp页面
RequestDispatcher dis = req.getRequestDispatcher(address);
dis.forward(req, resp);
..............
但是错误提示居然出现:unknownBook.jsp 我的项目下没有这个名称的jsp文件
是什么原因呢?
LIUHANXU860311 2009-11-15
  • 打赏
  • 举报
回复
“7jsp_javaBean”你这个是项目根目录还是普通文件夹啊?要是普通文件夹你就是少了项目名称!
kingshigang 2009-11-15
  • 打赏
  • 举报
回复
:http://localhost:8086/7jsp_javaBean/servlet/QueryBookServlet
应该是 servlet 进入 servlet 跳转 unknownBook.jsp 这个页面吧。。
你看看 /7jsp_javaBean/servlet/unknownBook.jsp 里面多了个 servlet 文件路径。
你servlet 里面的跳转 路径错误!
程序员猪佩琪 2009-11-15
  • 打赏
  • 举报
回复
访问的是http://localhost:8086/7jsp_javaBean/servlet/QueryBookServlet
需要显示的页面又是displayBook.jsp?
楼主你是不是搞错了!
crazylaa 2009-11-15
  • 打赏
  • 举报
回复
(/7jsp_javaBean/servlet/unknownBook.jsp)
你这里可写的不是displayBook.jsp
kingshigang 2009-11-15
  • 打赏
  • 举报
回复
http://localhost:8086/7jsp_javaBean/servlet/QueryBookServlet
项目名称呢?

81,115

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧