3. Back-end

    Spring MVC - [ EL표현식 + JS Template Literal ]

    우선 JS Template Literal은 내장된 표현식을 허용하는 문자열 리터럴로, 표현식/문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅 등 다양한 기능을 제공한다. 템플릿 리터럴은 작은따옴표나 큰따옴표 대신 백틱(`)(grave accent)으로 감싸주며, ${}를 사용하여 표현식을 표기한다. 아래와 같은 코드를 보자. jsp파일 내의 js코드이다. 여기에 백틱(`)으로 감싼 템플릿 리터럴이 있다. 이 안에 msg 변수를 넣기 위해 ${msg}와 같이 사용했는데, 실행 시 서버 단->브라우저 단 순서로 실행되므로, ${msg}부분을 서버가 EL표현식으로 해석해서 원하는 msg변수의 값이 나타나지 않는다.. function setMessage(msg, element){ document.g..

    Spring MVC - [ view-controller / servlet-context.xml]

    컨트롤러에서 아래와 같은 코드 대신 @GetMapping("/register/add") public String register() { return "registerForm"; // WEB-INF/vies/registerForm.jsp } servlet-context.xml 파일에서 아래와 같이 view-controller 태그로 한 줄로 등록해서 사용할 수 있다. view-controller는 POST는 허용하지 않고, GET 요청만 허용한다. /register/add 로 들어오는 주소를 registerForm.jsp 뷰 파일로 이동시킨다. 그리고 servlet-context.xml 파일의 상단을 보면 아래와 같이 beans 태그에 xmlns, xsi 등 여러 코드들이 들어있다. 이는 : 뒤의 스케마의..

    Spring MVC - [ view-controller / servlet-context.xml]

    Spring MVC - [@GetMapping, @PostMapping]

    @GetMapping, @PostMapping 원래는 @RequestMapping(value="주소", method=RequestMethod.POST) 와 같이 맵핑시켰지만, 스프링 4.3부터는 @PostMapping("주소") 와 같이 간단하게 POST방식 맵핑이 가능하다. //@RequestMapping(value="/register/save", method=RequestMethod.POST) @PostMapping("/register/save") // 스프링 4.3부터 가능 public String save() { } //@RequestMapping("/register/add", method=RequestMethod.GET) @GetMapping("/register/add") public Strin..

    Spring MVC - [@GetMapping, @PostMapping]

    Spring MVC - [ @RequestParam / @ModelAttribute ]

    1. @RequestParam @RequestParam은 요청 파라미터를 연결할 매개변수에 붙이는 애너테이션으로 아래와 같이 생략 가능하다. 만약 주소 요청에 파라미터 이름이 없으면 null로 값을 받고, 파라미터 이름만 있고 값이 없으면 빈 문자열("")로 받아온다. 아래와 같이 메서드 매개변수 앞에 애너테이션을 붙이면 required=true, 즉 필수로 받아와야하는 값이 된다. 이 경우 주소 요청에 해당하는 파라미터 이름이 없으면 400에러 Bad Request가 뜨고, 파라미터 이름만 있고 값이 없으면 마찬가지로 빈 문자열("")로 받아온다. 아래 코드를 보면 required=false, 즉 필수 입력이 아니다. 따라서 주소 요청에 year값을 필수로 붙여 줄 필요가 없고, 이렇게 주소를 호출할 ..

    Spring MVC - [ @RequestParam / @ModelAttribute ]

    Spring MVC - [ JSTL / Filter ]

    1. JSTL (JSP Standard Tag Library) jsp 에서 if문 등을 쓰려면 아래 사진과 같이 코드가 복잡해진다. 와 같은 자바 태그를 없애기 위해 나온 게 JSTL이다. 파일 상단에 아래와 같이 코드를 입력해줘야 JSTL을 사용할 수 있다. 2. Filter 필터는 공통적인 요청 전처리와 응답 후처리에 사용한다. ex) 로깅, 인코딩 등 여러 서블릿에 중복되어있는 전처리와 후처리는 필터로 넣고, 서블릿에서는 처리하는 부분만 실행한다. 만약 필터가 여러개일 경우에는 우선 Filter1이 호출되고, 아래 사진에서 1-1.전처리 -> 1-2.필터 호출 -> 2-1.전처리 -> 2-2.서블릿 호출 -> 서블릿 처리 -> 2-3.후처리 -> 1-3.후처리 의 순서와 같다. 아래는 필터 예시 클..

    Spring MVC - [ JSTL / Filter ]

    Spring MVC - [ URL패턴 / EL표현식 ]

    1. URL 패턴 @WebServlet으로 서블릿을 URL에 매핑할 때 URL패턴을 사용한다. (스프링은 @RequestMapping) 이전에 서블릿은 lazy-init, 즉 늦은 초기화라고 했다. URL을 매핑할 때 loadOnStartup 옵션을 주면 서블릿을 호출하기 전에 미리 초기화를 해놓는다. 여기에 주는 값 (ex. loadOnStartup=1) 이 우선순위이다. // 한 개일 때 @WebServlet("/hello") // 여러개일 때 @WebServlet(urlPatterns={"/hello","/hello/*"},loadOnStartup=1) 아래 종류는 우선순위 순으로 나열되어 있다. 종류 URL Pattern 매칭 URL 1.exact mapping - 정확히 일치 /login/hel..

    Spring MVC - [ URL패턴 / EL표현식 ]