Spring MVC 全局异常处理&文件上传

时间:2023-03-09 19:10:16
Spring MVC   全局异常处理&文件上传

Spring MVC 全局异常处理

使用SimpleMappingExceptionResolver实现异常处理

在welcome-servlet.xml进行如下配置:

 <bean
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="cn.jbit.Controler.UserController">error</prop>
</props>
</property>
</bean>

然后注释掉局部异常

 /*@ExceptionHandler(value={UserException.class})
public String handlerException(UserException exception,HttpServletRequest request){ request.setAttribute("e",exception);
return "error"; }*/

最后在error.jsp页面输出

${exception.message}

Spring MVC 上传文件

1.在welcome-servlet.xml配置MultipartResolver

 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

 <property name="maxUploadSize" value="5000000"></property>

 </bean> 

2.在add.jsp页面编写文件上传表单页面和控制器

Spring MVC   全局异常处理&文件上传

3.在UserController界面接收

 @RequestMapping(value = "/addSave", method = RequestMethod.POST)
public String addSave(@Validated User user, BindingResult result,
MultipartFile upload, HttpServletRequest request)
throws IOException {
String uploadFilePath = request.getSession().getServletContext()
.getRealPath("/statics/upload");
System.out.println(upload.getOriginalFilename());
System.out.println(upload.getContentType());
System.out.println(upload.getName()); if (!upload.isEmpty()) {
File file = new File(uploadFilePath + File.separator
+ upload.getOriginalFilename());
FileUtils.copyInputStreamToFile(upload.getInputStream(), file);
} userList.put(user.getId(), user);
return "redirect:/list";
}

注:

getOriginalFilename():获取上传文件的原名

getContentType():获取文件MIME类型

getName():获取表单中文件组件的名字