首先实现上传的代码
代码如下:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
JSP - Hello World
<%= "Hello World!" %>
后台的servlet页面代码如下:
package com.example.uploademo;
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.*;
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// String name = req.getParameter("name");//在index.jsp中已经将form表单中传入的数据设定为2进制流的信息进行传输了,所以在servlet中使用String来进行取值会出现错误或者为null。
// System.out.println(name);
InputStream inputStream = req.getInputStream();
Reader reader = new InputStreamReader(inputStream,"UTF-8");//重点,如果不加“UTF-8"会出现乱码的情况
BufferedReader bufferedReader = new BufferedReader(reader);
String str = "";
while ((str = bufferedReader.readLine()) != null) {
System.out.println(str);
}
}
}
当代码中输入流如下时,当读取文件后,在控制页面显示如下图所示:
Reader reader = new InputStreamReader(inputStream)
当代码修改为整体的代码后,则可以解决控制台输出乱码问题,截图如下:



