Request:使用request对象来获取请求数据
Response:使用response对象来设置响应数据
Response设置响应数据
响应行HTTP/1.1 200 OK
void setStatus(int sc)
设置响应状态码
响应头Content-Type:text/html
void setHeader(String name,String value)
设置响应头键值对(序偶)
响应体<html></html>
PrintWriter getWriter()
获取字符输出流
ServletOutputStream getOutputStream
获取字节输出流
Response完成重定向
重定向Redirect:一种资源跳转方式
实现方式
resp.setStatus(302);
resp.setHeader("location","资源B的路径")
在web文件夹下创建一个resp1
,并写入如下作重定向前的资源
然后再写重定向后的资源
resp2
然后启动tomcat在浏览器里输入resp1,会发现自动跳转到resp2
当然我们可以调用简化的重定向方法sendRedirect
,就不用自己写了
下面是对比图
资源路径问题
浏览器需要使用:需要加虚拟目录(项目访问路径)
服务端使用:不需要加虚拟目录
由于有时候我们在
pom.xml
里面需要把<path>
的名称修改,而在其它的servlet里面那些路径都写死了,那我们可以用动态获取虚拟路径的方法
Response设置响应体
响应字符数据
获取字符输出流
PrintWriter writer = resp.getWriter();
写数据
writer.writer("aaa");
如果要解析html文件,那就设置一个content-type
为text/html
即可
如果要使浏览器解析中文,那也同样会出现乱码,所以在顶头加上这行即可
响应字节数据
这字节数据可以是图片,也可以是视频,也可以是表格等等……
因此我们用一个excel表格示范
然后在浏览器内加上/resp4
就会发现服务器给浏览器提供了这么一个叫做resp4
的文件
当然今后不会使用手敲copy,都是工具类完成的,在pom.xml
里面添加
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
然后一句IOUtils.copy(fis,os);
就完成了copy
感谢黑马!