Spring MVC

으누·2024년 10월 23일

한글처리

한글 깨짐 처리

   <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>
         org.springframework.web.filter.CharacterEncodingFilter     
      </filter-class>
      <init-param>
         <param-name>encoding</param-name>   
         <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
         <param-name>forceEncoding</param-name>  
         <param-value>true</param-value>
      </init-param>
   </filter>   
   <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>               </filter-mapping>  

@Controller

Spring Framework에서 사용되는 애너테이션으로, 웹 애플리케이션에서 요청을 처리하는 컨트롤러 클래스를 정의하는 데 사용됩니다. 이 애너테이션은 MVC (Model-View-Controller) 패턴의 일부로, 클라이언트의 요청을 받고, 처리한 후, 적절한 뷰를 반환하는 역할을 합니다.
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);

private static final:

private: 이 필드는 해당 클래스 내에서만 접근 가능함을 의미합니다.
static: 이 필드는 클래스의 인스턴스와 관계없이 존재하며, 모든 인스턴스가 공유합니다.
final: 이 필드는 초기화 후에 다시 할당될 수 없음을 의미합니다. 즉, 한 번 생성된 로거는 변경할 수 없습니다.

Logger logger:

Logger는 로깅을 위한 클래스입니다. 이 객체를 통해 로그 메시지를 기록할 수 있습니다. 로그 메시지는 보통 다양한 수준(level, 예: DEBUG, INFO, WARN, ERROR 등)으로 기록됩니다.

LoggerFactory.getLogger(HomeController.class):

LoggerFactory는 SLF4J에서 제공하는 팩토리 클래스입니다. getLogger(Class<?> clazz) 메서드는 주어진 클래스의 로거 인스턴스를 반환합니다. 여기서는 HomeController 클래스에 대한 로거 인스턴스를 생성합니다.
이 로거는 HomeController 클래스의 로그 메시지를 기록하는 데 사용됩니다. 즉, 클래스 이름을 기반으로 로거의 이름이 지정됩니다.

@RequestMapping

Spring Framework에서 HTTP 요청을 특정 메서드와 매핑하기 위해 사용하는 애너테이션입니다. 이 애너테이션은 주로 컨트롤러 클래스 또는 메서드에 적용되어, 해당 요청이 들어왔을 때 어떤 처리를 해야 할지를 지정합니다.

public String home(Locale locale, Model model) {
		logger.info("Welcome home! The client locale is {}.", locale);
		
		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
		
		String formattedDate = dateFormat.format(date);
		
		model.addAttribute("serverTime", formattedDate );
		
		return "home";
	}

public String home(Locale locale, Model model):

home 메서드는 문자열을 반환합니다. 이 문자열은 뷰의 이름을 나타내며, "home" 뷰를 반환할 것입니다.

Locale locale:

클라이언트의 언어 및 지역 정보를 담고 있는 객체입니다. 이 정보는 사용자의 언어와 지역에 맞춘 날짜 및 메시지를 표시하는 데 사용됩니다.
Model model: 컨트롤러와 뷰 간에 데이터를 전달하는 데 사용되는 객체입니다. 뷰에서 사용될 데이터를 이 모델에 추가할 수 있습니다.

logger.info(...):

로깅 프레임워크를 사용하여 로그 메시지를 기록합니다. 클라이언트의 로케일 정보를 로그에 출력하여 디버깅이나 정보 추적에 활용할 수 있습니다.

dateFormat.format(date):

현재 날짜를 지정된 포맷으로 문자열로 변환합니다.

profile
코딩 일기장

0개의 댓글