Java 在JSP中从servlet传递数据:技巧
我目前正在使用JSP、JSTL、Servlet等。我有一个问题。我不理解这个案例 案例1(本案例工作出色,在JSP文件中显示数据库记录): ServletJava 在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{
@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);
}