响应数据分为3部分:

1:响应行  HTTP/1.1 200  OK

void  setStatus(int sc)  设置响应状态码

2响应头  Content-type :text/html

void setHearder(String name,String value) 设置响应键值对

3:响应体  <html><head><body></body></html>

PrintWriter getWriter() 获取字符输出流

ServletOutputStream  getOUtputStream() :获取字节输出流

Response完成重定向

重定向(Redirect):一种资源跳转方式

实现方式:

resp.setStatus(302)

resp.setHeader("location","资源的虚拟路径")

或者

resp.sendRedirect("要跳转的虚拟路径");

重定向特点:

浏览器地址栏路径发生变化

可以重定向到任意位置的资源(服务器内部,外部均可) 因为浏览器发了两次请求

两次请求,不能再多个资源使用request共享数据

package Response;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("/res1")
public class Response1  extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("res1......");//第一种方法
//        resp.setStatus(302);
//        resp.setHeader("location","res2");//快捷方法// resp.sendRedirect("Servlet-demo1/res2");String contextPath = req.getContextPath();resp.sendRedirect(contextPath+"/res2");//这样获取路径更完美}
}
package Response;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("/res2")
public class Response2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("res2......");}
}

路径问题

明确路径的使用

浏览器使用:需要加虚拟目录(项目访问路径)

服务端使用:不需要加虚拟路径

比如:

<a href="">  加虚拟路径

<from action="">   加虚拟路径

reg.getRequestDispatcher("路径" ) 不加虚拟路径

resp.sendRedirect("路径")   加虚拟路径

Response响应字符数据

使用:通过Response对象获取字符输入流

PrintWriter writer= resp.getWriter();

写数据

writer.write("数据");

如需要写html代码,或者中文需要设置流的规则

resp.setContentType("text/html;charset=utf-8");
package Response;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;
import java.io.PrintWriter;@WebServlet("/res3")
public class Response3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf-8");//设置流编码规则PrintWriter writer = resp.getWriter();writer.write("牛马");writer.write("aaa");writer.write("</br>");writer.write("11");}
}

流不需要关闭,随着响应结束,Response对象销毁,由服务器关闭

字节流的使用

通过Response对象获取字符输出流

ServletOutputStream  os=resp.getOutputStream();

写数据

OutputStream.write(字节数据);

package Response;import org.apache.commons.io.IOUtils;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.*;@WebServlet("/res4")
public class Response4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//获取文件,字节输入流FileInputStream fs = new FileInputStream("F:\\1.png");//获取Response,输出流ServletOutputStream   os = resp.getOutputStream();//进行拷贝
//        byte[] bytes = new byte[1024];
//        int len=0;
//        while ((len=fs.read(bytes))!=-1){
//            os.write(bytes,0,len);
//        }
//        fs.close();//关闭流//这里我们直击导坐标,调用方法 ,流对拷IOUtils.copy(fs,os);}
}

io工具包

    <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

Response设置响应数据,重定向,目录问题,字节流,字符流相关推荐

  1. Response设置响应数据功能介绍及重定向

    目录 一.Response设置响应数据功能介绍 二.Response完成重定向 三.路径问题 一.Response设置响应数据功能介绍 响应数据分为3部分: 1.响应行:HTTP/1.1 200 OK ...

  2. Response设置响应数据、Response完成重定向(对比 forword)、路径问题、Response响应字符数据、Response响应字节数据

    文章目录 Response Response 设置响应数据功能介绍 Response 完成重定向 与请求转发(forword)对比 路径问题 Response 响应字符数据 Response 响应字节 ...

  3. response设置响应头

    通过response设置响应行 设置响应行的状态码 setStatus(int sc) package com.learn.line;import java.io.IOException; impor ...

  4. java基础 io流 字节流 字符流 节点流 包装流 转换流 缓冲流 对象流 打印流 Properties类

    目录 1.概念 2.常用的文件操作 2.1 创建文件 2.2 获取文件相关信息 2.3 目录的操作和文件删除 3. IO流原理及流的分类 3.1 流的分类 4.InputStream 字节输入流 4. ...

  5. IO流1(字节流+字符流+输入流+输出流+节点流+处理流)

    一(IO流简介) 大多数应用程序都需要实现与设备间的数据传输,如键盘输入数据.显示器显示程序运行的结果等.在Java中,将这种通过不同输入输出设备之间的数据传输抽象表述为"流",程 ...

  6. -1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流...

    File类 •文件和目录路径名的抽象表示形式 构造方法 •public File(String pathname) •public File(String parent,Stringchild) •p ...

  7. lo流知识(字节流 字符流)

    概述:lo流分为字节流字符流 字节流分为:输出流和输入流 输入流:从文件到控制台(把数据从其他设备输到内存中去)读操作 输出流:从控制台到文件(把数据从内存上输出到别的地方)写操作 按数据类型分: 字 ...

  8. java基础练习复习二:递归字节流字符流二

    本篇是基于java基础练习复习一:递归&字节流&字符流一, 如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!打开支付宝首页搜"55672346 ...

  9. 字节流字符流IO资源处理PropertiesResourceBundle

    字节流&字符流&IO资源处理&Properties&ResourceBundle - 能够使用字节输入流读取数据到程序//1.创建FileInputStream对象,构 ...

最新文章

  1. 西瓜书公式推导讲解来了!
  2. Linux下配置使用外部SMTP发邮件
  3. 百度编辑器(ueditor)@功能之获取坐标
  4. Net4.0---VS2010新特性
  5. 小 Q 与树(dsu on tree + segment tree)牛客练习赛 81 D
  6. excel实战应用案例100讲(十三)-使用Python 对 Excel文件进行批量操作
  7. 基础系列(1)-- html
  8. java并发(3)ThreadLocal的使用及实现原理(实现原理)
  9. html+css如何提升,用好这20个css技巧快速提升你的CSS技能
  10. Splash 简介与安装
  11. oc-Foundation框架-结构体
  12. HihoCoder 1511: 树的方差(prufer序)
  13. 计算机更换固态硬盘方法,笔记本电脑固态硬盘如何更换
  14. Java项目(SpringBoot+MyBatis-Plus):国内新冠肺炎疫情大数据可视化平台+疫情数据后台管理系统
  15. 使用python批量压缩图片文件
  16. 基于 esp-idf 的 UART 应用例程解读
  17. [wirteup] unctf-web-can_you_hacked_me
  18. 银河麒麟V10忘记密码
  19. 连续分布——正态分布、卡方分布、t分布、F分布
  20. 有人问我为什么不买iphon12,我为什么要买iphone12 pro max

热门文章

  1. 积极准备、谨慎行动——应对多核编程革命
  2. fu7推挽胆机音质_FU7胆机自制
  3. C语言入门我们都需要什么?
  4. MTK flashtool 在14.04上不能使用问题
  5. 婚姻匹配问题---盖尔-沙普利(Gale-Shapley)稳定匹配算法
  6. Window XP 命令提示
  7. cocos2d-x中为什么要用sharedXX()函数创建单例类的static对象
  8. “2012中国年度天使投资人”蔡文胜:彻底拥抱新趋势
  9. php mysql问答系统_PHP+MYSQL问答系统V3.7
  10. 修炼成C++高手必看的C++书单