Web언어/JSP 11

[JSP] JSP 코드블록

[JSP] JSP의 역할 HTML 문서를 Dynamic하게 만드는 언어 중 하나가 JSP이다. 이번 포스팅에서는 HTML 문서를 Dynamic하게 만드는 과정에서 JSP의 역할을 알아보겠다. HTML 문서를 서블릿(Servlet)으로 만들기 HTML문서는 태그 lordofkangs.tistory.com 지난 포스팅에서 JSP의 역할을 알아보았다. JSP는 jasper가 Dynamic하게 처리할 부분을 표시한 문서이다. 개발자는 HTML 코드 중 Dynamic한 부분을 코드블록을 사용하여 표현해야한다. jasper는 JSP 문서를 서블릿 클래스로 변환한다. // 서블릿클래스 public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase..

Web언어/JSP 2022.01.31

[JSP] JSP의 역할

HTML 문서를 Dynamic하게 만드는 언어 중 하나가 JSP이다. 이번 포스팅에서는 HTML 문서를 Dynamic하게 만드는 과정에서 JSP의 역할을 알아보겠다. HTML 문서를 서블릿(Servlet)으로 만들기 HTML문서는 태그로만 이루어져서 정적(Static)이다. 변수나 메소드를 갖지 못하고 연산도 하지 못한다. 그래서 클라이언트가 경로를 통해 HTML 문서에 접근하면 웹서버는 HTML 문서를 웹브라우저에게 보내고 웹브라우저는 HTML 코드를 파싱하여 브라우저에 표현한다. 이 과정에서 Dynamic한 요소란 없다. 그럼 JSP를 보자. 클라이언트가 JSP 문서에 접근하면 WAS는 jasper라는 프로그램을 돌려 JSP문서를 서블릿 파일로 변환한다. 서블릿이란 JAVA언어로 작성된 클래스 파일로..

Web언어/JSP 2022.01.30

[JSP] 동적(Dynamic) 페이지란?

HTML은 정적 페이지이다. 3+4 위 HTML 파일을 웹브라우저에 출력하면 3+4가 그대로 출력된다. +,- 같은 연산을 수행하고 사용자의 입력에 반응하는 페이지를 동적(Dynamic) 페이지라 부른다. 태그로만 이루어진 HTML은 동적인 표현을 못한다. 변수와 함수를 가진 언어를 사용하면 Dynamic한 성질을 불어 넣을 수 있다. 브라우저 vs 서버 언어를 사용하려면 언어를 해석하는 해석기가 필요하다. 브라우저 쪽 해석기를 사용하는 대표적인 언어가 JavaScript이고 JSP, PHP는 서버쪽 해석기를 사용한다. 다음 포스팅 부터 JSP를 이용하여 HTML 페이지에 Dynamic한 성질을 불어 넣는 법을 하나씩 알아볼 것이다.

Web언어/JSP 2022.01.29

[ JSP ] 상태 유지 ( Session, Cookie )

웹브라우저(Client)와 웹서버(Server)는 HTTP로 통신한다. HTTP는 상태 비저장(Stateless) 프로토콜이다. HTTP 프로토콜로 이루어지는 통신은 모두 독립적으로 이루어진다. 고로, 첫 번째 통신은 두 번째 통신에게 영향을 줄 수 없다. 초창기 웹환경처럼 단순히 문서만 열람하는 경우라면 문제없다. 그러나 이제는 로그인처럼 특정 '상태(State)'를 유지해야 한다. 상태를 유지하는 역할은 '쿠키'와 '세션'이 맡는다. 상태유지란, 데이터를 유지함을 의미한다. 그럼 데이터를 저장할 공간이 필요한다. 서버 쪽에 위치한 데이터 저장공간을, 세션(session)이라 부르고 클라이언트 쪽에 위치한 데이터 저장공간을, 쿠키(Cookie)라고 부른다. 세션(Session) 세션은 서버(WAS)쪽에..

Web언어/JSP 2022.01.25

[ JSP ] 인코딩(Encoding) 설정

문자가 깨지는 이유는 브라우저 => 서버 서버 => 브라우저 환경이 변할 때, 환경별로 설정된 인코딩 방식이 다르기 때문이다. 그러므로 인코딩 설정을 바꾸어야 한다. 브라우저 => 서버 (Request) 요청에는 크게 두 가지가 있다. Get 방식, Post 방식 이전 포스팅에서 자세히 다루어 본대로, 웹서버에서 Get 방식으로 url로 넘길 때와 Post 방식으로 HTTP body 안에 데이터를 넣고 전송하는 방식은 서로 인코딩 방식이 다르다. 그래서 Get 방식과 Post 방식은 인코딩을 설정하는 방식도 다르다. Post 방식의 경우, 이클립스로 서블릿을 개발하면서 JAVA 메소드로 인코딩을 할 수 있다. request.setCharacterEncoding("UTF=8"); 로 간단히 인코딩 방식을 ..

Web언어/JSP 2021.06.21

[ JSP ] 인코딩(Encoding)을 하는 이유

웹 개발에서 빼놓을 수 없는 것이 '인코딩' 설정이다. 우리는 웹에서 한글이 강민구 이나 뤱뜲핟뷇와 같이 깨지는 것을 자주 보았다. 한글이 깨지는 이유는 웹브라우저와 웹서버가 서로 다른 인코딩 방식을 사용하기 때문이다. 웹브라우저는 2Byte씩 처리하는 UTF-8 인코딩 방식을 사용하는데, 웹서버는 1Byte씩 처리하는 ISO-8859-1 방식으로 인코딩을 하면, 서로 다른 인코딩 방식 때문에 적절한 디코딩이 이루어지지 않는 것이다. 위와 같이, 한글을 POST 방식과 GET 방식으로 서버에 전송하여, 서버 콘솔을 통해, 서버에 어떻게 값이 전달되었는지 확인해 보았다. POST 방식은 한글이 깨졌지만 GET 방식은 한글이 깨지지 않았다. GET과 POST가 다른 결과가 나오는 이유는 무엇일까?..

Web언어/JSP 2021.06.21

[ JSP ] HttpServlet이란?

단순한 클래스가 서블릿 클래스가 되기 위해서는 1. init() 2. service() 3. destroy() 순서의 생명주기를 가져야한다. 해당 생명주기를 추상메소드로 갖는 인터페이스가 Servlet 인터페이스이다. (아래 포스팅에서 자세히 다루었습니다.) [ JSP ] Servlet 과 ServletConfig 서블릿(Servlet)은 콘솔프로그램에서 동작하는 클래스가 아니다. 서블릿은 웹환경에서 동작하는 클래스이다. 단순한 클래스를 서블릿 클래스로 바꾸려면 서블릿활동에 필요한 API를 장착해야한다 lordofkangs.tistory.com 생명주기를 담은 Servlet 인터페이스 그리고 초기화를 담은 ServletConfig 인터페이스를 구현해야 Servlet 클래스가 될 수 있다. 그래서 구현을 ..

Web언어/JSP 2021.06.21

[ JSP ] Servlet 과 ServletConfig

서블릿(Servlet)은 콘솔프로그램에서 동작하는 클래스가 아니다. 서블릿은 웹환경에서 동작하는 클래스이다. 단순한 클래스를 서블릿 클래스로 바꾸려면 서블릿활동에 필요한 API를 장착해야한다. 서블릿 클래스의 가장 근본이 되는 API에는 Servlet 인터페이스와 ServletConfig 인터페이스가 있다. Servlet 인터페이스는 서블릿의 생성과 실행 그리고 삭제와 관련된 인터페이스이다. ServletConfig 인터페이스는 서블릿의 초기화와 관련된 인터페이스이다. 톰캣의 lib 폴더에 가면 서블릿을 위한 API가 존재한다. 이클립스를 사용하면 톰캣과 연동하여 접근할 수 있고 cmd 창으로 컴파일 하는 경우, 클래스패스 지정을 통해 접근하여 사용할 수 있다. Servlet 인터페이스 Servlet은 ..

Web언어/JSP 2021.06.20

[ JSP ] 서블릿(Servlet) 등록 (web.xml 과 어노테이션)

[ JSP ] Servlet 이란? Servlet이란 Server Application Let의 줄임말이다. Let은 조각을 의미하니 서버의 조각을 Servlet이라고 한다. Servlet은 왜 필요할까? 우선 서버의 필요성부터 알아보자. 서버(Server)란? 서버는 'Request(요청.. lordofkangs.tistory.com Servlet의 개념은 이전 포스팅에서 다루어 보았다. 그럼 이 Servlet을 어떻게 사용해야 하는지 알아보자. 어떤 프로그램이든 특정 파일에 접근하려면 '경로'가 필요하다. 웹브라우저가 웹서버에게 요청(Request)을 할 때, Servlet이 필요하다면 해당 Servlet이 위치한 경로를 이용하면 된다. 그리고 이 경로는 '가짜 경로'(가상경로)이어야 한다. 왜냐하면..

Web언어/JSP 2021.06.20

[ JSP ] JSP의 역할

JSP는 Java Server Pages의 줄임말이다. 한마디로 Java Server용 페이지라는 의미다. 대표적인 Java 서버에는 '톰캣'이 있다. 톰캣은 JDK를 사용하여 '서블릿'을 실행한다. 서블릿은 서버의 조각이라는 의미로 JDK가 프로그램 실행시, 필요한 클래스를 동적로딩하는 원리를 응용하여 서버에 적용시킨 개념이다. 구체적인 내용은 이전 포스팅에 정리해 놓았다. [ JSP ] Servlet 이란? Servlet이란 Server Application Let의 줄임말이다. Let은 조각을 의미하니 서버의 조각을 Servlet이라고 한다. Servlet은 왜 필요할까? 우선 서버의 필요성부터 알아보자. 서버(Server)란? 서버는 'Request(요청.. lordofkangs.tistory.c..

Web언어/JSP 2021.06.20