java - 使index.jsp重定向到其不带扩展名的url

标签 java xml jakarta-ee

所以,我目前有这个 ->

    <servlet>
        <servlet-name>Home</servlet-name>
        <jsp-file>/index.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>Home</servlet-name>
        <url-pattern>/home</url-pattern>
    </servlet-mapping>

现在,一切正常,但我根本不希望用户能够访问index.jsp,有没有办法让我在访问像index.jsp这样的url时,如果文件有一个像上面的 servlet 一样,它会将它们重定向到那个 servlet?

最佳答案

将 JSP 文件移至 /WEB-INF 文件夹中。

/WEB-INF 文件夹中的文件无法从外部访问,但可以从 web 应用程序内部访问。

<小时/>

更新

仅与 webapps/test 文件夹下的 2 个文件完美配合:

/path/to/tomcat/webapps/test/WEB-INF/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_4_0.xsd"
         version="4.0">
    <display-name>Test Application</display-name>
    <servlet>
        <servlet-name>Home</servlet-name>
        <jsp-file>/WEB-INF/index.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
        <servlet-name>Home</servlet-name>
        <url-pattern>/home</url-pattern>
    </servlet-mapping>
    <session-config><session-timeout>30</session-timeout></session-config>
</web-app>

/path/to/tomcat/webapps/test/WEB-INF/index.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h3>Hello World!</h3>
<p>This is a test</p>
</body>
</html>

访问http://localhost:8080/test/home显示1:

web page

访问http://localhost:8080/test/index.jsp 显示 404 – 未找到。

访问http://localhost:8080/test/WEB-INF/index.jsp显示404 - 未找到。

1) 在运行 Java 11.0.2+9 的 Apache Tomcat/9.0.27 上测试。

关于java - 使index.jsp重定向到其不带扩展名的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58856164/

相关文章:

android - 未知根元素的改造和 SimpleXML?

xml - 使用 XSLT 将常规文本文件转换为 XML

java - XML格式验证

java - Struts2-Full-Hibernate 插件是集成 Struts2 和 Hibernate 的标准方式吗?

gradle - 如何在Tomee Web服务器上运行gradle Web项目?

java - 为什么 java 在...复杂时返回 java.util.LinkedHashMap

java - 使用 SAX 解析器解析 XML 数据并将其保存到 mysql localhost (JAVA) 的速度慢

java - 如何返回一个泛型类型,同时将另一个泛型类型作为参数,两者都需要实现接口(interface)?

java - 如何使两个类字段(不引用任何其他表)作为 hibernate 中的复合键?

java - 如何在 JPA/Hibernate 应用程序中配置连接池(没有 Spring)?