본문 바로가기

BackEnd/JSP

(14)
MVC Model2 - 서블릿 구현하는 방법 1. 서블릿 파일 생성 웹 프로젝트 -> Java Resources -> 패키지 생성 -> 서블릿 파일 생성 Class name에 서블릿의 이름을 입력합니다. Superclass에 javax.servlet.http.HttpServlet 클래스가 슈퍼 클래스인데 이 클래스를 구현하기에 서블릿이라 칭합니다. 저는 doGet과 doPost를 체크하여 생성했습니다. 위 이미지와 같이 다른 쓸 데 없는 코드는 삭제해주어도 상관없습니다. 여기서 중요! @WebServlet("/HelloWorld") 에서 HelloWorld은 URL 뒤에 붙는 서블릿 이름입니다. Ex) http://kalsweb.tistory.com/HelloWorld 2. 서블릿 코드 작성 package control; import java.io..
MVC Model2 - 짧은 글로 이해하기 구글링도 해보고 인터넷 강의도 봤지만 Model2의 개념을 깊게 생각하면 오히려 더 헷갈릴 수도 있을 것 같았습니다. 그래서 이번 포스팅은 짧게 씁니다. MVC Model1과 Model2의 차이점 Model1은 M (VO - 자바빈에 담긴 정보), V (JSP 페이지에서 자바 코드와 뷰를 동시에 작성), C (JSP에서 처리) Model2는 M (VO - 자바빈에 담긴 정보), V (JSP 페이지에서 JSTL, EL 활용하여 오직 뷰만), C (서블릿을 거쳐 모든 작업 처리) 차이점이 한 눈에 보이시나요? Model2로 구현하려면 Model1을 먼저 이해하고 코딩해보는 것이 좋습니다. Model1은 JSP 페이지에서 스크립틀릿()을 이용하여 자바 코드와 뷰(출력)을 동시에 처리하는 반면, Model2는 ..
JSP 내장 객체의 영역 유효하는 범위의 순서 page < request < session < application 1. page - 한 번의 클라이언트의 요청에 대해 하나의 JSP 페이지가 호출 - 하나의 페이지 내에서만 공유할 값을 저장 - 기본 객체인 pageContext를 사용 2. request - 클라이언트가 한 번의 요청을 보낼 때 마다 한 개의 페이지에만 저장 - 때에 따라 같은 request 영역이면 두 개의 페이지가 같은 요청을 공유할 수 있음 - include 액션 태그, forward 액션 태그를 사용하면 request 기본 객체를 공유하게 되어서 같은 reqeust 영역이 됨 - 주로 페이지 모듈화에 사용 3. session - 클라이언트당 1개의 session 객체만 생성 - 같은 클라이언트에서 요청되는..
JSTL (JSP Standard Tag Library) JSTL이란? JSP의 경우 HTML 태그와 같이 사용되어 전체적인 코드의 가독성이 떨어집니다. 예를 들어 HTML 태그 도중 를 사용하여 html 코드의 흐름이 깨지며 코드 보기가 난해해집니다. 그래서 이러한 단점을 보완하고자 만들어진 태그 라이브러리가 JSTL입니다. JSTL의 경우 우리가 사용하는 Tomcat 컨테이너에 포함되어 있지 않으므로, 별도의 설치를 하고 사용해야 합니다. 라이브러리 설치 https://tomcat.apache.org/download-taglibs.cgi 1. 위 링크에 접속하여 아래 3가지의 라이브러리 파일을 다운로드합니다. 2. WebContent -> WEB-INF -> lib 폴더에 삽입합니다. JSTL에서는 총 다섯 가지의 라이브러리를 제공합니다. http://ja..
EL (Expression Language) 예제 EL이란? 표현식 또는 액션 태그를 대신해서 값을 간략하게 표현하는 언어입니다. 비트 연산자를 제외한 일반적인 모든 연산자가 사용 가능하며 조건은 삼항연산자를 사용합니다. 원래 사용하던 JSP 표현식, 액션 태그, 파라미터 등을 EL 표기법을 이용하여 써봤습니다. 출력 결과는 100% 동일합니다. // 표현식 2) %> // EL ${1+1} ${1!=2} ${(11) && (1>2)} // 액션태그 아이디 : 비밀번호 : 이름 : 이메일 : // EL 아이디 : ${member.id} 비밀번호 : ${member.pw} 이름 : ${member.name} 이메일 : ${member.email} 아이디 : ${param.id} 비밀번호 : ${param.pw} EL 표기법을 꼭 사용할 필요는 없지만 사용..
JSP의 태그 종류 JSP 태그의 정의 Servlet은 JAVA 언어를 이용하여 문서를 작성하고, 출력객체(PrintWriter)를 이용하여 HTML 코드를 삽입하지만, JSP는 Servlet과 반대로 HTML 코드에 JAVA 언어를 삽입하여 동적 문서를 작성 할 수 있습니다. HTML 코드안에 JAVA 코드를 삽입하기 위해서는 JSP 태그를 이용해야 합니다. (JSP 페이지에 필요한 속성 처리) (현재 페이지에서 다른 페이지를 연결하고자 할 때 사용) (주석, 서버에서 응답을 모두 받고 실행되기 때문에 소스보기 시 보이지 않음) (전역변수 선언) (표현식) (스크립트릿, JAVA 코드 사용 가능)
커넥션 풀(DBCP) 이용하여 DB 연동하기 (MySQL) DBCP (Database Connection Pool, 커넥션 풀) 란? 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 있다가 필요할 때 저장된 공간(pool)에서 가져다 쓰고 반환하는 기법을 말합니다. 커넥션 풀을 이용하면 커넥션을 미리 만들어두고 사용하기 때문에 매번 사용자가 요청할 경우 드라이버를 로드하고, 커넥션 객체를 생성해 연결하고 종료하는 비효율적인 작업을 하지 않아도 됩니다. 즉, 데이터베이스의 부하를 줄일 수 있고 자원을 효율적으로 관리할 수 있는 장점이 있습니다. 1. WebContent -> META-INF -> context.xml 파일 생성하기 2. context.xml 파일에 아래와 같은 내용을 삽입합니다. 3. DAO에서 연결 시 구문 private Connectio..
서블릿의 생명주기 (LifeCycle) 서블릿은 최초 요청 시(서버가 켜질 때) 객체가 생성되고, 이때 생성된 객체가 계속 재사용되다가 서버가 중지될 때 서블릿 객체는 삭제됩니다. 즉 Application의 특성을 가지고 있는 객체가 서블릿입니다. 서블릿의 생명주기 1. 최초 요청인 경우 서블릿 객체를 메모리에 생성 2. init() 서블릿 객체가 생성된 다음에 호출되는 메서드로써 재정의가 가능합니다. 3. service() 서블릿 요청이 있을 때 마다 재사용되어 호출되며 재정의가 가능합니다. 하지만 재정의하지 않으면 요청 정보 헤더의 요청 방식에 따라 서로 다른 메서드를 호출합니다. 요청 방식에 의해 호출되는 메서드는 아래와 같습니다. 요청 방식 메서드 GET doGet(request, response) POST doPost(request,..