Java 如何对web.xml中的/*url模式进行例外?

Java 如何对web.xml中的/*url模式进行例外?,java,websphere,web.xml,Java,Websphere,Web.xml,在web.xml中,我们将CXFServlet映射到/*url模式: CXF服务器 /* 这很好用,我们现在不想改变它。但是我希望有一个html页面(/admin/index.html),它不是由CXFServlet处理的,只是直接作为html提供。我怎样才能做到这一点?我不知道如何创建一个servlet映射来服务一个html页面 注意:如果有必要,我们正在使用IBM WebSphere 8(WAS 8)。您可以尝试: CXF服务器 /* 违约 /管理员/* 它在Jetty和Tomcat

在web.xml中,我们将CXFServlet映射到/*url模式:


CXF服务器
/*
这很好用,我们现在不想改变它。但是我希望有一个html页面(
/admin/index.html
),它不是由CXFServlet处理的,只是直接作为html提供。我怎样才能做到这一点?我不知道如何创建一个servlet映射来服务一个html页面

注意:如果有必要,我们正在使用IBM WebSphere 8(WAS 8)。

您可以尝试:


CXF服务器
/*
违约
/管理员/*
它在Jetty和Tomcat中工作。

到目前为止,给出的答案都不符合我的要求,但我找到了一个简单的解决方案

出于某种原因,WebSphere将自己处理JSP,而不是委托给具有
/*
映射的servlet——即使web.xml中没有提到JSP的特定映射。也许这是规范的一部分,如果希望servlet处理这些请求,就必须显式地将
*.jsp
映射到servlet


在任何情况下,它对我都有效——我可以使用
/admin/index.html
而不是
/admin/index.jsp
(并且可能会将
index.jsp
添加到欢迎文件列表中,这样对
/admin
的请求也会给出此页面)。

您可以在CXFServlet.java中获得一些代码

在doget()方法中:

URL URL=newurl(request.getRequestURL());
System.out.println(“URL为:”+URL);
if(url.toString()包含(“/admin/”){
setContentType(“text/html;charset=UTF-8”);
PrintWriter pw=response.getWriter();
打印(“\n”
+ ""
+ ""
+ ""
+ ""
+“一些东西”
+ "");
关闭();
返回;
}

考虑
欢迎文件列表
欢迎文件
欢迎文件
不起作用;我添加了一个欢迎文件
index.html
,但是CXFServlet仍然处理
/admin
/admin/
的请求。它的回应是“找不到服务”。@MichaelLucas,是的,你是对的。我们不想修改CXFServlet.java
URL url = new URL(request.getRequestURL());
    System.out.println("URL is:" + url);
if (url.toString().contains("/admin/")) {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter pw = response.getWriter();
        pw.print("<!DOCTYPE html><html lang=\"fa\" dir=\"rtl\">\n"
                + "<head>"
                + "<meta charset=\"utf-8\"/>"
                + "</head>"
                + "<body>"
                + "<div>some thing</div>"
                + "<body></html>");
        pw.close();
        return;
    }