Hello World

I can do it!
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의 단점인 코드블록이 복잡해지는 현상(스파개티코드) 보완하고자 MVC model1 방식이 나왔다. MVC : JSP 파일에 입력(Model) 출력(View) 모델(Model) 로 분리 (코드블록을 최소화) 아래 간단한 설명과 실제코드 ex)
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 메소드 이용시 자신의 페이지를 불러와 관리가 쉽다는 점이다.
GET,POST 요청을 doGet,doPost 함수로 나누어 각 요청방식에 맞는내용을 오버라이드 할 수 있다. 만약 GET,POST방식을 모두 사용하고 공통으로 작성해야 하는 부분이 있을때는 service메소드를 불러와서 진행한다.
병아리개발자Mr Jo
입문 개발자의 IT 이야기