gpt4 book ai didi

java - 嵌入式 Tomcat 转发到 JSP 不起作用

转载 作者:行者123 更新时间:2023-11-28 22:08:33 26 4
gpt4 key购买 nike

我使用的是嵌入式tomcat,配置如下

    String webappDirLocation = "webapp/";
Tomcat tomcat = new Tomcat();
System.out.println(new File(webappDirLocation).getAbsolutePath());
tomcat.setBaseDir(".");
tomcat.setPort(4041);
Context ctx = tomcat.addWebapp(tomcat.getHost(), "", new
File(webappDirLocation).getAbsolutePath());
((StandardJarScanner) ctx.getJarScanner()).setScanAllDirectories(true);

tomcat.start();

tomcat.getServer().await();'

但是当我使用

转发到 JSP 时
req.getRequestDispatcher("/WEB-INF/views/jsp/index.jsp").forward(req, resp);

它说找不到该路径的 JSP

网络.xml

  <servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>accManager.Hello</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>default1</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>default1</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<!-- The mappings for the JSP servlet -->
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>

谁能帮我找出我在这里做错了什么??

提前致谢

最佳答案

WEB-INF目录是私有(private)的。客户端无法通过 URL 请求访问 WEB-INF。 WEB-INF 通常包含 web.xml、classes 和 lib 目录,但您可以将任何您想要对客户端隐藏的内容放在那里。一些像 spring 这样的框架允许使用特殊的资源配置从 WEB-INF 提供页面服务[mvc:resources 在 spring 的情况下。]。

尝试将 jsp 页面放在 Web 容器中的 WEB-INF 和 META-INF 文件夹之外。例如:

req.getRequestDispatcher("/index.jsp").forward(req, resp);

关于java - 嵌入式 Tomcat 转发到 JSP 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com