java - 试图让 java servlets doGet 方法将浏览器带到正确的页面
问题描述
我正在尝试获取将浏览器带到 jsp 的链接(例如:BookForm.jsp、BookList.jsp),但是当点击链接时,它们会被带到
- 本地主机:8080/书店/列表
- 本地主机:8080/书店/插入
- 本地主机: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, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("BookForm.jsp");
dispatcher.forward(request, response);
}
private void showEditForm(HttpServletRequest request, HttpServletResponse response)
throws SQLException, 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>
推荐阅读
- php - 如何在具有安全功能的注销页面中添加注销按钮?
- java - RXjava 代码从 1.0 到 2.0 的转换——subscriber.isUnsubscribed() 不可用
- r - R Shiny:Abline 没有出现在箱线图中
- android - 在 Nativescript 插件中实现第三方 Android 库?
- javascript - js文件未加载到节点js服务器中
- c - 停止函数以中断无限递归
- string - MongoDB 大于 numberLong 问题
- python - 使用 python 的数字到字母数字编码器(排列和正则表达式)
- django - 如何修复仅在 Chrome 中出现的“Uncaught SyntaxError: Unexpected number”?
- r - 如何在 R 中对多列条件进行子集化?