Web 44

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 11. 파일 업로드

1. 서블릿과 파일 업로드멀티파트 형식은 전송 데이터를 하나하나 각각 부분(Part)으로 나누어 전송한다.서블릿이 제공하는 Part는 멀티파트 형식을 편리하게 읽을 수 있는 다양한 메서드를 제공한다.서블릿이 제공하는 Part는 편하기는 하지만, HttpServletRequest를 사용해야 하고, 추가로 파일 부분만 구분하려면 여러 코드를 넣어야 한다.// application.propertiesfile.dir=파일 업로드 경로 설정public class ServletUploadControllerV2 { @Value("${file.dir}") private String fileDir; @GetMapping("/upload") public String newFile() { ..

Web/Spring 2025.08.24

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 10. 스프링 타입 컨버터

1. Converter스프링 타입 변환 적용 예시- 스프링 MVC 요청 파라미터(@RequestParam, @ModelAttribute, @ModelAttribute)- @Value 등으로 YML 정보 읽기- XML에 넣은 스프링 빈 정보를 변환- 뷰를 렌더링 할 때public class IntegerToStringConverter implements Converter { @Override public String convert(Integer source) { log.info("convert source={}", source); return String.valueOf(source); }}public class StringToIntegerConverter imple..

Web/Spring 2025.08.24

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 09. API 예외 처리

1. API 예외 처리HTML 페이지의 경우 오류 페이지만 있으면 대부분의 문제를 해결할 수 있다.그런데 API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다.public class ErrorPageController { @RequestMapping("/error-page/500") public String errorPage500(HttpServletRequest request, HttpServletResponse response) { printErrorInfo(request); return "error-page/500"; } @RequestMapping(value = "/error-page/500", produces..

Web/Spring 2025.08.24

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 08. 예외 처리와 오류 페이지

1. 서블릿 예외 처리public class ServletExController { @GetMapping("/error-ex") public void errorEx() { throw new RuntimeException("예외 발생!"); } @GetMapping("/error-404") public void error404(HttpServletResponse response) throws IOException { response.sendError(404, "404 오류!"); } @GetMapping("/error-400") public void error400(HttpServletResponse response) throws IOEx..

Web/Spring 2025.08.20

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 07. 로그인 처리2 - 필터, 인터셉터

1. 서블릿 필터필터 흐름: HTTP 요청 > WAS > 필터 > 서블릿 > 컨트롤러비 로그인 사용자는 필터에서 적절하지 않은 요청이라 판단하고 서블릿을 호출하지 않는다.필터는 여러 개가 사용될 수 있다. (필터1 > 필터2 > 필터3)// LoginCheckFilterpublic class LoginCheckFilter implements Filter { private static final String[] whitelist = {"/", "/members/add", "/login", "/logout", "/css/*"}; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain..

Web/Spring 2025.08.18

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 04. 검증1-Validation

1. 검증 직접 처리 @PostMapping("/add") public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과를 보관 Map errors = new HashMap(); //검증 로직 if (!StringUtils.hasText(item.getItemName())) { errors.put("itemName", "상품 이름은 필수입니다."); } if (item.getPrice() == null || item.getPrice() 1000000) { ..

Web/Spring 2025.08.14

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 03. 메시지, 국제화

1. 메시지메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.예를 들어서 messages.properties라는 메시지 관리용 파일을 만들고각 HTML들은 다음과 같이 해당 데이터를 key값으로 불러서 사용하는 것이다.item=상품item.id=상품 IDitem.itemName=상품명item.price=가격item.quantity=수량 2. 국제화메시지에서 설명한 메시지 파일(message.properties)을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다.//messages_en.propertiesitem=Itemitem.id=Item IDitem.itemName=Item Nameitem.price=priceitem.quantity=quantity//messages_ko.pr..

Web/Spring 2025.03.04

[스프링 MVC 2편 - 백엔드 웹 개발 활용 기술] 02. 타임리프 스프링 통합과 폼

1. 타임리프 스프링 통합스프링 통합으로 추가되는 기능들- 스프링의 SpringEL 문법 통합- ${@myBean.dosomething()}처럼 스프링 빈 호출 지원- 편리한 폼 관리를 위한 추가 속성 (th:object, th:field, th:errors, th:errorclass)- 폼 컴포넌트 기능 (checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능)- 스프링의 메시지, 국제화 기능의 편리한 통합- 스프링의 검증, 오류 처리 통합- 스프링의 변환 서비스 통합(ConversionService) 2. 입력 폼 처리 @GetMapping("/add") public String addForm(Model model) { model.addAttri..

Web/Spring 2025.03.03