*@ExceptionHandler
- Controller method에서 예외가 발생되고, throws로 예외가 던져지면 DispatcherServlet이
예외를 잡아서 처리한다.
사용자에게 예외메시지가 제공 => 개발자가 만든 예외처리페이지를 사용자에게
제공해야한다.

-Controller안에서 다른 method가 throws한 예외를 처리할 수 있는 method 만드는것.
-같은 종류의 예외를 여러 method가 발생하더라도 하나의 @ExceptionHandler로 통합되어
처리된다.
사용법)
1.예외를 throws 하는 요청처리method 정의
@GetMapping( .. )
public String method( ,, ) throws 예외처리클래스,,{
2.@ExceptionHandler annotation을 method위 선언
@ExceptionHandler( {예외처리클래스.class,,, })
method는 반환형 ModelAndView 로 설정하고 매개변수는 선언된 예외처리클래스로 정의
public ModelAndView method( 예외처리클래스 객체명,,, ){
3.ModelAndView를 생성
ModelAndView mav=new ModelAndView();
4.뷰명 설정
mav.setViewName(“뷰명”);
*파일 업로드
- tomcat9을 사용하는 Boot 버전에서는 cos.jar( MultipartRequest)를 사용하여 업로드를 구현.
- tomcat10을 사용하는 Boot버전(2.6.x)에서는 Spring에서 제공하는 MultipartFile을 사용.
*MultipartFile
-org.springframework.web.mvc패키지에서 interface로 제공.
-중복파일명에 대한 처리가 되지 않는다.
-properties 파일을 설정하여 사용.
설정에 관한 method를 제공하지 않으므로
properties 파일에서 업로드관련 설정을 수행.
- MultipartFile 사용여부
spring.servlet.multipart.enabled=true
- 파일하나의 최대 사이즈
spring.servlet.multipart.max-file-size=10MB
- 업로드 파일의 총 크기 설정
spring.servlet.multipart.max-request-size=100MB
*입력 폼 생성 (RFC-1867 코딩)
<form action=“” method=“POST” enctype=“multipart/form-data”>
<input type=“file” name=“upload”>
<input type=“text” name=“이름”>
<input type=“text” name=“이름”>
<input type=“submit” vale=“ 업로드”>
</form>
*Controller 설정
1. Instance 변수로 업로드 디렉토리 설정.
private String uploadDir=“C:/dev/workspace/spring_mvc/src/main/resources/static/upload”;
2.요청 처리 method
@PostMapping(“..”)
public String uploadProcess( @RequestParam(“fileContorl명”)MultipartFile mf,
@RequestParam(“form control명”)String name,
@ModelAttribute DTO dto){
*List<MultipartFile>로 설정하면
여러 개의 파일을 동시에 업로드 가능
'Spring' 카테고리의 다른 글
| [Spring] SessionAttributes, cookie 얻기 (2) | 2025.09.08 |
|---|---|
| [Spring] Controller, web parameter, RequestParam, HttpServletRequest (2) | 2025.09.08 |
| [Spring] 구조, 디렉토리, 설정, tomcat, jakarta, properties (0) | 2025.09.08 |