-
Spring MVC流程
1.用户发送请求至前端控制器DispatcherServlet(也叫中央处理器).
2.DispatcherServlet收到请求调用HandlerMapping处理器映射器
3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet.
4.DispatcherServlet调用HandlerAdapter处理器适配器。
5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6.Controller执行完成返回ModelAndView.
7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet.
8.DisPatcherServlet将ModelAndView传给ViewResolver视图解析器。
9.ViewReslover解析后返回具体View.
10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet响应用户。
-
结合用户的登录请求解释Spring MVC原理
-
基于spring文件上传
pom.xml加依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
配置xml文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<property name="maxUploadSize" value="81920"/>
<property name="uploadTempDir" value="temp"/>
</bean>
第一个属性指定的默认编码是UTF-8,第二个属性指定了最大上传文件的大小,单位是byte,第三个指定了上传文件的缓存路径。
PostMapping("/uploadFile")
public String uploadFile(@RequestParam("userName") String userName, @RequestParam("password") String password, @RequestParam("file")MultipartFile file) throws IOException {
System.out.println("userName = "+userName);
System.out.println("password = "+password);
if(!file.isEmpty()){
System.out.println("original fileName"+file.getOriginalFilename());
//实现文件上传全靠这个一行代码~
File dest = new File("d:\\ceshi\\"+file.getOriginalFilename());
file.transferTo(dest);
BufferedReader br = new BufferedReader(new FileReader(dest));
String str;
while((str=br.readLine())!=null){
System.out.println(str);
}
br.close();
}
return "redirect:/main/employees";
}
简单 优雅~