문든 JSP view페이지를 작성하면서 궁금점이 생겼다 왜 ${}를 사용해도 되는데 굳이 c:out value를 이용하여 출력할까? 결론은 , 보안성때문이 크다. XSS(Cross-site Scripting) 란 ? -XSS공격은 웹사이트에 스크립트 코드를 주입시키는 방법으로 웹사이트 공격방법 중 기초적인 것에 해당됩니다. 해결 방법은 html코드를 해석하지 않게 만들면 간단히 방어할 수 있습니다. 즉, JSP view페이지를 만들 때 XSS공경 방지를 위해 " "을 사용하여 막을 수 있습니다. 실시간 베스트 글 혹시 국비지원이나 사설학원 (패스트 캠퍼스 등) 다니는 중이신가요? 현직 5년차가 직접 겪은 국비지원 패스트캠퍼스 후기 보러가기 국비지원 패스트캠퍼스 후기 현직 5년차 개발자가 알려주는 코딩학원..
EL ( Expression Language ) EL은 JSP의 출력 문법을 대체하는 표현 언어입니다 JSP에서의 값 표기법이며, i는 변수입니다. ${ i } EL에서의 값 표기법이며, i는 이름입니다. EL ( Expression Language ) EL은 JSP의 출력 문법을 대체하는 표현 언어입니다. JSP에서의 값 표기법이며, i는 변수입니다. ${ i } EL에서의 값 표기법이며, i는 이름입니다. EL 표기법에서 파라미터의 값은 param 키워드를 통해 가져올 수 있습니다. 또한 JSP 값 표기법에서 파라미터는 문자열이지만, EL에서 숫자는 숫자로, 문자열은 문자열로 인식합니다. 예를 들어, 클라이언트로부터 localhost:8080/testing/test.sjp?a=10 으로 요청이 올 때..
람다식 * Lambda Expression * 함수처럼 파라미터를 가진 코드 블록으로 익명 함수를 지칭하는 용어이다. * 일종의 함수처럼 사용이 가능하다. (호출, 재귀) 1) 람다식 형식 ( 파라미터1, 파라미터2) -> EL식 * 예1) a가 b보다 큰 경우 true를 리턴하고, 크지 않다면 false를 리턴하는 람다식 ( a, b) -> a>b ? true : false * 예2) 람다식을 EL에서 사용 ${ greaterEx = (a, b)-> a>b ? true : false ; " } * 람다식을 greaterEx 변수에 할당하는 코드이다. 책의 예제는 결과를 출력하지 않기 위해 세미콜론 연산자를 사용했다. * 람다식은 일종의 함수로, 위 처럼 할당한 변수를 함수처럼 호출할 수 있다. 또한 병..
Expression Language(표현 언어 또는 익스프레션 언어) - 값을 표현하는데 사용되는 새로운 스크립트 언어로 JSP의 기본문법을 보완하는 역활을 한다. - JSP 네 가지 기본 객체가 제공하는 영역의 속성 사용 - 집합 객체에 대한 접근 방법 제공 - 수치 연산, 관계 연산, 논리 연산자 제공 - 자바 클래스 메서드 호출 기능 제공 - 표현 언어만의 기본 객체 제공 EL 기본 문법 ${식 } - EL은 다음과 같이 $와 괄호('{' 와 }')' 그리고 표현식을 사용하여 값을 표현한다. - 식 부분에는 표현 언어가 정의한 문법에 따라 값을 표현하는 식이 온다. (액션태그 또는 커스텀태그의 속성 값, 표현식) - JSP의 스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용..
세션(Session)이란? 세션의 정보는 접속해서 종료되기까지 유지된다. 접속시간에 제한을 두어 일정시간 응답이 없으면 유지를 못하게 설정이 가능하다. 쿠키보다 보안적으로 유리하다. 웹 컨테이너에 정보를 보관한다 웹 브라우저마다 별도의 세션을 갖는다.(세션 고유ID 할당) 세션과 쿠키의 차이점 - 쿠키는 웹 브라우저에 정보를 관할 때 사용한다. 반면 세션은 웹 컨테이너에 정보를 보관한다. - 세션은 웹 브라우저가 아니라 서버에 값을 저장한다. - 서버는 세션을 사용해서 클라이언트 상태를 유지할 수 있기 때문에, 로그인한 사용자 정보를 유지하기 위한 목적으로 세션을 사용한다. - 서버에 저장하여 보안성이 뛰어나기 때문에 쿠키보다 세션을 사용한다. HTTP 프로토콜의 특성 세션을 이해하기 위해서는 HTTP프..
쿠키의 개요 - HTTP 프로토콜은 상태가 없다. 즉 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않는 특성을 가지고 있다. 즉, 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다 (Connectionless) - HTTP 프로토콜은 상태에 대한 지속적인 연결이 없다. 따라서 이런 부분을 해결하기 위해서 웹 서버 측에 웹 브라우저의 정보를 저장한 후 계속되는 웹브라우저의 요청 속에 포함되어 있는 웹 브라우저의 정보와 비교해서 동일한 웹 브라우저로부터 온 요청을 판단할 수 있다. 쿠키란 ? - 쿠키(Cookie)는 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법이다. - 기본적으로 쿠키는 그 쿠키를 생성한 서버에만 전송된다. ..
JSP 페이지의 주용 기능 중 하나는 데이터를 보여주는 기능이다. 흔하게 볼 수 있는 게시판을 예로 들면 글 목록 보기, 글쓰기, 글 읽기 등의 기능이 이에 해당. 그런데 이런 데이터를 보여주는 기능과 단순하게 화면을 출력하는 부분이 하나의 JSP에 뒤섞여 있으면 문제가 생긴다. 능을 확장하거나 코드를 재사용하기가 상당히 어려워진다. 그렇기에 JSP에서는 데이터를 자바빈(JavaBean)이라는 클래스에 담아서 값을 보여준다. 자바빈 클래스는 데이터를 저장하는 필드 , 데이터를 읽어올 때 사용되는 메서드 , 그리고 값을 저장할 때 사용되는 메서드로 구성됩니다. ( getter / setter / 사용자 정의 생성자 ) useBean은 자바빈 객체를 생성하는 액션태그이다. [1] 기본 생성자가 반드시 존재해..
기본 객체의 속성(Attribute) 사용 - 네 개의 기본객체 pagecontext, request, session, application 는 속성을 갖고 있다. - 속성은 각각의 기본 객체가 존재하는 동안에 사용될 수 있고, JSP 페이지 사이에서 정보를 주고 받거나 공유하기 위한 목적으로 사용된다. - 형태를 가지고, 서로 다른 이름을 가진 속성을 여러개 포함할 수 있다. - request 기본 객체는 한 번의 요청에 대해 유효하게 동작하며 , 한 번의 요청을 처리하는 데 사용되는 모든 JSP에서 공유된다. 메서드 반환형 설명 setAttribute(String name, Object value) void 이름이 name인 속성의 값을 value로 지정한다. getAttribute(String na..