目录
SpringMVC是用来替代Servlet的,但是使用SpringMVC进行开发会更加简单快捷,二者功能大同小异均可用于表现层的开发
在javaweb项目启动后
1.web程序通过浏览器访问前端页面,发送请求到后端服务器
2.后端服务器采用三层架构思想进行功能开发:
表现层(controller)负责接受请求和数据,将数据交给业务层;业务层(service)负责调用数据完成数据库的增删改查,并将结果返回给表现层; 表现层将数据转成json格式返回给前端
3.前端页面将数据进行解析,最终展示给用户
javaweb项目调用流程理解:
Tomcat启动加载的是web.xml,web.xml里面设置拦截器,拦截器启动时加载springMVC配置文件,所以springMVC.xml的视图解析器生效,在springMVC.xml中开启注解扫描读取扫描包,才会在加上@Controller注解的AccountController类中扫描到,使其被管理。然后再通过AccountController类中@RequestMapping(“/findAll”)注解找到对应的东西然后执行返回页面(return “suc”;)再走视图解析器,返回suc.jsp页面
SpringMVC实现文件上传
用户在前端页面选择要上传的文件并提交,这个文件就被封装在一个特殊的请求里发送到服务器。服务器用特定的工具(MultipartResolver)来解析这个请求,把文件提取出来。然后,服务器按照你设定的规则(在Controller方法里)来处理这个文件,比如保存到某个地方。最后,服务器会告诉用户文件上传的结果。
在上传之前需要准备:
前端表单:首先,你需要在前端创建一个表单,允许用户选择要上传的文件。这个表单通常包含一个<input type="file">元素,让用户可以选择文件。
MultipartResolver:SpringMVC通过MultipartResolver接口来处理文件上传。这个接口的实现类会解析multipart/form-data类型的请求,这种类型的请求包含了文件数据。Spring提供了CommonsMultipartResolver和StandardMultipartResolver等实现类。
Controller方法:在SpringMVC的Controller中,你需要定义一个处理文件上传的方法。这个方法通常使用@RequestMapping注解来映射到相应的URL,并使用@RequestParam("file") MultipartFile file作为参数来接收上传的文件。
SpringMVC的异常处理
思路:
Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理。
处理流程如下:
当用户发送一个请求到服务器时,SpringMVC会尝试调用相应的控制器方法来处理这个请求。
如果在处理请求的过程中发生了异常,SpringMVC会捕获到这个异常,并查找是否有相应的异常处理器可以处理这个异常。
如果有匹配的异常处理器,SpringMVC会调用这个处理器来处理异常。处理器可以根据异常的类型和具体情况,来决定如何处理这个异常,比如返回一个错误页面、返回一个JSON格式的错误信息等。
如果没有找到匹配的异常处理器,或者异常处理器没有能够处理这个异常,那么SpringMVC会抛出一个默认的异常响应,告诉用户发生了错误。
SpringMVC框架中的拦截器
拦截器在整个项目中的作用很重要,在web.xml中配置,当web项目启动时,首先Tomcat启动加载的是web.xml,web.xml里面设置拦截器,拦截器启动时加载springMVC配置文件,所以springMVC.xml的视图解析器生效,在springMVC.xml中开启注解扫描读取扫描包,才会在加上@Controller注解的AccountController类中扫描到,使其被管理。然后再通过AccountController类中@RequestMapping(“/findAll”)注解找到对应的东西然后执行返回页面(return “suc”;)再走视图解析器,最后返回suc.jsp页面
-
拦截器和过滤器的功能比较类似,有区别
- 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
- 拦截器是SpringMVC框架独有的。
- 过滤器配置了/*,可以拦截任何资源。
- 拦截器只会对控制器中的方法进行拦截。