响应数据:其实就是把一些数据放到浏览器的页面上
IOUtils使用步骤:
1.pom.xmi获取依赖
2.import org.apache.commons.io.IOUtils;(导包)
3.获取方法使用
相应字符数据:设置字符数据的响应体&响应数据的编码问题
package com.itheima.web;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 相应字符数据:设置字符数据的响应体
*/
@WebServlet("/resp3")
public class response_demo03 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");//》》》灰常重要,相应格式和字符集
//1.获取字符输出流,writer不需要关闭,因为response用完被销毁的时候,会自动进行关闭
PrintWriter writer = response.getWriter();
//如果想让浏览器知道我写的是html文件的话,就需要让浏览器知道,则就需要content-type
//response.setHeader("content-type","text/html");//设置格式
writer.write("你好");//设置中文在浏览器里面输出,会乱码,可以去设置流的编码详情看第一行代码
writer.write("<h1>aaa</h1>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
效果:
相应字节数据:设置字节数据的响应体& IOUtils工具的基础使用
package com.itheima.web;
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.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 相应字节数据:设置字节数据的响应体
*/
@WebServlet("/resp4")
public class response_demo04 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.读取文件
FileInputStream fis = new FileInputStream("D://javaceshi/1.jpg");
//2.获取字节输流
ServletOutputStream os = response.getOutputStream();
//3.完成流的copy--但是以下操作有些麻烦,所以需要工具类
/*
byte[]bytes=new byte[1024];
int len = 0;
while ((len = fis.read(bytes)) != -1){
os.write(bytes,0,len);
}*/
IOUtils.copy(fis,os);//IOUtils提供的高效解决办法 IOUtils.copy(输出流,输入流);
fis.close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
效果:
pom.xmi文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>response_demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>18</maven.compiler.source>
<maven.compiler.target>18</maven.compiler.target>
</properties>
<packaging>war</packaging>
<!--依赖坐标-->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--apache提供的与io适配的工具类,好用-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<!--tomcat 的插件 (相当于在maven内部放置了个tomcat服务器)-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
</project>