问题描述
我正在尝试获取将浏览器带到 jsp 的链接(例如:BookForm.jsp、BookList.jsp)但是当点击链接时,它们被带到了
- 本地主机:8080/书店/列表
- 本地主机:8080/bookstore/insert
- 本地主机:8080/书店/更新
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws servletexception,IOException {
String action = request.getServletPath();
System.out.println(action);
try {
switch (action) {
case "/list":
listBook(request,response);
break;
case "/new":
showNewForm(request,response);
break;
case "/insert":
insertBook(request,response);
break;
case "/delete":
deleteBook(request,response);
break;
case "/edit":
showEditForm(request,response);
break;
case "/update":
updateBook(request,response);
break;
default:
listBook(request,response);
}
} catch (sqlException ex) {
throw new servletexception(ex);
}
}
private void listBook(HttpServletRequest request,HttpServletResponse response)
throws sqlException,IOException,servletexception {
List<Book> listBook = bookDAO.listAllBooks();
request.setAttribute("listBook",listBook);
Requestdispatcher dispatcher = request.getRequestdispatcher("BookList.jsp");
dispatcher.forward(request,response);
}
private void showNewForm(HttpServletRequest request,IOException {
Requestdispatcher dispatcher = request.getRequestdispatcher("BookForm.jsp");
dispatcher.forward(request,response);
}
private void showEditForm(HttpServletRequest request,servletexception,IOException {
int id = Integer.parseInt(request.getParameter("id"));
Book existingBook = bookDAO.getBook(id);
Requestdispatcher dispatcher = request.getRequestdispatcher("BookForm.jsp");
request.setAttribute("book",existingBook);
dispatcher.forward(request,response);
}
解决方法
检查您的 web xml 文件以获取正确的 servlet 映射。
java servlet 映射示例代码:
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>com.yourpath.ControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>milk</servlet-name>
<url-pattern>/drink/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>points</servlet-name>
<url-pattern>/pointlist</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>