Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSP中从servlet传递数据:技巧_Java_Jsp_Servlets_Jstl - Fatal编程技术网

Java 在JSP中从servlet传递数据:技巧

Java 在JSP中从servlet传递数据:技巧,java,jsp,servlets,jstl,Java,Jsp,Servlets,Jstl,我目前正在使用JSP、JSTL、Servlet等。我有一个问题。我不理解这个案例 案例1(本案例工作出色,在JSP文件中显示数据库记录): Servlet @WebServlet(“/books”) 公共类IndexController扩展HttpServlet{ 私有静态最终长serialVersionUID=1L; 受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{

我目前正在使用JSP、JSTL、Servlet等。我有一个问题。我不理解这个案例

案例1(本案例工作出色,在JSP文件中显示数据库记录): Servlet
@WebServlet(“/books”)
公共类IndexController扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
doPost(请求、响应);
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
ArrayList books=new BookDAO().getAllBooks();
request.setAttribute(“books”,books);
getRequestDispatcher(“index.jsp”).forward(请求、响应);
}
JSP


${book}
案例2(此案例无效,不在JSP文件中显示数据库记录): Servlet
@WebServlet(“/”)
公共类IndexController扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
doPost(请求、响应);
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
ArrayList books=new BookDAO().getAllBooks();
request.setAttribute(“books”,books);
getRequestDispatcher(“index.jsp”).forward(请求、响应);
}
JSP文件同上

案例1:我尝试localhost/AppName/books=>它可以工作

案例2:我尝试localhost/AppName/=>它不起作用


我想在localhost/AppName页面上显示数据库记录。我该怎么办?

您永远不应该有一个没有URL匹配的servlet,请注意,案例2将
(“/”
作为URL匹配。这将包装每个请求(甚至是对资源的GET请求,如JS/CSS/image文件)注意:对于类似的案例。它与您的问题密切相关。您可以将欢迎页面设置为
图书
,并保留第一个案例(这将是最好的)。我并不是真的向初学者推荐案例2。如果我找不到解决方案,我会保留第一个案例。但我不想这样。我会研究的。谢谢@luigimendozaby,不要交叉调用:
doGet()
doGet()
,而
doPost()
doPost()
。不要混淆它们。
@WebServlet("/books")
public class IndexController extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ArrayList<Book> books = new BookDAO().getAllBooks();
        request.setAttribute("books", books);
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }
<c:forEach items="${books}" var="book">
        ${book}
    </c:forEach>
@WebServlet("/")
public class IndexController extends HttpServlet {
    private static final long serialVersionUID = 1L;

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

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ArrayList<Book> books = new BookDAO().getAllBooks();
        request.setAttribute("books", books);
        request.getRequestDispatcher("index.jsp").forward(request, response);
    }