스프링을 이용한 톰캣서버로 html파일 출력하기

Kwangmo Yang·2022년 8월 18일
0

Spring

목록 보기
2/2
post-thumbnail


뭐가 이렇게 많고 뭘해야 하는진 모르겠지만, 일단
HomeController 라는 파일을 오픈해보자.

@Controller
public class HomeController {
	
	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	
	/**
	 * Simply selects the home view to render by returning its name.
	 */
	@RequestMapping(value = "/", method = RequestMethod.GET)
	   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";
	   }

코드를 보면 벌써 머리가 어지러워진다.

스프링 딱대

아무튼 스프링 프레임워크이기 때문에
아래 주석에 대해 알아보자

@Controller
@RequestMapping

Annotation(주석)이 없으면 프로그램이 실행되지 않음

그래서 저게 뭔 역할을 하는건데?

MVC 패턴 & @Controller

일단 스프링 프레임 워크에서는 MVC패턴을 사용하고 있는데
MVC(Model - View - Controller)는 사용자 관점에서 보는 화면과 비지니스
로직을 구분하는게 가장 중요하단다.

MVC(Model - View - Controller)의 그림을 보자

Controller

Model - View 를 이어주는 연결고리 같은 친구

View

View는 User Interface를 뜻하는데

UI란 사용자가 보게 되는 화면을 의미한다

사용자가 어떤 버튼을 누르는 이벤트를 수행하면 해당 정보가
Controller로 넘어가고 Model이 메서드를 받아 수행한다

Model

Model은 유저가 뿌린 메서드가 담긴 컨트롤러에서 수행할 내용을 받아

자바 코드, SQL을 수행하고 결과물을 컨트롤로 보낸다.

결론은

@Controller
public class HomeController {
	
private static final Logger logger = 
LoggerFactory.getLogger(HomeController.class);

HomeController클래스는 컨트롤러 역할을 하는 친구다.
너무 딥하게 들어가진 말자 머리어지럽다.

@RequestMapping

@RequestMapping(value = "/hello-basic")

위처럼 매핑을 하면 localhost:8080/hello-basic으로 url을 입력했을 경우에 위 주소에 해당하는 메서드가 실행된다.

다중 요청도 가능하다.

@RequestMapping(value = {"/hello", "/hello-basic"})

다중요청을 할 경우는 배열로 묶어주어야하고.
localhost:8080/ 뒤에 배열에 담긴 주소 아무거나 입력하면 실행된다.

오늘 실습해본 코드를 보자

 @RequestMapping(value = "/NewFile", method = RequestMethod.GET)
 public String NewFile(Locale locale, Model model) {
	model.addAttribute("NewFile", "test 성공?!");
	return "NewFile";
	}   

model이라는 객체의 메서드 addAttribute에 어떤 파일을 열고
성공했을때 어떤 문자가 뜨는지 확인되는 메시지 인듯하다.

NewFile이라는 jsp파일을 생성하고

간단한 html코드를 짜보았다. 위 코드를 톰캣서버를 실행후

localhost:8080/NewFile 이라는 url을 입력하게 되면?

실시간 서버로 매핑이 된걸 확인할수있다.
그리고

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

NewFile.jsp 파일에 html코드 작성시 UTF-8로 설정해줄것
그리고,

 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">

html !자동완성시 나오는 위코드는 삭제해주는 편이 좋다.
이 코드 때문에 서버에러나서 페이지가 안열렸음.


이런 느낌으로 실행이 된게 맞는지 모르겠다.

암튼 끝.

profile
국비교육중 22.04.26~

0개의 댓글