目录

  • 一、欢迎资源文件
  • 1. 前提
  • 2. 默认请求
  • 3. 默认欢迎资源文件
  • 4. Tomcat 对于默认欢迎资源文件定位规则
  • 5. 自定义默认资源文件
  • 二、Http 状态码
  • 1. 概述
  • 2. 分类及含义



一、欢迎资源文件

我们这里所说的欢迎资源文件,就是打开网站时默认跳转的界面,可以理解为浏览器的首页。用户在登录网站时,一般只会记得网站名,而不会记住网站内的资源文件名。就拿我们上一篇文章中所做的教务网站为例,用户在使用时,他不会x习惯于从地址栏输入/userAdd.html来进入注册界面,因为这样太麻烦了,一般只会从index.html中的那个用户注册超链接来进入用户注册界面。此时,index.html就相当于网站的欢迎资源文件。

1. 前提

用户可以记住网站名,但是不会记住网站资源名

2. 默认请求

正常请求: http://localhost:8080/myWeb/index.html

默认请求: http://localhost:8080/myWeb/

3. 默认欢迎资源文件

当用户发送了一个针对某个网站的默认请求时,此时由Http服务器自动从当前网站返回的资源文件,就叫做默认欢迎资源文件。

4. Tomcat 对于默认欢迎资源文件定位规则

(1) 规则位置:Tomcat安装位置/conf/web.xml

(2) 规则命令:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

在web.xml的最下方,我们直接拖到最后即可

java状态码的封装_资源文件

5. 自定义默认资源文件

(1) 位置: 网站/web/WEB-INF/web.xml

(2) 命令:

<welcome-file-list>
	 <welcome-file>login.html</welcome-file>
</welcome-file-list>

此时Tomcat 自带的定位规则将失效

java状态码的封装_服务器_02

二、Http 状态码

1. 概述

(1) 由三位数字组成的一个符号。
(2) Http服务器在推送响应包之前,根据本次请求处理情况,将Http状态码写入到响应包中状态行上。
(3) 如果Http服务器针对本次请求,返回了对应的资源文件。通过Http状态码通知浏览器应该如何处理这个结果。
(4)如果Http服务器针对本次请求,无法返回对应的资源文件。
通过Http状态码向浏览器解释不能提供服务的原因。

2. 分类及含义

(1)组成 : 100—599,一共分为5个大类
(2)含义:

1XX

最有特征的是 100 这个状态码, 含义是通知浏览器本次返回的资源文件,并不是一个独立的资源文件,需要浏览器在接收响应包之后,继续向Http服务器所要依赖的其他资源文件

2XX

最有特征的是 200 这个状态码,含义是通知浏览器本次返回的资源文件是一个完整独立资源文件,浏览器在接收到之后不需要所要其他关联文件

3XX

最有特征的是 302 这个状态码,含义是通知浏览器本次返回的不是一个资源文件内容,而是一个资源文件地址,需要浏览器根据这个地址自动发起请求来索要这个资源文件

package controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class OneServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

          String address = "http://www.baidu.com";
          response.sendRedirect(address); //写入到响应头 location
    }
     // Tomcat在推送响应包之前,看到响应体是空,但是响应头location却存放了一个地址。
    // 此时Tomcat将302状态码写入到状态行
    // 在浏览器接收到响应包之后,因为302状态码,浏览器不会读取响应体内容,自动根据响应头
    // 中location的地址发起第二次请求
}

4XX

最常见的有:404 这个状态码,含义是通知浏览器,由于在服务端没有定位到被访问的资源文件,因此无法提供帮助。

还有 405 这个状态码,含义是通知浏览器,在服务端已经定位到被访问的资源文件(Servlet), 但是这个Servlet对于浏览器采用的请求方式不能处理

比如说浏览器以GET的请求方式发送请求,我们在资源文件中却只重写了doPost()方法,这时Tomcat会将405这个状态写入状态行并返还给浏览器

5XX

最有特征的是:500这个状态码,:含义是通知浏览器,在服务端已经定位到被访问的资源文件(Servlet)这个Servlet可以接收浏览器采用请求方式,但是Servlet在处理请求期间,由于Java异常导致处理失败