servlet 72

JSP/Servlet – 필터(Filter)의 이해

JSP/Servlet – 필터(Filter)의 이해 필터란 클라이언트와 서버사이에서 request와 response객체를 필터가 먼저 받아 사전작업/사후작업 등 공통적으로 필요한 부분을 처리합니다. 필터에 대한 기본적인 내용은 다음 링크에 설명이 잘되어있습니다. 필터를 이용한 웹 프로그래밍 Part1, 필터란 무엇인가! 필터가 어떤 순서로 동작하기 위해 위와 같이 예제를 구성합니다. 첫 번째로는 필터 클래스를 구현해봅시다. 필터클래스는 Filter 인터페이스를 구현해야 합니다. /WEB-INF/classes/myfilter/SimpleFilter.java package myfilter; import java.io.IOException; import javax.servlet.Filter; import ja..

JSP/Servlet – 커스텀 액션안에 또 다른 커스텀 액션 포함하기

JSP/Servlet – 커스텀 액션안에 또 다른 커스텀 액션 포함하기 테스트 위와 같이 부모 커스텀 액션안에 자식 커스텀 액션이 들어가게 만드려면 두 개의 태그 클래스를 작성해야합니다. 부모 태그 클래스에서는 단순히 JspFragment 객체를 구한다음 invoke 메소드를 호출해주면 됩니다. 하지만 자식 커스텀 액션에서는 먼저 올바른 부모인지 확인하기 위해 다음 메소드를 사용해서 부모 태그 클래스를 가져옵니다. JspTag parent = getParent() 위와 같이 예제 파일을 구성합니다. ListTag.java package tool; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.j..

JSP/Servlet – 태그 클래스를 이용해서 변수 지원 커스텀 액션 만들기

JSP/Servlet- 태그 클래스를 이용해서 변수 지원 커스텀 액션 만들기 태그 클래스를 이용해서 변수를 리턴하고 싶다면 JspContext 객체의 setAttribute 메소드를 이용하면됩니다. JspContext context = getJspContext(); context.setAttribute("변수이름", "값"); 위와 같이 예제를 구성해줍니다. MinimumTag.java package tool; import java.io.IOException; import javax.servlet.jsp.JspContext; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; public class..

JSP/Servlet – 태그 클래스를 이용해서 커스텀 액션의 본체 내용을 바꿔보자

JSP/Servlet – 태그 클래스를 이용해서 커스텀 액션의 본체 내용을 바꿔보자 이번에는 getJspBody()메소드를 이용해서 커스텀 액션의 본체를 가져온 다음 내용을 바꿔서 출력을 해봅시다. JspFragment body = getJspBody();//커스텀 액션의 본체를 가져옵니다. 다음 StringWriter 클래스를 선언합니다. StringReader 클래스와 StringWriter 클래스는 문자열을 스트림에 기록하거나 읽어낼 때 사용하는 클래스입니다. 즉 목표지점이 string형의 데이터가 되는 것입니다. (스트림에 대한 내용 소설같은 자바9 자바스트림 참조) StringWriter writer = new StringWriter();//객체 생성 body.invoke(write);//본체의..

JSP/Servlet - 태그 클래스를 이용한 본체가 있는 커스텀 액션 만들기

JSP/Servlet – 태그 클래스를 이용한 본체가 있는 커스텀 액션 만들기 태그 클래스에서 본체가 있는 커스텀 액션을 만드려면 2가지 단계를 거쳐야합니다. 첫 번째는 getJspBody 메소드를 호출해서 JspFragment 객체를 가져옵니다. 두 번째는 JspFragment 객체의 invoke 메소드를 호출해서 출력에 사용될 출력 스트림을 파라미터로 넘겨줍니다. JspFragment body = getJspBody();//커스텀 액션의 본체를 가져오는 메소드 body.invoke(out);//이 위치에 본체의 내용을 출력 위와 같이 폴더 및 파일을 구성합니다. /WEB-INF/classes/tool/BoxTag.java package tool; import java.io.IOException; im..

JSP/Servlet – 동적 애트리뷰트를 지원하는 태그 클래스 만들기

JSP/Servlet – 동적 애트리뷰트를 지원하는 태그 클래스 만들기 동적 애트리뷰트를 지원하는 태그 클래스를 만들기 위해서는 각각의 애트리뷰트에 대한 set 메소드를 선언할 필요는 없고 setDynamicAttribute메소드 하나만 선언하면 됩니다. @Override public void setDynamicAttribute(String uri, String localName, Object value) throws JspException { } uri는 네임스페이스를 말하며 보통 무시하셔도 좋습니다. localName은 애트리뷰트 이름, value는 애트리뷰트의 값을 의미합니다. 동적 애트리뷰트를 지원하는 태그 클래스의 경우 TLD 파일에 엘리먼트가 필요가 없으며 라는 엘리먼트를 쓰고 그 엘리먼트의 ..

JSP/Servlet – 태그클래스를 이용해서 애트리뷰트가 있는 커스텀 액션 만들기

JSP/Servlet – 태그클래스를 이용해서 애트리뷰트가 있는 커스텀 액션 만들기 태그클래스를 이용해서 애트리뷰트 값을 받으려면 메소드를 따로 선언해야 합니다. 반드시 public으로 선언 맨 앞에 set을 붙이고 애트리뷰트 이름의 첫문자를 대문자로 파라미터 변수를 선언 public void setSize(Integer size){ } 먼저 classes 폴더를 만들고 그 안에 tool 폴더를 만듭니다. 그 다음 태그클래스를 구현하기 위한 NewLineTag.java 파일을 만듭니다. 그리고 TLD파일을 만들어서 커스텀 액션을 등록합니다. web.xml파일에는 TLD파일의 URI와 경로를 명시해줍니다. 마지막으로 TagTest.jsp파일을 만들어서 커스텀 액션을 테스트합니다. NewLineTag.jav..

JSP/Servlet – SimpleTagSupport 클래스를 이용해서 태그 클래스 작성하기

JSP/Servlet – SimpleTagSupport 클래스를 이용해서 태그 클래스 작성하기 SimpleTagSupport 클래스는 태그 클래스라고 해서 커스텀 액션을 만드는데 사용됩니다. 서블릿 대신 JSP로 구현하듯이 태그 파일 대신에 태그 클래스로 작성할 수 있습니다. SimpleTagSupport 클래스를 이용해서 태그 클래스를 만들때 작성해야하는 메소드는 doTag 메소드 하나뿐 입니다. doTag 클래스를 작성할 때는 public으로 선언해야합니다. 파라미터가 없어야합니다. JspException, IOException을 던져야합니다. 이 3가지를 반드시 지켜야 합니다. 태그 클래스안에서 출력을 위해서는 getJspContext 메소드를 호출해서 JspContext 객체를 가져옵니다. 그 다..

JSP/Servlet – 커스텀 액션에 변수를 사용해보자

JSP/Servlet – 커스텀 액션에 변수를 사용해보자 커스텀 액션에 변수를 선언하려면 variable 지시자를 사용해야 합니다. 이렇게 선언한 변수는 기본적으로 String 타입이 됩니다. 변수의 타입을 설정할 때는 variable-class라는 애트리뷰트를 추가하면 됩니다. 선언한 변수를 태그파일내 뿐만 아니라 커스텀 액션의 본체 밖에서 사용하고자 한다면 scope 애트리뷰트를 추가하면 됩니다. 사용 범위는 NESTED, AT_BEGIN, AT_END 중에 한 값을 지정할 수 있습니다. NESTED는 커스텀 액션 본체 안에서만 사용할 수 있고 AT_BEGIN은 커스텀 액션의 시작 태그 다음부터, AT_END는 커스텀 액션의 끝 태그 다음부터 사용할 수 있습니다. variable 지시자를 이용해서 변..

JSP/Servlet – 커스텀 액션에 body를 추가해보자

JSP/Servlet – 커스텀 액션에 body를 추가해보자 body가 있는 커스텀 액션을 만들기 위해서는 태그 파일의 tag 지시자의 body-content 애트리뷰트에 empty 대신 scriptless나 tagdependent를 써야합니다. scriptless는 커스텀 액션의 본체에 스크립틀릿()를 쓸 수 없음을 의미합니다. tagdependent는 커스텀 액션의 본체에 스크립틀릿, 익스프레션 언어가 그대로 본체의 일부로 출력됩니다. 그리고 태그파일에 액션을 사용하면 본체의 내용이 그대로 출력됩니다. /WEB-INF/tags 폴더에 box.tag 태그파일을 만들어야 합니다. box.tag Notice.jsp DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transiti..

반응형