web站点的欢迎页面

一、什么是一个欢迎页面?

  • 对于一个webapp来说,我们是可以设置他的欢迎页面的
  • 设置了欢迎页面之后,当你访问这个webapp的时候,或者访问这个web站点的时候,没有指定任何资源路径,这时候会默认访问你的欢迎页面
  • 默认的是http://localhost:8080/Servlet00/login.html
  • 如果我们访问的方式是http://localhost:8080/Servlet00,没有具体的资源路径,它默认会访问设置的欢迎页面

二、设置一个欢迎页面

2.1 设置一个欢迎页面方法

  • 在IDEA工具的web目录下新建一个文件login.html
  • 在web.xml文件中进行以下的配置
  1. <welcome-file-list>
  2. <welcome-file>login.html</welcome-file>
  3. </welcome-file-list>
  • 注意

    • 设置欢迎页面的时候,这个路径不需要以/开始,并且这个路径默认是从webapp的根下开始查找
  • 启动浏览器,浏览器地址栏输入地址http://localhost:8080/Servlet05
  • 一个webapp可以设置多个欢迎页
  1. <welcome-file-list>
  2. <welcome-file>login.html</welcome-file>
  3. <welcome-file>page1/page2/page.html</welcome-file>
  4. </welcome-file-list>
  • 注意

    • 越靠上,优先级越高,上面找不到继续往下找

2.2 如果在webapp的根目录下还有其他目录

18、web站点的欢迎页面 - 图1

(1)方法

  • 在webapp根下新建page1
  • 在page1下新建一个page2目录
  • 在page2目录下新建page.html页面
  • 在web.xml文件中应该这样配置
  1. <welcome-file-list>
  2. <welcome-file>page1/page2/page.html</welcome-file>
  3. </welcome-file-list>
  • 注意

    • 路径不需要以/开始,并且路径默认从webapp的根下开始找

三、特殊的index.html

  • [x] 当文件名为index.html的时候,不需要在web.xml文件中配置欢迎页面

    • 原因

      • Tomcat服务器已经提前配好了
    • 实际上配置文件欢迎页面有两个地方可以配置

      • 一个是在webapp内部的web.xml文件中,这个地方配置的属于局部配置
      • 一个是在CATALINA_HOME/conf/web.xml文件中进行配置,这个地方属于全局配置
  1. <welcome-file-list>
  2. <welcome-file>index.html</welcome-file>
  3. <welcome-file>index.htm</welcome-file>
  4. <welcome-file>index.jsp</welcome-file>
  5. </welcome-file-list>
  • 注意配置原则

    • 局部优先原则(就近原则)

18、web站点的欢迎页面 - 图2

四、欢迎页可以是一个Servlet

  • 欢迎页就是一个资源,既然是一个资源,可以是静态,也可以是静态

4.1 方法

  • 创建一个Servlet类
  1. package servlet;
  2. import jakarta.servlet.ServletException;
  3. import jakarta.servlet.http.HttpServlet;
  4. import jakarta.servlet.http.HttpServletRequest;
  5. import jakarta.servlet.http.HttpServletResponse;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. /**
  9. * @Author: 小雷学长
  10. * @Date: 2022/3/20 - 16:23
  11. * @Version: 1.8
  12. */
  13. public class WelcomeServlet extends HttpServlet {
  14. @Override
  15. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  16. throws ServletException, IOException {
  17. response.setContentType("text/html");
  18. PrintWriter out = response.getWriter();
  19. out.print("<h1>Welcome to Serclet</h1>");
  20. }
  21. }
  • 在web.xml文件中配置Servlet和欢迎页
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  5. version="4.0">
  6. <!--配置欢迎页-->
  7. <welcome-file-list>
  8. <welcome-file>welcome</welcome-file>
  9. </welcome-file-list>
  10. <!--配置Servlet-->
  11. <servlet>
  12. <servlet-name>WelcomeServlet</servlet-name>
  13. <servlet-class>servlet.WelcomeServlet</servlet-class>
  14. </servlet>
  15. <servlet-mapping>
  16. <servlet-name>WelcomeServlet</servlet-name>
  17. <url-pattern>/welcome</url-pattern>
  18. </servlet-mapping>
  19. </web-app>

18、web站点的欢迎页面 - 图3