图书修改的时候找不到ToUpdateBookServlet

图书修改的时候找不到ToUpdateBookServlet

bookList.jsp页面点击修改,报404错误,找不到servlet

HTTP状态 404 - 未找到

类型 状态报告

消息 请求的资源[/lm/ToUpdateBookServlet]不可用

描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示




<%@ page contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>图书后台管理</title>

<link rel="stylesheet" href="css/index.css">

<link rel="stylesheet" href="css/bootstrap.min.css">


</head>


<body>

<header>

<div class="container">

<nav>

<a href="bookList.jsp">图书信息管理</a>

</nav>

<nav>

<a href="categoryList.jsp">分类管理</a>

</nav>


</div>

</header>

<section class="banner">

<div class="container">

<div>

<h1>图书管理系统</h1>

<p>图书信息管理</p>

</div>

</div>

</section>

<section class="main">



<div class="container">

<form class="form-horizontal" action="/searchBook" method="post">

<div class="form-group" style="float: right;">

<div class="col-sm-offset-2 col-sm-10">

<button type="submit" class="btn btn-primary">查询</button>

&nbsp;&nbsp;&nbsp;

</div>

</div>

<div class="form-group" style="float: right; width: 300px;">

<div class="col-sm-8">

<input name="searchContent" class="form-control"

id="searchContent" placeholder="输入要查询的分类" style="width: 250px">

</div>

</div>



</form>

</div>

<div class="container">


<table class="table table-striped">

<thead>

<tr>

<th>序号</th>

<th>图书编号</th>

<th>图书名称</th>

<th>分类</th>

<th>价格</th>

<th>图书封面</th>

<th>备注</th>

<th>操作</th>


</tr>

</thead>

<tbody>

<c:forEach items="${requestScope.books}" var="book" varStatus="idx">

<!--  

                            <tr id="tr1">

                                <td>1</td>

                                <td>book0001</td>

                                <td>Java基础</td>

                                <td>计算机类</td>

                                <td>¥29</td>

                                <td><img src="img/g1.jpg"></td>

                                <td>

                                <a href="/updateBook?bookId=book0001">修改</a>

                                <a href="/deleteBook?bookId=book0001">删除</a>


                                </td>

                                                                                          在循环显示数据时,此处的book0001可以用EL表达式进行替换

                            </tr>

                          

                          -->


<tr>

<td>${idx.index+1}</td>

<td>${book.bookId}</td>

<td>${book.bookName}</td>

<td>${book.bookCategory}</td>

<td>${book.bookPrice}</td>

<td><img src=${book.bookPath }></td>

<td>${book.bookRemarks}</td>


<td><a

href="${pageContext.request.contextPath }/ToUpdateBookServlet?bookId=${book.bookId}">修改</a>

<a

href="${pageContext.request.contextPath }/DeleteBookServlet?bookId=${book.bookId}">删除</a>

</td>





<!--在循环显示数据时,此处的ca0001可以用EL表达式进行替换-->


</tr>





</c:forEach>

</tbody>

</table>

</div>

</section>

<section class="page">

<div class="container">

<div id="fatie">

<a href="${pageContext.request.contextPath}/ToAddBookServlet"><button>新建</button></a>

</div>

</div>

</section>

<footer> copy@慕课网 </footer>

</body>

</html>

++++++++++++++++++++++++++

package com.imooc.servlet;


import java.io.IOException;

import java.util.List;


import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


import com.imooc.domain.Book;

import com.imooc.domain.Category;

import com.imooc.service.impl.BookServiceImpl;

import com.imooc.service.impl.CategoryServiceImpl;



@WebServlet("/ToUpdateBookServlet")

public class ToUpdateBookServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

   

    public ToUpdateBookServlet() {

        super();

       

    }



protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//获取页面提交的图书Id

String bookId=request.getParameter("bookId");

//处理数据

BookServiceImpl book=new BookServiceImpl();

book.getBooksById(bookId);

List<Category> categoryList=CategoryServiceImpl.getCategorydb();

request.setAttribute("book", book);

request.setAttribute("categoryList",categoryList);

//跳转到图书修改页面updateBook.jsp

request.getRequestDispatcher("/updateBook.jsp").forward(request, response);

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}


}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
好帮手慕阿满 2020-08-02 16:08:12

同学你好,在同学贴出来的链接中,应该不会出现404错误。建议同学从tomcat目录下webapps目录或者wtpwebapps目录下,删除发布的项目,然后重启再试试。

另外同学可以对比一下使用${}这种方式,点击修改后的访问路径和使用basePath这种方式跳转后的路径是否相同。

祝:学习愉快~

好帮手慕阿满 2020-08-02 11:04:27

同学你好,ToUpdateBookServlet不可用是指什么错误,404错误还是500错误,如果是404错误,表示访问路径不正确,如果是500错误,则需要根据具体问题具体分析,建议同学将具体的报错信息贴一下。

祝:学习愉快~

  • 提问者 视线模糊 #1
    <a href="${pageContext.request.contextPath }/ToUpdateBookServlet?bookId=${book.bookId}">修改</a> <a href="${pageContext.request.contextPath }/DeleteBookServlet?bookId=${book.bookId}">删除</a> 这种写法的时候报错如下,但是修改和删除的写法一样的啊 bookList.jsp页面点击修改,报404错误,找不到servlet HTTP状态 404 - 未找到 类型 状态报告 消息 请求的资源[/lm/ToUpdateBookServlet]不可用 描述 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示
    2020-08-02 11:57:03
好帮手慕阿满 2020-08-02 10:34:20

同学你好,报错提示是el表达式错误,BookServiceImpl类中找不到bookId属性,如:

http://img1.sycdn.imooc.com//climg/5f26245809aa466b07500286.jpg

bookId应该是Book类的属性。

问一下同学在BookServiceImpl类中的属性是否是List<Book>类型的,如果是,Book类的属性bookId是否存在。建议同学检查一下。

祝:学习愉快~

  • 提问者 视线模糊 #1
    为什么刚开始不写basePath会报ToUpdateBookServlet不可用,和删除的写法一样的啊 <a href="${pageContext.request.contextPath }/ToUpdateBookServlet?bookId=${book.bookId}">修改</a> <a href="${pageContext.request.contextPath }/DeleteBookServlet?bookId=${book.bookId}">删除</a>
    2020-08-02 10:37:36
提问者 视线模糊 2020-08-02 07:48:14

<%

String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()

+ request.getContextPath();

%>

我增加了一个这个basePath,

<a href="<%=basePath%>/ToUpdateBookServlet?bookId=${book.bookId}">修改</a>

然后又报错

HTTP状态 500 - 内部服务器错误

类型 异常报告

消息 javax.el.PropertyNotFoundException: 类型[com.imooc.service.impl.BookServiceImpl]上找不到属性[bookId]

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

org.apache.jasper.JasperException: javax.el.PropertyNotFoundException: 类型[com.imooc.service.impl.BookServiceImpl]上找不到属性[bookId]


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师