servlet 默认index.jsp 和 /的问题

我设置了 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/ 才会触发

这是为什么呢?

阅读 3.5k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题