0

我设置了 servlet mapping

<servlet>
      <servlet-name>Site</servlet-name>
      <servlet-class>com.demo.controller.App</servlet-class>
  </servlet>

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

同时 在 webapp目录下有个 index.jsp


这样我访问 http://localhost:8080/ 还是会走 index.jsp
而不会触发我的默认 App控制器的 doGet方法
除非我随便写个目录 比如说 http://localhost:8080/a/ 才会触发

这是为什么呢?

2018-12-22 提问
1 个回答
1

已采纳

我已经知道咋回事了。
因为我web根目录有index.jsp,然后我缺省路径访问,tomcat会将你的路径映射成xxx/index.jsp,然后根据Servlet匹配规则,精确匹配上一个叫JspServlet的控制器去处理。如果将index.jsp改成index.html就会用我的servlet处理了

撰写答案

推广链接