Hello World

I can do it!
EL에서 연산자를 사용 할 수 있다. (연산기호 및 언어 중에 사용 가능) JSP 실제 코드도 봐보자(주의할점 주석에 포함) 아래 사용할 수 있는 연산자 사용식 JSP EL (Viwe) 코드 ex)
EL이 사용하는 데이터 저장소 (4개의 저장소 및 저장 객체에서 값을 추출하는 순서) 각 객체에 동일한 변수가 있을시 EL로출력 하면 아래 순서대로 출력된다. page > request > session > application 만약 특정한 객체 값을 가져올려면 아래 그림과 같이 Scope를 쓰면 된다. 그 외 EL내장 객체 저장소 실 사용 코드 서블릿(Contoller_홀수짝수 확인) JSP(View EL사용) (참고로 JSP파일에서 스크립트를 이용해 pageContext객체 속성에 값을 담아도 EL로 값을 가져 올 수 있다.) (또한 방금 말한것처럼 req,page 객체에 중복된 값이 있으면 우선순위는 page다.) 출력 (기타 다른 객체를 이용하여 파라미터값도 가져올 수 있다.)
MVC2 모델을 이용한 View(출력되는 JSP파일)에 출력시 JAVA코드를 사용하는것이 아닌 EL이란 언어로 쉽게 표기 할 수 있다.식이 엄청 간편해짐 (JSP에 EL이 뒤늦게 포함되었다고 한다.) 아래 그림과 실제 코드를 보자. 실제 코드 서블릿 클래스(Contoller) JSP파일(View EL사용)
MVC model1 의 단점 : 물리적으로 분리되지 않은 방식 MVC model2 : 컨트롤러와 뷰가 물리적으로 분리된 방식 (코드가 물리적으로 완전히 분리됨) MVC2방식의 예제 코드) 실행흐름과 실제 코드 1. 서블릿 클래스(Controller 제어) 2.JSP파일(View 출력)
JSP로 만든 복잡한 페이지를 스파게티(실타레) 코드라고 한다. 아레 ex) 아래 JSP에서 여러 코드 블록으로 나누어도 결국 서블릿으로 변환시 jspService 메서드 안에서 실행되기때문에 출력상 문제는 없다. 하지만 도중에 HTML코드랑 섞여 있어 코드 보기가 어렵다. (단점)
계속 강조되는 JSP의 장점 서블릿의 HTML코드를 일일이 PrintWriter객체를 이용하여 출력 할 필요가 없다. JSP에는 HTML코드 안에 JAVA코드를 삽입하여 서블릿으로 직접 작성 하는것보다 훨씬 편하다. 또한 내장 객체가(request,out) 선언없이 출력 및 값을 가져올때도 훨씬 용이하다. 아래 jsp ex)
JSP의 내장 객체 JSP가 만들어낸 서블릿 클래스는 내가 모르는 변수들이 있다. 내장 객체로 사용중인 변수는 JSP에서 사용 불가 ex) page 등 아래 그림 참조 각 객체에 대한 메소드 정리
JSP의 편의성 기존 서블릿을 이용한 HTML파일을 동적으로 만들려면 서블릿(java)파일 안에 PrintWrinter객체를 이용하여 HTML코드를 하나하나씩 출력하여야 했다. 그러나 JSP를 만들어 HTML파일 안에 코드블록을(java코드) 삽입함으로 쉽게 동적 HTML파일을 만들 수 있다. (정확히는 우리가 JSP파일을 만들면 코드를 입력하면 JSP는 알아서 서블릿 파일의 HTML코드를 하나하나씩 PrintWriter객체를 이용해 출력해주는 거다.) 아래 Jsp파일 ex) JSP로 만들어진 실제 서블릿 파일은 이클립스 워크스페이스 (임시 배포 디렉터리) 안에 저장되어 있다. 아래ex) JSP가 만들어낸 서블릿 파일을 열어보면 알아서 HTML코드를 out.write로 출력 한것을 볼 수 있다. 조금더 ..
앞서 작성한 (32~37강) 계산기 예제에 각 서블릿 클래스파일을 하나의 서블릿으로 합쳐보자. 실직적 계산을 실행하는 calc3 서블릿 동적 HTML 페이지를 보여주는 calcpage 서블릿 하나의 서블릿에 각 GET,POST 요청방식에 맞는 코드를 복사 붙혀넣기 한다. GET방식에 calcpage POST방식에 calc_var3 하나의 서블릿 파일에서 작동하는것을 볼 수 있다. 위 과정의 장점은 관리가 수월하다는점이 있다. 쿠키.path 및 Redirect 메소드 이용시 자신의 페이지를 불러와 관리가 쉽다는 점이다.
병아리개발자Mr Jo
'web_배우고익히고/6.뉴렉처_JSP강좌' 카테고리의 글 목록 (4 Page)