Response&Request&地址写法&URL编码

这篇博客详细讲解了HTTP响应(Response)和请求(Request)的相关概念与操作,包括如何利用Response设置状态码、响应头、避免乱码问题,实现文件下载和请求重定向。同时,还介绍了Request中获取客户机信息、请求参数、请求头的方法,以及RequestDispatcher的请求转发和包含功能。此外,还讨论了URL的绝对路径和相对路径的使用,以及URL编码的重要性及其在Java中的实现。
摘要由CSDN通过智能技术生成

一、Response
    1.Resonse的继承结构:
            ServletResponse--HttpServletResponse
    2.Response代表响应,于是响应消息中的 状态码、响应头、实体内容都可以由它进行操作,由此引伸出如下实验:
    3.利用Response输出数据到客户端
        response.getOutputStream().write("中文".getBytes())输出数据,这是一个字节流,是什么字节输出什么字节,而浏览器默认用平台字节码打开服务器发送的数据,如果服务器端使用了非平台码去输出字符的字节数据就需要明确的指定浏览器编码时所用的码表,以防止乱码问题。response.addHeader("Content-type","text/html;charset=gb2312")
        response.getWriter().write(“中文”);输出数据,这是一个字符流,response会将此字符进行转码操作后输出到浏览器,这个过程默认使用ISO8859-1码表,而ISO8859-1中没有中文,于是转码过程中用?代替了中文,导致乱码问题。可以指定response在转码过程中使用的目标码表,防止乱码。response.setCharcterEncoding("gb2312");
        其实response还提供了setContentType("text/html;charset=gb2312")方法,此方法会设置content-type响应头,通知浏览器打开的码表,同时设置response的转码用码表,从而一行代码解决乱码。
    4.利用Response 设置 content-disposition头实现文件下载
            设置响应头content-disposition为“attachment;filename=xxx.xxx”
            利用流将文件读取进来,再利用Response获取响应流输出
            如果文件名为中,一定要进行URL编码,编码所用的码表一定要是utf-8
    5.refresh头控制定时刷新
        设置响应头Refresh为一个数值,指定多少秒后刷新当前页面
        设置响应头Refresh为 3;url=/Day05/index.jsp,指定多少秒后刷新到哪个页面
        可以用来实现注册后“注册成功,3秒后跳转到主页”的功能
        在HTML可以利用<meta http-equiv= "" content="">标签模拟响应头的功能。
    6.利用response设置expires、Cache-Control、Pragma实现浏览器是否缓存资源,这三个头都可以实现,但是由于历史原因,不同浏览器实现不同,所以一般配合这三个头使用
        6.1控制浏览器不要缓存(验证码图片不缓存)设置expires为0或-1设置Cache-Control为no-cache、Pragma为no-cache
        6.2控制浏览器缓存资源。即使不明确指定浏览器也会缓存资源,这种缓存没有截至日期。当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值