본문 바로가기

JSP, Servlet

(8)
Jsp, Servlet을 아우르는 Web Programming변화 과정, WAS의 변화? 출처: https://www.youtube.com/watch?v=PH8-V6ah0XQ   Servlet의 등장  Jsp의 등장MVC의 등장입구=Controller, 비즈니스=Model위에서 표준이라는 것이 MVC와 같이 어떠한 패턴을 말하는 것임.MVC 프래임워크(스프링)의 등장   BACKEND, FRONTEND모두 진화하고 변화해 왔지만 WAS같은 경우는 업데이트만 되고 항상 필요로 하는 WAR(와르)로 묶어서 배포할 때는 위의 사진처럼 구조는 같아야 하는 것이다. 즉, 스프링프래임워크를 사용하던 MVC패턴을 사용하던 사용하지 않던 와르폴더 안의 구조는 위의 스샷과 같이 같아야 하는 것이다. 참고 WAR파일로 내보낸후 그것의 확장자를 war에서 zip(집파일)으로 변경하면 zip파일이 생기게 된다. ..
자바의 Servlet에 대해서, JSP, Servlet과 WAS에 대하여(그림참고) 참고: https://lordofkangs.tistory.com/37    https://lordofkangs.tistory.com/36?category=868521https://d-memory.tistory.com/37윗글 요약:문맥에 따라 WAS(웹 어플리케이션서버)가 곧 서블릿 컨테이너 이기도 하다. 즉, Servlet Container = Web Container = WAS라고 한다 init() = Servlet객체가 생성되면 자동으로 호출되는 메서드 =>> service()(요청에 대한 처리를 하는 메서드) ==>> (클라이언트측으로부터의 요청이 get방식일때 Servlet Container가 호출하는 함수)doget => execute  init, service, doPost, doGet 메서..
JSP에서의 커스텀 사용 대원칙과 커스텀 태그 클래스 분석: hidden에 대하여 jsp에서 커스텀 태그를 사용할 때 속성의 값중에서는 그 값이 반드시 servlet에서의 setAttribute함수의 첫번째 인자값의 이름과 같아야 하는것이 있다. 지금까지 파악한 것 중에서는 id와 key가 그렇다. 즉, jsp의 커스텀 태그를 사용할 때 속성이 id, key인 것의 값은 servlet에서의 setAttribute함수의 첫번째 인자값의 이름과 같아야 한다.  예시)ctx.req.setAttribute("record", request2);================================================================================(irt의 커스텀 태그에서 말하는 hidden은 HiddenInputTag를 의미한다)주의!!! HiddenIn..
커스텀 태그 클래스 분석: ContainsTag에 대하여 popContentGroup은 어떠한 기능을 하는 함수인가? 여기서의 pop은 스택에서의 데이터를 넣고 꺼낼때 하는 push, pop에서의 pop이다. HtmlPage클래스를 통해 화면을 관리하게 되는데 폼그룹, 필드셋 그룹은 이름처럼 그룹을 지어서 관리한다. Form, FiledSet에 대한 설정을 관리하기 위해 스택에 Form, FieldSet관련 정보를 넣어서 보관하는데 popContentGroup을 한다는 것은 Form, FieldSet관련 정보를 더 이상 추적하지 않는것을 의미한다. 왜 추적하지 않아? 더 이상 필요하지 않으므로. 이렇게 해야 페이지의 관리와 처리가 정리된다.  content group은 HTML 페이지 내에서 특정 영역(예: 폼, 필드셋 등)을 논리적으로 묶어서 처리하는 단위입..
irt 커스텀 태그 클래스 분석: ContainsElseTag에 대하여 ContainsTag가 if의 기능을 하였다면 ContainsElseTag는 else의 기능을 한다. 다른 것은 건너뛰고 가장 중요한 부분만 우선 언급하ㅕㄴ 다음과 같다.    모든 코드가 같고 다른 부분은 EVAL_BODY_INCLUDE, SKIP_BODY가 서로 위치가 바뀌었다는 것이다. 즉, 아래와 같이 JSP파일에서 같은 id와 key값을 주고 사용하면 된다. 해당 key값이 없을 때 위의 코드(ContainsElseTag)에서 EVAL_BODY_INCLUDE가 실행되어 JSP문서에서 containsElseTag안의 본문이 실행된다!
irt 커스텀 태그 클래스 분석: ContainsTag에 대하여 아래는 ContainsTag클래스의 첫부분이다. 여기서 말하는 copyId, id, key중에서 id는 필수값이다(커스텀 태그 클래스 문서 보면 알수 있고 클래스 파일의 윗부분을 보면 M이라고 표시되어 있음). 따라서 id는 아래와 같이 jsp문서에서 커스텀 태그를 만들시에 기본적으로 제공되어야 한다.위의 코드에서 id, key는 기본적으로 jsp문서에서 커스텀 태그에서 제공되는(위그림)id와 key값을 의미한다. 또한여기서 잠깐 왜 ContainsTag 커스텀 태그에서는 서블릿에서 데이터를 보낼 때 아래 그림과 같은 setAttribute형식(45라인)이 아닌 맵을 통해 데이터를 put(47,48라인)해야만 하는 것인가? ==>> 그럴 필요없다!! 맵이 아닌 setAttribute형식을 사용하더라도 보..
Servlet에서 JSP로의 데이터 전송에 관하여. 기본적으로 커스텀 태그 클래스에 getRequest().getAttribute 와 같은 코드가 없다면 서블릿에서 어떤 데이터를 가져오는 것이 아닌 기본적으로 jsp파일의 커스텀 태그에 다음과 같이 속성에 그 값을 아주 고정적으로 주어버린다. 하지만 커스터 태그 클래스에 위와 같은 getRequest().getAttribute 코드가 없더라도 서블릿에서 JSP로 데이터를 전송하는 방법이 있다. 그것이 바로 아래와 같은 방식이다.
Custom tag에 대하여 TLD(Tag Library Descriptor)파일이 JSP파일과 커스텀 태그 클래스의 중개자다. JSP파일에는 라는 태그가 있어 uri와 prefix를 속성값으로 갖는다. 이 uri와 prefix는 TLD 파일의 태그 안에 각각 ,  과 각각 대응한다. 그리고 태그의 하위 태그로 가 있고 그 안에 로 커스텀 태그 클래스가 언급된다!  즉, TLD파일이 JSP파일과 커스텀 태그 클래스를 연결시키는 것이다.출처:https://dololak.tistory.com/751출처: https://docs.oracle.com/javaee/5/api/javax/servlet/jsp/tagext/Tag.html출처: https://velog.io/@iui9686/%EC%BB%A4%EC%8A%A4%ED%85%80-%ED..