톰캣 설치
톰캣8버전 ZIP으로 다운, 폴더 위치 확인하고 bin폴더 안에 startup.bat실행
크롬에서 localhost:8080으로 잘 실행됫는지 확인
URL의 구성요소
https://n.news.naver.com/mnews/article/008/0004863944?sid=101
htttp:// -> 프로토콜
n.news.naver.com -> 서버이름
mnews/article/008/0004863944 -> 경로
?sid=101 -> 쿼리문자열
웹브라우저가(IE,CHROME) 웹서버에 웹페이지를 달라고하는것
-> 요청(REQUEST)
요청한 웹페이지를 웹브라우저에 제공하는것을
-> 응답(RESPONSE)
교재 P.336부터 시작
교재 내용대로 이클립스에서 톰캣 서버환경 설정하기 encoding 설정해주기 Dynamic Web Project생성하기
다시 P.50으로
JSP를 배울때 MVC모델도 무조건같이 배우라고해서 알아보았다.
MVC는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.
말 그대로 모델, 뷰, 컨트롤러의 세 부분으로 구성되어 있으며, 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있습니다. 로직과 화면을 구분함에 따라 더나은 업무의 분리와 향상된 관리를 제공해준다.
->모델 2 구조 기반의 MVC패턴 구현은 JSP 개발자라면 무조건 알고 있어야 할 개발 방식
Model : 비즈니스 영역의 로직 처리 -> 로직 처리 클래스, 자바빈
View : 비즈니스 영역에 대한 프레젠테이션 뷰 (사용자가 보게 될 결과 화면) -> JSP
Controller : 사용자의 입력처리와 흐름제어 담당. ->Servlet
MVC에는 두종류가 있다고한다
출처

웹 브라우저 요청을 JSP가 직접처리함.
비즈니스 로직의 처리를 위한 코드와 웹 브라우에 결과를 출력하는 코드가 섞인다는 것을 의미. (view+controller섞임)

웹 브라우저 요청을 하나의 서블릿이 요청을 받아 알맞게 처리한다. 처리 후 결과를 보여줄 JSP페이지로 포워딩함. 포워딩 통해 요청 흐름 받은 JSP페이지는 결과화면 클라이언트에게 전송. (이 과정에서 서블릿이 로직을 처리함)
하나의 서블릿이 웹 브라우저의 모든 요청 받기 때문에, 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요.
MVC패턴 이용해서 웹 어플리케이션 구현할 때 이 구조를 사용함.
HTML과 JAVA 소스를 분리(코딩을 좀 더 깔끔하게)
SERVLET동작 과정
출처
웹 브라우저가 전송한 HTTP요청 받음 - doGet()메서드 / doPost()매서드
웹 브라우저가 어떤 요청 했는지 분석
<parameter로 값받아 요청 분석>
모델 사용해 요청 기능 수행
모델로부터 전달받은 결과물 알맞게 가공 후, request/session의 setAttribute()메서드 사용해 결과값 속성에 저장.
웹 브라우저에 결과 전송할 JSP(view)선택 후, 해당 JSP로 포워딩/리다이렉트
MODEL 2의 장점
- 서버 개발과 클라이언트 작업을 분리하여 작업하여 효율성 증대
- 수행하는 작업이 분리되어 있어 작업속도 증가 및 소스의 간결화
- 분리되어 있는 소스로 인해 유지보수가 편리
MODEL 1,2의 차이점
모델 2는 Controller와 모델, View가 분리되어 소스가 분류되어 있어 가독성이 뛰어나며 유지보수가 편리한 장점이 있습니다.
그러나 모델 1은 하나의 JSP에 위의 명시한 부분을 모두 작성하는데요.
이럴 경우 소스의 길이도 많이 길어져서 가독성이 떨어지게 됩니다.
또한, Server개발과 Client 개발이 혼합되어 있어 2명이 개발자가 하나의 페이지를
동시에 수정하여 충돌이 일어날 가능성이 있어 신규 개발이나 유지보수에 있어 단점으로 작용할 수 있습니다.
아직 무슨말인지 하나도 모르겠지만 공부해야지...
선언(Declaration)
사용 방법은 <%! 내용 %> 같은 형태로 구성됨
Java에서 사용되는 전역 변수나 메소드 등을 정의함.
전역으로 생성되므로 접근이 제한되는 점이 없음.
<%! %> 안에 Java 소스코드 구성이 가능.
스크립트릿(Scriptlet)
사용방법은 <% 내용 %> 같은 형태로 구성됨
Java 소스코드를 별다른 과정 없이 Jsp 내에 사용할 수 있어 많이 사용됨.
변수, 객체 생성, 인스턴스화, 조건문, 반복문 등 Java에서 사용되는 대부분 요소 가능.
표현(Expression)
사용방법은 <%= 내용 %> 같은 형태로 구성됨
변수에 사용되는 저장한 값을 출력할 때 사용됨.
html 태그 내에 값을 표기할 경우