【问题标题】:Servlet unrecognized with 404 resource not available [duplicate]无法识别 404 资源的 Servlet [重复]
【发布时间】: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


【解决方案1】:

检查您的类路径 jar 和 maven 之间是否存在冲突。 也许您应该尝试复制同一个项目并尝试使用不带 Maven 的模块源运行示例 servlet,反之亦然。

【讨论】:

  • 感谢它有效!我开始了一个没有 maven 的新项目,servlet 工作并重定向。
猜你喜欢
  • 2020-12-10
  • 2021-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 2018-12-15
相关资源
最近更新 更多