有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在web中排除/重定向特定url模式。xml还是GUI servlet模块?

我需要使用url模式"/*"为我的主应用程序提供服务,以便将此模式与Servlet匹配。 我现在遇到的问题是位于“/css/all.css”和“/images/”等位置的所有css文件和图像都要通过这个Servlet,这是不可取的。我想直接访问这些文件。 处理这种情况的更好方法是什么

注意:我使用Guice的Servlet模块来配置模式

谢谢


共 (2) 个答案

  1. # 1 楼答案

    我们需要明确知道哪些请求应该被路由到您的servlet,以便我们知道如何编写规则。我不知道是a)除了CSS和图像之外的所有请求都应该发送到您的servlet,还是b)您的servlet应该只处理对特定文件夹/目录集的请求。你可能想做两件事之一:

    排除特定文件夹:

    ^/(?!css|images).*
    

    或包括特定文件夹:

    ^/myservlet/.*
    

    如果如您在前面的问题中所指出的,您希望在模式中的/之后至少需要一个字符,那么您应该将这些*符号更改为+

  2. # 2 楼答案

    这应该对你有用:

    让你所有的图像/css等资源都通过default servlet。然后做一个这样的映射:

    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.xml</url-pattern>
        <url-pattern>*.html</url-pattern>
        <url-pattern>*.png</url-pattern>
        <url-pattern>*.jpg</url-pattern>
        <url-pattern>*.gif</url-pattern>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>