Tomcat -请求的资源不可用- IntelliJ IDEA - Java EE



我创建了一个名为SimpleServlet的简单servlet,我试图将jsp页面与它链接:

        String varTextA = "Hello World!";
        String varTextB = "It's JSP.";
        request.setAttribute("textA", varTextA);
        request.setAttribute("textB", varTextB);
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
        dispatcher.forward(request, response);

但是Tomcat 9告诉我这个:

HTTP Status 404 - /index.jsp
type Status report
message /index.jsp
description The requested resource is not available.

我的项目树:

├── FirstJavaEEProject.iml
├── out
│   ├── artifacts
│   │   └── simple_mod_war_exploded
│   │       ├── index.jsp
│   │       └── WEB-INF
│   │           ├── classes
│   │           │   └── servlets
│   │           │       └── SimpleServlet.class
│   │           └── web.xml
│   └── production
│       └── simple-mod
│           └── servlets
│               └── SimpleServlet.class
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   │   └── servlets
│   │   │       └── SimpleServlet.java
│   │   └── resources
│   └── test
│       └── java
├── target
│   ├── classes
│   │   └── servlets
│   │       └── SimpleServlet.class
│   ├── first-java-ee-1.0-SNAPSHOT
│   │   ├── META-INF
│   │   │   └── MANIFEST.MF
│   │   └── WEB-INF
│   │       ├── classes
│   │       │   ├── servlets
│   │       │   │   └── SimpleServlet.class
│   │       │   └── webapp
│   │       ├── lib
...
│   │       └── web.xml
│   ├── first-java-ee-1.0-SNAPSHOT.war
│   ├── generated-sources
│   │   └── annotations
│   ├── maven-archiver
│   │   └── pom.properties
│   ├── maven-status
│   │   └── maven-compiler-plugin
│   │       ├── compile
│   │       │   └── default-compile
│   │       │       ├── createdFiles.lst
│   │       │       └── inputFiles.lst
│   │       └── testCompile
│   │           └── default-testCompile
│   │               └── inputFiles.lst
│   └── surefire
└── web
    ├── index.jsp
    └── WEB-INF
        └── web.xml

My web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>simple</servlet-name>
        <servlet-class>servlets.SimpleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>simple</servlet-name>
        <url-pattern>/simple</url-pattern>
    </servlet-mapping>
</web-app>

我看到你正在使用Maven和Intellij,我也假设你没有改变默认的Maven/Intellij项目设置。
在你的目标文件夹中,你的webapp文件夹缺少

    删除项目根目录下的web文件夹。当您构建时,Maven/intellij不会选择这个文件夹。因此index.jsp不存在。
  • src/main下创建名为webapp的文件夹。
  • 将index.jsp移到web应用下。

我还建议你把所有的jsp视图页面放在webapp/WEB-INF/下,这样它就不能直接访问,因此MVC是强制的。
通过这种方式,您将像这样访问servlet中的jsp: /WEB-INF/index.jsp

相关内容

  • 没有找到相关文章

最新更新