본문 바로가기

전체 글

(392)
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..
JSP의 기본객체들 중요문서: https://gangzzang.tistory.com/entry/JSP-%EA%B8%B0%EB%B3%B8-%EA%B0%9D%EC%B2%B4-out-pageContext-application-page출처: https://www.youtube.com/watch?v=e9V6J4Lu3p8&t=412s 내 정리: pageContext, request, session, application 이러한 객체는 기존에 서블릿에서 사용되었던 객체이다. 이러한 객체가 따로 선언없이도 JSP파일에서 자연스럽게 쓰일수 있다는 것이다.예를들어 pageContext객체는 하나의 JSP 페이지와 1대1일 매핑되는 객체이다.  아래는 application객체의 사용예 기본적으로 브라우저에서 서버로 요청을 보내면 WAS에서 r..
jsp, servlet간의 forward에 대하여(중요) 서블릿의 forward에 크게 4가지가 있는 것이다(redirect, dispatch, Refresh, location)Scriptlet이란? JSP에서 HTML코드안에 들어가는 형식의 자바코드 Scriptlet의 주요 특징Java 코드 삽입: Scriptlet은 HTML 문서 내에 Java 코드를 삽입할 수 있게 해줍니다.동적 페이지 생성: 페이지가 요청될 때마다 서버에서 Scriptlet 코드가 실행되고, 그 결과를 클라이언트에게 전송합니다.서버 측 처리: Scriptlet 내의 코드는 서버에서 실행되며, 최종적으로 클라이언트에게 전달되는 것은 HTML만 있습니다. 왜 JSP코드에서는 (Scriptlet안의)Java코드를 최대한 줄이는 것이 좋을까?   https://starkying.tistory..
톰켓 기본적 폴더 구조, url호출에 의한 페이지 호출 방식 메모 톰켓 기본적 폴더 구조기본적으로 webapps폴더 밑에는 dynamic폴더와 static폴더가 있다 dynammic폴더안에 WEB-INF폴더가 있고 디렉토리에서 보면 이 WEB-INF안에 classes, lib, source폴더가 있다. 하지만 이클립스의 Project Explorer에서 보면 classes파일은 보이지 않는다. source폴더안에는 내가 만들고자 하는 servlet이 들어간다. 즉 servlet을 만들고자 할때는 이 sources폴더 안에 클래스를 만들면 된다. url호출에 의한 페이지 호출 방식 메모http://flexyduck.irt.co.kr:8080/trunk/servlet/PostWithHTML (일반적, 직접적으로 톰켓으로 요청함)https://flexyduck.irt.co...
아파치의 Document root(홈)와 톰켓의 Context root(홈)에 대하여 아파치의 경우 아래와 같이 conf폴더의 httpd.conf파일에 DocumentRoot를 설정할 수 있는 설정이 있다.그리고 이러한 httpd.conf문서에서 Document root는 Alias를 이용하여 아래와 같이 변경할 수 있다.  한편 톰켓의 경우 회사의 프로젝트 같은 경우 이클립스의 Tomcat 플러그인을 사용하고 있다. 톰켓의 context들이 모여있는 곳이 기본적으로 아래의 webapps폴더이다.dynamic, static, tools각각이 하나의 context임. server.xml을 보면 아래와 같은 코드가 보이는데 이것이 바로 특정위치(trunk)를 context홈으로 지정해 주는 설정이다. 즉 trunk는 context홈 이자 프로젝트 이름인 것이다.  또한 이클립스의 설정상 다음..