(重点)JavaWeb(入门篇21)Request 和 Response 详解

    技术2023-10-21  106

    一、Request 和 Response

    一般 request用于获取用户的请求的数据。response用户返回用户数据。

    参考博客 具体应用 https://blog.csdn.net/a859522265/article/details/7259115

    https://blog.csdn.net/jcx5083761/article/details/9340209 方法总览https://juejin.im/post/5c1604225188256d0e5ad120 2.From : 获取用户输入的表单信息。

    二、response 使用实例

    1. 向用户发送数据

    建议使用过滤器filter实现对Servlet的统一编码,防止乱码 1.返回字节

    //1.返回字节 //以下代码会查找本机的编码进行发送(GBK) String date1 = "你好世界"; ServletOutputStream outputStream = resp.getOutputStream(); outputStream.write(date1.getBytes());

    2.使用writer返回字符

    //2.使用writer返回字符 resp.getWriter().write("你好世界");

    2. 返回下载文件

    //2.1 返回下载文件 //(1)设置下载文件头(最关键的一步) resp.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("妹子图"+new Random().nextInt(10000), "UTF-8")); //(2)使用IO知识完成文件返回相应 //(2.1)准备输入流,读取图片 String absolutePath = "C:\\Users\\25301\\Pictures\\壁纸\\高清后coffeeGirl.jpg"; int length = 0; byte[] bytes = new byte[1024 * 100]; FileInputStream inputStream = new FileInputStream(absolutePath); //(2.2)准备相应输出流,给客户相应图片 ServletOutputStream outputStream1 = resp.getOutputStream(); //(2.3)读取图片并相应回去 while ((length =inputStream.read(bytes))!=-1){ outputStream1.write(bytes,0,length); } inputStream.close(); outputStream.close(); System.out.println("图片传输成功");

    3.随机生成验证码

    查看博客.随机生成验证码

    4. 控制刷新时间

    url是跳转链接,如果是原链接就可以实现刷新的功能

    //response.setHeader("Refresh", "5;URL=/day05/default.html");//5秒后跳转,url是跳转的链接 response.getOutputStream().write("<meta http-equiv=\"Refresh\" content=\"3;URL=/day05/login.html\">".getBytes());

    5. 控制用户的缓存时间

    //response.setHeader("Expires", (System.currentTimeMillis()+24*3600*10*1000)+"");//缓存10天 response.setDateHeader("Expires",System.currentTimeMillis()+10*24*1000*60*60);

    6. response重定向

    (1)图解 (2) 特点

    地址栏会变(区别于转发)

    (3) 使用方式

    response.setHeader(“location”,“url”); response.setHeader("location","url");

    7.调用了获取 OutputStream 流和 Writer流只能选一个

    不然报错,这2个会冲突。

    二、request 使用实例

    1. get方法获取客户端的信息。

    可以获取

    协议请求的地址对方的主机IP对方的主机名称对方的请求方式对方的参数,比如说编码类似可用于设置返回的编码获取服务器的地址服务器的端口号

    请求头和请求体里面的所有信息

    2. request请求转发

    (1)图解

    (2)特点

    因为是服务端直接实现了转发,所以地址栏不会变,

    (3)使用方法

    req.getRequestDispatcher("index.jsp").forward(req,resp);
    Processed: 0.008, SQL: 9