본문 바로가기

JSP,Servlet

2017년 4월 10일 공부 자료

1. J2EE 플랫폼 

클라이언트 / 서버 환경이나 웹 환경의 서버에서 수행되는 프로그램을 개발할 때 사용

웹 컨테이너(서블릿 or JSP 파일 처리)는 JSP, Servlet, EJB 로 구성되어 있다. (EJB 는 안씀)


2. WAS(Web Appliction Server)

자바로 된 비지니스를 실행해서 컴파일해서 바이트 코드로 기계어로 만들어서 클라이언트에게 전달.

실제적으로는 Servlet을 실행한 것인데 우리 눈에는 JSP 를 실행 되는 것처럼 보이지만 JSP 코드를 보고 Servlet 코드로 변환해 준다.

3. Servlet 과 JSP
-servlet : 자바코드로 구현 하고 그 자바 코드안에 HTML 코드가 들어간다. 비지니스 코드를 표현하는데 JSP 보다 탁월하다.
-JSP : <% %> 사이에 있는 것을 스크립틀릿이라고 하고 이 안에는 자바 코드가 들어간다.
로직을 처리하는 자바 코드들은 sevlet에 코딩하고 JSP페이지에는 최소한의 자바 코드만 코딩하자. 반대로 html태그는 servlet에서 분리시켜 JSP에서만 코딩


4. 지시자 

웹 컨테이너가 JSP 페이지를 servlet 클래스로 변환할 때 사용하는 문법

<%@ 다음에는 지시자 이름이 와야한다. 이름 다음에는 여러 가지 속성이 올 수 있다. %>

- page 지시자 : JSP 페이지 전체에 적용되는 정보를 기술하기 위해 사용

- include 지시자 : 다른 JSP 페이지나 HTML 문서를 현재 JSP 페이지의 일부로 포함 시키기 위해 사용


- taglib 지시자 : JSP 문법 중 action 을 사용 할 때 필요, 액션이 속한 라이브러리를 설치해야만 사용

스크립틀릿, 표현식 : <% %> 사이에 있는 것을 스크립틀릿이라고 하고 이 안에는 자바 코드가 들어간다.

<% =total %> 출력을 하기 위한 표현식


5. 내장 객체 

JSP의 내장 변수는 servlet 클래스에 있는 doGet, doPost 메소드의 파라미터처럼 request, response 등과 동일한 역할을 한다. out 내장 변수는 servlet 클래스 안에서 getWriter 를 호출해서 얻은 PrintWriter 객체 같은 역할을 한다.(선언하지 않고도 <%%> 안에서 선언하지 않고도 사용 할 수 있다.) , 이처럼 내장 변수를 사용할 수 있는 이유는 웹 컨테이너가 JSP 를 servlet 클래스로 변환할 때 자동으로 선언을 해주기 때문이다.


6. Dispather, redirect차이

 - dispather 는 새로운 요청(새로운 페이지로 이동)이 아니라 기존 요소의 연장선이다. (그러므로 이전 주소를 계속 가지고 있다.)

 - sendRedirect 는 특정 상황에서 완전히 다른 새로운 페이지로 이동