728x90
반응형

JSP 10

웹 애플리케이션 배포하기

어떤 파일이 어느 곳에 위치하는지는 중요하다. php를 개발 할 때 프로그래머가 임의로 정하는 장소와는 달리 Java(JSP)는 어느정도 rule을 가지고 특정 위치에 특정 파일을 배포해야지만, 전체 웹 애플리케이션이 돌아가기 때문이다. 따라서 중요한 몇개의 파일 타입별 배포 위치에 대해 정리해 보면 아래와 같다. 정적인 컨텐츠(html, 이미지) 및 jsp 루트 디렉토리 및 그 하위 디렉토리 WEB-INF 밑에 배포 할 경우에는 클라이언트가 직접 접근할 수 없다. 대신 웹 애플리케이션에서 접근을 하게 만들 경우를 위해서 배포할 순 있다. 태그파일(.tag) - http://www.4te.co.kr/567 참고 WEB-INF/tags 디렉토리에 배포 DD 파일 이름은 web.xml이어야 하며 WEB-IN..

Java/Servlet & JSP 2009.04.07

부모 자식 태그간의 통신

커스텀 태그 안에 커스텀 태그가 위치해 있을 경우 서로간에 필요한 속성이라던가 내용 등을 읽어올 필요가 있다. 이럴 경우에는 다음과 같은 방법으로 접근할 수 있다. myCustomTag3.tld 0.1 Nested NestedLevel Check NestedLevel com.example.tag.NestedLevelTag JSP NestedLevelTag.java package com.example.tag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.Tag; import javax.servlet.jsp.tagext.TagSupport; public class NestedL..

Java/Servlet & JSP 2009.03.26

클래식 커스텀 태그

JSP2.0 이전 버젼에서의 커스텀 태그는 심플 방식이 아닌 클래식 방식을 사용한다. simple 방식에서는 doTag() 메소드 하나로 모든 작업을 하고, exception 처리도 JspException, IOException를 throw 해서 catch 블럭이 없지만, 클래식 방식에는 doStartTag(), doEndTag() 메소드를 사용하며, JspException만을 throw 해서 catch 블럭에서 IOException을 잡을 필요가 있다. 간단하게 아래 예제를 통해 알아보자 tld 파일 0.9 KathyClassicTags ludicrous use of a Classic tag classicOne com.example.tag.Classic1 empty com.example.tag.Clas..

Java/Servlet & JSP 2009.03.26

사용자 정의 태그 개발 (1)

표준 액션 또는 JSTl과 같은 기능을 하는 태그 파일을 만들어 보자. 위와 같이 코딩 한 후 WEB-INF 아래 tags란 디렉토리를 만들어 Header.tag 파일로 저장한다. 그리고 난 후 우리가 url에 호출할 파일을 만들어 보자. Welcome to our site. 위와 같이 만든 다음 DocumentRoot 아래 customTag란 디렉토리 안에 customTag.jsp란 파일로 만들었다. 브라우져에 http://localhost:8080/customTag/customTag.jsp를 호출하면 아래와 같은 모습이 보여진다. 위에서 라고 사용한 부분을 보면 파일명이 바로 Tag 명이 된 것을 알 수 있다. 또한 표준액션에서 param을 사용한 것처럼 사용할 수 있다. customTag.jsp H..

Java/Servlet & JSP 2009.03.23

커스텀 태그 사용하기

사용자 정의 태그를 만들어서 사용할 수 있다. 사용 방법은 EL에서 함수를 만드는 방법과 유사하나 조금 더 복잡한 부면이 있다. 커스텀 태그를 만들기 위해서는 tld 파일과 java class 파일이 필요하다. 예제로 유저에게 랜덤하게 조언을 해 주는 커스텀 태그 소스를 보면 이해하는데 도움이 된다.(소스는 역시 Head & First Servelet & JSP에서 사용된 것이다.) 우선 tld 파일은 EL과 마찬가지로 WEB-INF 밑에 작성한다. 이름은 myCustomTag.tld로 한다. 0.9 RandomTags rollIt com.example.DiceRoller int rollDice() randomThings random advice advice com.example.AdvisorTagHan..

Java/Servlet & JSP 2009.03.17

EL 사용하기

프로퍼티의 프로퍼티를 스크립틀릿이나 표준액션으로만 표현하기가 어렵거나 아예 불가능한 경우가 있다. 즉 다음과 같은 서블릿 코드를 스크립틀릿이나 표준액션으로 표현하려고 하면 다음과 같이 표현할 수 밖에 없을 것이다. public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { foo.Person p = new foo.Person(); p.setName("Evan"); foo.Dog dog = new foo.Dog(); dog.setName("spike"); p.setDog(dog); request.setAttribute("person", p); RequestDi..

Java/Servlet & JSP 2009.02.12

표준 액션을 사용한 JSP

"자바 빈을 이용해서 특정 객체의 값을 가져와 보여주는 소스는 아래와 같은 형식으로 jsp에서 사용할 수 있다. Person is : jsp내에서 스크립틀릿을 없애기 위해 나온 것이 표준 액션이므로 스크립틀릿을 없애는 방법으로 표현하자면 아래와 같이 할 수 있다. Person created by servlet : 위에서 id로 지정한 것을 아래 getProperty에서 name으로 가져다 쓸 수 있다. property의 name은 자바빈의 getter, setter에서 사용하는 값이다. 즉 name은 getName()과 같은 기능을 하게 되는 것이다. class는 패키지 명까지 다 써야한다. getProperty가 있다면 당연히 setProperty도 있다. setProperty는 다음과 같이 사용할 수..

Java/Servlet & JSP 2009.02.11

JSP 초기화 하기

ServletConfig를 web.xml에 정의해 두고 나서 서블릿에서 가져다 쓰는 방법에 대해 http://www.4te.co.kr/540 에서 다루었었다. JSP에서도 마찬가지로 초기화를 통해서 web.xml에 있는 ServletConfig를 변수처럼 사용할 수 있다. 방법은 서블릿 생명 주기에서 가장 처음에 한번만 호출하는 메소드인 jspInit() 메소드를 오버라이드 해서 사용하면 되는 것이다. 사용 방법은 아래와 같다. MyTestInit /TestInit.jsp email ikickedbutt@wickedlysmart.com MyTestInit /TestInit.jsp 위와 같이 설정을 하면 된다. 다만 servlet-class가 아니라 jsp-file 이라는 태그를 사용하게 되며, 패키지 형..

Java/Servlet & JSP 2009.02.10

스크립틀릿에서 변수 선언하기

다음과 같이 jsp를 작성해서 방문자의 숫자를 세어 보는 코드를 만들 생각을 할 수 있다. The page count is now: 이렇게 하게 되면 화면에 "The page count is now:1" 이라는 메시지가 찍힐 것이다. 하짐나 브라우져를 리프레쉬 하게 되면 count가 2가 되는 것이 아니라 여전히 1이 된다. 왜냐면 위에서 선언한 count란 변수는 지역 변수로 작용하기 때문이다. 즉 jsp는 서블릿으로 변하면서 그 모든 코드가 _jspService 메소드 안에 작성 되는데 count란 변수 역시 _jspService 메소드 안에서 정의 된다는 뜻이다. jsp 코드가 서블릿으로 변환 되게 된다면 아래와 같은 코드를 가지게 될 것이다. public void _jspService(HttpSe..

Java/Servlet & JSP 2009.02.04

간단한 Jsp 시작하기

Jsp를 작성하게 되면 jsp는 컨테이너에 의해서 서블릿으로 변형되게 된다. 간단하게 얼마나 많은 요청을 받았는지를 출력하는 jsp를 작성해 보면 다음과 같다. Counter.java package com.example; public class Counter { private static int count; public static synchronized int getCount() { count++; return count; } } BasicCounter.jsp Counter 클래스에서 static int 변수를 두어서 요청한 횟수를 저장할 변수를 만든다. BasicCounter.jsp에서는 page 지시자를 사용하여 com.example.*을 import 한 후 Counter 객체를 사용해서 카운트를 ..

Java/Servlet & JSP 2009.02.04
728x90
반응형