본문 바로가기

전체

(219)
[MVC] EL 연산자 EL 연산자EL 연산자는 EL 표현식에서 사용되는 연산자이다. 산술 연산자, 비교 연산자, 논리 연산자 등이 있다. 예제) [el_operator.jsp] EL Operator num1 = ${num1 } num1 = ${num2 } EL Operator num1 = ${num1 } num1 = ${num2 } num1 * num2 = ${num1 * num2 } num1 / num2 = ${num1 / num2 } num1 % num2 = ${num1 % num2 } num1 + num2 = ${num1 + num2 } num1 - num2 = ${num1 - num2 } / 대신 div를, % 대신 mod를 사용해도 된다.num1 / num2 = ${num1 / num2 } num1 div num2 ..
[MVC] TLD 파일 / EL 함수 TLD(Tag Library Description) 파일 TLD 파일은 JSP에서 EL 함수 및 커스텀 태그를 선언하기 위한 XML 파일이다. XML 스키마 파일(web-jsptaglibrary_2_0.xsd)에서 제공하는 엘리먼트만 사용해야 한다. 예제) EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스 [HelloEL.java] 작성package xyz.itwill.el; //EL 함수를 사용할 경우 호출될 메소드가 선언된 클래스 public class HelloEL { //EL 함수를 사용할 경우 호출될 메소드는 반드시 static 메소드로 선언 public static String hello(String name) { return name+"님, 안녕하세요."; } } tld 파일 생성하기 ..
[MVC] EL 내장객체 Scope 객체 JSP 내장객체에 따라 속성값을 저장하여 사용할 수 있는 범위를 다르게 설정할 수 있다. 스코프 객체 속성값의 사용범위 : Page Scope, Request Scope, Session Scope, Application Scope Page Scope: 가장 작은 범위의 스코프로, 해당 JSP 페이지에서만 유효하다. 페이지 내에서 선언된 변수는 해당 페이지 내에서만 접근 가능하다. 다른 JSP 페이지에서는 접근할 수 없다. JSP 페이지가 처리되는 동안 유지되며, 페이지가 렌더링되고 응답이 전송되면 소멸된다. Request Scope: 요청이 들어온 서블릿에서 JSP 페이지로 전달되는 동안 유지되는 스코프이다, 같은 요청 범위에서 서블릿과 JSP 페이지 간에 데이터를 공유할 수 있다. 하나..
[MVC] EL 연산자에서의 [] 사용 EL 연산자에서 []를 사용해야만 하는 경우가 존재한다. 1번째 이유 : 배열이나 list에서 첨자를 표현하기 위해 사용 예시) [string_array.jsp] nameArray 배열 선언 [string_array_el.jsp] 스코프 객체의 속성값이 배열인 경우 배열 요소값을 제공받아 출력하기 위해 첨자를 사용하는데, EL 표현식에서 . 연산자로 첨자를 사용하여 표현하면 ELException이 발생하기 때문에 EL 표현식에서는 . 연산자를 사용할 수 없다.${nameArray.0 } EL 표현식에서는 . 연산자 대신 [] 연산자를 사용하면 된다.${nameArray["0"] } 첨자는 " " 기호 생략이 가능하다${nameArray[0]} EL 표현식에서 배열의 첨자가 범위를 벗어난 경우 EL이 실행..
[MVC] EL(expression Language) EL(expression Language) EL은 스코프(Scope) 객체의 속성값으로 저장된 객체를 제공받아 출력하기 위한 언어이다. EL 표현식으로 스코프 객체의 속성명을 사용하면 속성값을 제공받아 출력 처리 할 수 있다. EL 표현식)${속성명} 예시1) [basic_string.jsp] pageContext.setAttribute(String attributeName, Object attributeValue) : pageContext 내장객체에 속성명(문자열)과 속성값(객체)를 전달받아 저장하는 메소드 - page Scope pageContext.getAttribute(String attributeName) : pageContext 내장 객체에 저장된 스코프 속성값을 속성명을 이용하여 객체로 반환..
[MVC] MVC 컨트롤러 (Map 객체 / load-on-startup 엘리먼트 / properties 파일) Controller에서 나눠서 원하는 클래스를 호출해주는 작업을 할 때, if문을 사용하지 않고 Map 객체를 이용하면 속도도 향상시킬 수 있고, 가독성이 더 좋아진다. 기존 ControllerServlet 코드 package xyz.itwill.mvc; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //@WebServlet("*.do") public class ControllerServlet ext..
[MVC] Model2 모델2 구현하기 1. 클라이언트의 모든 요청을 받을 수 있도록 서블릿을 설정하여 단일 진입점의 기능을 구현한다. (이를 Front Controller Pattern이라고 부른다.) 기능이 많아지면 servlet 개수가 많아지고 길어지는 문제가 발생하기 때문에 모든 요청을 한 곳에 받아오고 하나의 컨트롤러로 다시 처리로 보내주는 Front-Controller 패턴을 이용한다. 컨트롤러(Controller - Servlet) : 클라이언트에게 모든 요청을 받아 모델(Model - Class) 역할의 객체로 요청 처리 메소드를 호출하여 클라이언트의 요청을 처리하고 처리결과를 뷰(View - JSP)로 전달하여 응답되도록 프로그램의 흐름을 제공하는 웹프로그램 Front Controller Pattern 소프트웨..
[MVC] MVC Model1 / MVC Model2 MVC(Mode-View-Controller) MVC(Mode-View-Controller)는 소프트웨어 디자인 패턴 중 하나로, 사용자 인터페이스와 비즈니스 로직을 분리하여 애플리케이션을 구성하는 방법을 제공한다. MVC 패턴은 애플리케이션의 유지보수성, 확장성 및 재사용성을 향상시키는 데 도움이 되는 구조를 제공한다. MVC 구성요소 Model(모델) : 애플리케이션의 데이터와 비즈니스 로직을 담당한다. 모델은 데이터를 관리하고 업데이트하며, 변경 사항을 뷰와 컨트롤러에 알린다. 데이터베이스, 파일 또는 외부 서비스와 같은 데이터 저장소와 상호작용한다. View(뷰): 모델의 데이터를 시각적으로 표현하는 역할을 담당한다. 사용자 인터페이스를 구성하고, 모델의 데이터를 표시하며, 사용자 입력을 처리하는..