1、SpringMVC的运行原理
首先是由用户进行发起请求,比如post、get请求,然后服务器会根据传过来的url地址进行匹配,接着DispatcherServlet (前端控制器) 会进行处理。
随后DispatcherServlet收到后会调用HandlerMapping(处理器映射器),会生成对应的对象全部返回给前端控制器,此时dispatcherServlet会调用经过Adapter(适配器)调试的Controller控制器,也叫后端控制器,并且会返回ModelAndView类型的数据给前端控制器,最后DispatcherServlet会通过ViewReslover(视图解析器)进行解析成完整的视图,并且反馈给用户。
2、SpringMVC的文件上传
首先在spring-mvc.xml中进行配置
<!--文件上传的配置
p:detaultEncoding 表示 缺省的语言编码
p:maxUploadSize 表示上传文件的最大容量
p:uploadTempDir 表示上传时的临时文件路劲 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"
p:uploadTempDir="temp"/>
然后创建UploadController类,并且添加@RequestParam注解获取表单文件的名称和文件,例
@Controller
public class UploadController {
/**
* 上传文件时的控制器
* @param upl 普通表单数据 @RequestParam("upl"),其中upl要与表单中的name的值一致
* @param file 文件上传数据,@RequestParam("file"),其中file要与表单中的控件的name保持一致
* @return 结果页面路径
* @throws IOException
*/
@RequestMapping("/upload")
public String saveFile(@RequestParam("upl") String upl, @RequestParam("file") MultipartFile file) throws IOException {
if(!file.isEmpty()){
File dest=new File(file.getOriginalFilename());
/*这个方法才是实现文件的上传*/
file.transferTo(dest);
FileReader in=new FileReader(dest);
int res;
String str="";
while((res=in.read())!=-1){
str=str+(char)res;
}
System.out.println(str);
}
return "";
}
}