Web学习历程记录(九)——请求响应

本文记录了Web学习中的请求响应过程,重点介绍了文件下载的两种方式:超链接和手动编码,并讲解了HttpServletResponse的状态码、响应头设置。此外,还涉及到了网站登录案例中的request操作,如获取请求行、头、体信息的方法。
摘要由CSDN通过智能技术生成

Web学习历程记录(九)

案例一:完成文件下载

HttpServletReaponse概述
在Servlet API中,定义了一个HttpServletReaponse接口,它继承自SeveletResponse接口,专门用来封装HTTP响应消息
Http响应消息分为响应行,响应消息头,消息体三部分
对应的在该接口中定义了向客户端发送响应状态码、响应头、响应体的方法

操作响应三部分

操作响应行
一般是第一行

常用的状态码:
200:成功
302:重定向
304:访问缓存
404:客户端错误
500:服务器错误

操作响应头
一个key可以对应多个value,也可以对应一个value

掌握的方法:setHeader(String key,String value)

常用的响应头:
Refresh:定时跳动
Location:重定向
Content-Disposition:设置文件下载时候的头
Content-Type:设置响应内容的MIME类型

响应体

文件下载方式

第一种:超链接方式
直接将服务器上的文件的路径写到href属性中,如果浏览器不支持该格式文件,那么就会提示进行下载,如果浏览器支持这个格式的文件,那么直接打开,不再下载了

第二种:手动编码方式
手动编码实现下载,无论浏览器是否识别该格式,都会下载

手动编码格式要求
设置两个头和一个流
两个头:
Content-Dispostion:浏览器识别该格式文件,提示浏览器下载
Content-Type:文件类型(MIME类型)
一个流:
获得要下载的文件的输入流

import sun.misc.BASE64Encoder;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;

@WebServlet("/downloadServletDemo01")
public class DownloadServletDemo01 extends HttpServlet {
   
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        doGet(request, response);
    }

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

        String fileName 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值