Java doGet, doPost方法和文件上传
index.html
Title
TestServlet.Java
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
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.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.List;
@WebServlet(name = "TestServlet")
public class TestServlet extends HttpServlet {
private File root_upload;
public TestServlet() {
root_upload = new File("C:/temp");
if (!root_upload.exists()) {
root_upload.mkdirs();
}
}
//两种链接方式 doPost doGet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
ServletOutputStream os = response.getOutputStream();
StringBuilder builder = new StringBuilder();
builder.append("");
builder.append("");
builder.append(" ");
builder.append(" 测试Servlet ");
builder.append("");
builder.append("");
Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
builder.append(name)
.append(":")
.append(request.getHeader(name))
.append("
");
}
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(10);//设置未保存在临时路径的最大值
factory.setRepository(new File("C:/temp/temp"));//超过上述最大值后保存的临时路径
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List list = upload.parseRequest(request);//上传的文件列表
for (FileItem item : list) {
builder.append(item.getFieldName())
.append(":")
.append(item.isFormField() ? item.getString() : item.getName())//判断是不是属性, 如果是属性, 就
.append("
");
if (!item.isFormField()) {
File file = new File(root_upload, item.getName());
builder.append(file.getAbsolutePath()).append("
");
item.write(file);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
//可以从输入流中读取数据
// ServletInputStream is = request.getInputStream();
// byte[] buffer = new byte[8192];
// int len ;
// ByteArrayOutputStream bos= new ByteArrayOutputStream();
// while ((len = is.read(buffer)) != -1) {
// bos.write(buffer, 0, len);
// }
// builder.append("InputStream: ")
// .append(bos.toString("UTF-8"))
// .append("
");
// builder.append("Post的请求参数").append("
");
//
// Enumeration parameterNames = request.getParameterNames();
// while (parameterNames.hasMoreElements()) {
// String name = parameterNames.nextElement();
// builder.append(name)
// .append(":")
// .append(request.getParameter(name))
// .append("
");
// }
//接收来自浏览器的文件,
os.write(builder.toString().getBytes("UTF-8"));
//参数列表: 待转码的字符串, 字符编码
URLEncoder.encode("&", "UTF-8");
URLDecoder.decode("%26", "UTF-8");
builder.append("");
builder.append("");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
web.xml
TestServlet org.lulu.learn.TestServlet TestServlet /test
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!



