2023.10.20
什么是一个web站点的欢迎页面?
当我们设置了欢迎页面之后,在访问这个webapp的时候,或者访问这个web站点的时候,没有指定任何“资源路径”,这个时候会默认访问你的欢迎页面。
如何设置欢迎页面?
- 在IDEA工具的web目录下新建了一个文件login.html
- 在web.xml文件中进行了以下的配置
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
ps:设置欢迎页面的时候,这个路径不需要以“/”开始。并且这个路径默认是从webapp的根下开始查找。
- 启动服务器,浏览器地址栏输入地址:http://localhost:8080/servlet07/会自动跳转到login.html页面,如下图:
ps:一个webapp是可以设置多个欢迎页面的,如:
<welcome-file-list>
<welcome-file>page1/page2/page.html</welcome-file>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
越靠上的优先级越高。找不到的继续向下找。
当我们文件名设置为index.html的时候,不需要在web.xml文件中进行配置欢迎页面。也会默认跳转到index.html页面,这是为什么?
这是因为Tomcat服务器已经提前配置好了。实际上配置欢迎页面有两个地方可以配置:
- 一个是在webapp内部的web.xml文件中。(在这个地方配置的属于局部配置)
- 一个是在CATALINA_HOME/conf/web.xml文件中进行配置。(全局配置,如下图)
ps:局部优先原则。(就近原则)
欢迎页可以是一个Servlet吗?
欢迎页其实就是一个资源,既然是一个资源,那么可以是静态资源,也可以是动态资源。所以答案是肯定的。
步骤:
- 写一个Servlet:
public class WelcomeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("<h1>我真的很帅阿!</h1>");
}
}
- 在web.xml文件中配置servlet
<servlet>
<servlet-name>welcomeServlet</servlet-name>
<servlet-class>com.bjpowernode.javaweb.servlet.WelcomeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>welcomeServlet</servlet-name>
<url-pattern>/fdsa/fds/a/fds/af/ds/af/dsafdsafdsa</url-pattern>
</servlet-mapping>
- 在web.xml文件中配置欢迎页
<welcome-file-list>
<welcome-file>fdsa/fds/a/fds/af/ds/af/dsafdsafdsa</welcome-file>
</welcome-file-list>
输入url:http://localhost:8080/servlet07/