Java学习(HTTP协议,Response对象(重定向,资源跳转),ServletContext对象)

本文详细讲解了HTTP协议的请求消息和响应消息结构,包括各种响应状态码的含义。接着深入探讨了Java中Response对象的功能,如设置响应行、响应头和响应体,并介绍了重定向的概念及特点。最后提到了ServletContext对象,它是整个Web应用的共享数据容器,可用于获取MIME类型和共享数据。
摘要由CSDN通过智能技术生成

2022/3/17

一、HTTP协议:
1.请求消息:客户端发送给服务器端的数据
        * 数据格式:
                1.请求行
                2.请求头
                3.请求空行
                4.请求体
2.响应消息:服务器端发送给客户端的数据
        * 数据格式:
                1.响应行
                        1.组成:协议/版本 响应状态码 状态吗描述
                        2.响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态
                                1.1xx:服务器接收客户端消息,但没有接收完成,等待一段时间后,发送1xx多状态码
                                2.2xx:成功。代表:200
                                3.3xx:重定向。(资源跳转)
                                      * 代表:302(重定向);
                                       304(访问缓存):服务器上的图片资源,客户端有缓存的,直接使用客户端的
                                4.4xx:客户端错误
                                      * 代表:
                                                *404:请求路径没有对应的资源
                                                *405:请求方式没有对应的doXxx方法
                                5.5xx:服务器端错误。代表:500(服务器内部出现异常)
                2.响应头
                        1.格式:头名称:值
                        2.常见的响应头:
                                1.Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
                                2.Content-disposition:服务器告诉客户端以什么格式打开响应体数据
                                        *值:
                                            * in-line:默认值,在当前页面内打开
                                            * attachment;filename=xxx:以附件形式打开响应体。文件下载
                3.响应空行
                4.响应体:传输的数据

二、Response对象
* 功能:设置响应消息
        1.设置响应行
                1.格式:HTTP/1.1 200 ok
                2.设置状态码:setStatus(int sc)
        2.设置响应头:setHeader(String name, String value)
        3.设置响应体:
                * 使用步骤:
                        1.获取输出流:
                                *字符输出流:PrintWriter getWriter()
                                *字节输出流:ServletOutputStream getOutputStream()
                        2.使用输出流,将数据输出到客户端浏览器

* 案例:
        1.完成重定向
                * 重定向:资源跳转的方式

package ln.webtest.day01.demo01;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//完成重定向
@WebServlet("/responseDem01")
public class ResponseDem01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("demo01......");
        //访问/responseDemo01,会自动跳转到/responseDemo02资源
        //1.设置状态码为302
        response.setStatus(302);
        //2.设置响应头location
        response.setHeader("location","/day15/responseDem02");

       /* //简单的重定向方法
        response.sendRedirect("/day15/responseDem02");*/
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(reques
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值