请求的消息体可以是文本,也可以是二进制
普通文本消息体
String value = req.getParameter("参数名"); //参数名包含: //超链接对应的是?号好后面的参数名 //对于表单的话,参数为 表单控件中 name的值 //getParameter("参数名");函数可以处理超链接、表单输入框、单选框、单选下拉菜单、文本域 String[] values = req.getParameterValues("name值"); //getParameterValues("name值");函数处理表单中的复选框、多选下拉菜单
二进制消息体
//获得文件对象的part Part part = request.getPart("photo"); //获得该文件对象的文件名 String fileName = part.getSubmittedFileName(); //getParameter 当进行二进制传输数据的时候 该方法不能获得输入框中的值。 //添加了@MultipartConfig注解后 ,使用getParameter方法,文本与二进制没有区别
上传文件
文件操作-客户端的设置
-
提交方式为post
-
enctype="multipart/form-date"(enctype规定表单数据在发送到服务器之前应该如何编码)
文件上传的第一步
-
设置form的提交方式为 post 编码方式为 enctype="multipart/form-data"
-
书写处理文件上传的servlet. 并且告诉web容器该servlet可以进行文件处理。
-
分别获取每个表单元素的值(part)
//获得文件对象的part Part part = request.getPart("photo"); //获得该文件对象的文件名 String fileName = part.getSubmittedFileName(); //获得文件的后缀名 String ext =fileName.substring(fileName.lastIndexOf(".")); //获得uuid String uuid = UUID.randomUUID().toString(); //获得新的文件名 String newFileName = uuid+ext; //获得文件存放的地址 String path = this.getServletContext().getRealPath("存放上传文件的文件夹"); //创建一个文件对象 File file = new File(path); //如果没有该imgs文件夹 if(!file.exists()){ file.mkdir(); } //获得保存文件的路径 String save_path = path+File.separator+newFileName; //File.separator -> 系统生成的文件分隔符 //上传文件 part.write(save_path);
其他
-
凡是从客户端传过来的都是字符串