【发布时间】:2018-05-16 07:48:56
【问题描述】:
我一直在尝试从我的 JSP 文件向我配置的 servlet 发送请求,但我不断收到错误 404 - 请求的资源不可用。 我知道这个问题已经被问过好几次了,但似乎没有一个答案能解决我的问题。 我正在将 IntelliJ ide 与 tomcat 9 和 Java maven 项目一起使用。
我的名为 ControllerServlet 配置的 servlet 是:
@WebServlet(name = "ControllerServlet", urlPatterns = {"/category", "/addToCart", "/viewCart","/updateCart", "/checkout", "/purchase"},loadOnStartup = 1)
我的 pom.xml 文件有这些依赖项:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
</dependencies>
我的项目树结构是这样的:
pcstore
-src
-main
-java
-com
-pcStore
-controller
-ControllerServlet.java
-web
-WEB-INF
-view
-category.jsp
-web.xml
-index.jsp
-pom.xml
我几乎尝试了任何东西,但最终没有骰子。 我的上下文根是 /pcStore ,我点击 pcStore/category?{id} 这是 servlet 的一部分,我只想堆积太多不必要的代码:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//checks in which path the request is
String userPath = request.getServletPath();
// if category page is requested
if (userPath.equals("/category")) {
【问题讨论】:
-
除非您不发布控制器代码和您访问的 URL,否则很难推理。 404 通常意味着错误请求,所以我猜你打错了 URL。
-
没有足够的东西来猜测你的错误。但我想,有一个 url 映射问题。如果您想创建这样的示例,请查看帖子javabycode.com/java-frameworks/servlet-jsp/…
-
我添加了上下文映射信息。
标签: maven servlets intellij-idea