Java tomcat拒绝访问特定文件

Java tomcat拒绝访问特定文件,java,tomcat,Java,Tomcat,我在Tomcat中有一个webapp,其中有一个主JSP文件,该文件在页面中心包含另一个JSP文件。我想拒绝直接访问该文件,只允许直接访问主索引页 另外,我不希望用户能够直接从我的webapp获取图像 我如何用Tomcat拒绝这些请求?我希望所有请求都转发到我的主页。一种方法是实现 例如: package package; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.ser

我在Tomcat中有一个webapp,其中有一个主JSP文件,该文件在页面中心包含另一个JSP文件。我想拒绝直接访问该文件,只允许直接访问主索引页

另外,我不希望用户能够直接从我的webapp获取图像


我如何用Tomcat拒绝这些请求?我希望所有请求都转发到我的主页。

一种方法是实现

例如:

package package;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FilterImplementation implements Filter
{
    public void init(FilterConfig filterConfig) throws ServletException {...}

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    {
        // if you detect an illegal request, throw an exception or return without calling chain.doFilter.
        chain.doFilter(request, response);     
    }

    public void destroy() {...}
}
将以下内容添加到web.xml:

<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>package.FilterImplementation</filter-class>
</filter>

<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
  • 关于包含的JSP文件,您应该将它们放在
    WEB-INF
    文件夹下。通过这种方式,它们不能直接从浏览器访问,但它允许主JSP文件包含它们

  • 图像也是一样,但图像有点棘手,但还是可行的。将它们放在
    WEB-INF
    文件夹下,因此,您无法从
    
    
    ==========

    然后,您的
    ImageServlet
    将从
    WEB-INF
    文件夹中读取
    world.jpg
    文件,并从页面中流式输出图像

    外接程序web.xml:

    <img src="/webapp/imageServlet?img=world.jpg">
    
    
    包括文件
    无法直接访问包含文件。
    /公司/*
    邮递
    得到
    没有直接的浏览器访问权限来包含文件。
    无名氏
    
    如何获取请求的页面?
    <img src="/webapp/imageServlet?img=world.jpg">
    
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Include files</web-resource-name>
            <description>No direct access to include files.</description>
            <url-pattern>/inc/*</url-pattern>
            <http-method>POST</http-method>
            <http-method>GET</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>No direct browser access to include files.</description>
            <role-name>NobodyHasThisRole</role-name>
        </auth-constraint>
    </security-constraint>