index.html被忽略或默认servlet优先于index.jsp和index.html?为什么?

时间:2014-07-09 12:40:50

标签: java servlets

的web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>TestFilter1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>



<servlet>
    <servlet-name>ser1</servlet-name>
    <servlet-class>com.gaurav.test.Hello</servlet-class>    
</servlet>

<servlet-mapping>
    <servlet-name>ser1</servlet-name>
    <url-pattern>/</url-pattern>    
</servlet-mapping>

</web-app>

的index.html

<body>
HelLoSTHTML
</body>

的index.jsp

<body>
HelLoSTJSP
</body>

Hello.java 实施 javax.servlet.Servlet

服务方法

PrintWriter out=paramServletResponse.getWriter();
out.println("HelloTextStart");
out.println(config);
out.println("HelloTextEnd");
out.close();

部署在 jboss-5.1.0GA

现在案例

  1. **请求

      

    / TestFilter1 /

    ** 显示

      

    &#34; HelloTextStart   org.apache.catalina.core.StandardWrapperFacade@1a878065 HelloTextEnd&#34;

    但未显示

      

    &#34; HelLoSTHTML&#34;

  2. **请求

      

    /TestFilter1/index.html

    **然后也 显示

      

    &#34; HelloTextStart   org.apache.catalina.core.StandardWrapperFacade@1a878065 HelloTextEnd&#34;

    但未显示

      

    &#34; HelLoSTHTML&#34;

  3. **请求

      

    /TestFilter1/index.jsp

    ** 显示

      

    &#34; HelLoSTJSP&#34;

  4. 那么处理/优先处理此请求的顺序是什么? (html,jsp.Servlet ser1)

2 个答案:

答案 0 :(得分:0)

您的应用程序按配置运行。你告诉你的webapp: 当您看到请求发送到servlet类com.gaurav.test.Hello

Conf:

<servlet>
    <servlet-name>ser1</servlet-name>
    <servlet-class>com.gaurav.test.Hello</servlet-class>    
</servlet>

<servlet-mapping>
    <servlet-name>ser1</servlet-name>
    <url-pattern>/</url-pattern>    
</servlet-mapping>

所以这个servlet正在响应你的请求。 我想你需要的是配置servlet javax.servlet.Servlet

我希望这会有所帮助

答案 1 :(得分:0)

我们可以用3种方式配置URL模式

1) Absolute/Exact Matching (Ex: <url-pattern>/test1</url-pattern>)
2) Extension Matching      (Ex: <url-pattern>*.do</url-pattern>)
3) Directory Matching      (Ex: <url-pattern>/abc/*</url-pattern>)

<url-pattern>/</url-pattern> means Every Request go to Hello.java

首先,它将在目录匹配后检查Exact匹配然后扩展。

每个请求的上面代码都是Hello.java。

通过此链接,您将获得清晰度which one will be given priority in Tomcat 6: index.html or index.jsp?