0

所以,我目前有这个->

    <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,如果文件有一个像上面的一个会将他们重定向到那个?

4

1 回答 1

0

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

文件/WEB-INF夹中的文件无法从外部访问,但可以从 webapp 内部访问。


更新

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

/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

网页

访问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 上测试。

于 2019-11-14T11:54:35.757 回答