사용자 도구

사이트 도구


groovy:groovlet

문서의 이전 판입니다!


Groovlet

설정

<servlet>
<servlet-name>Groovy</servlet-name>
<servlet-class>groovy.servlet.GroovyServlet</servlet-class>
</servlet>
 
<servlet-mapping>
<servlet-name>Groovy</servlet-name>
<url-pattern>*.groovy</url-pattern>
</servlet-mapping>
  • 서블릿 *.groovy 파일 경로 : webapps/* 혹은 webapps/WEB-INF/groovy/* 다중 디렉토리 구조 가능. 호출은 해당 위치 기준으로 웹브라우저에서 /directory/filename.groovy 형태로 한다.
  • /WEB-INF/lib에 groovy-all-*.jar 를 넣어두어야 한다.
  • 기타 groovy 라이브러리성 파일들은 webapps/WEB-INF/classes 에 패키지 구조 그대로 넣으면 된다.

기본 내장 객체 목록

아래 Groovlet 코드로 Groovlet에 전달되는 기본 내장 객체 목록을 뽑을 수 있다. 이 내장 객체들은 JSP의 내장 객체들(session, application, request, response, out 등)과 사실상 이름도 동일하고 역할도 같다.

그외에 forward, redirect, include 같은 편리 메소드를 클로저로 내장하고 있다. forward(“/somepage”) 형태로 호출 가능.

html.html {
    head {
        title '그루블릿 데모'
    }
 
    body {
        h1 'Binding에 있는 변수들'
        table(summary: 'binding') {
            tbody {
                binding.variables.each { key, value ->
                    tr {
                        td key.toString()
                        td(value ? value.toString() : 'null')
                    }
                }
            }
        }
    }
}
  • contextPath : context.contextPath

session

세션 사용시 주의해야 한다. session 내장 객체가 null 일수 있기 때문이다.

if (!session) {
  session = request.getSession(true);
}
 
if (!session.counter) {
  session.counter = 1
}

TemplateServlet

설정

<servlet>
  <servlet-name>template</servlet-name>
  <servlet-class>groovy.servlet.TemplateServlet</servlet-class>
  <init-param>
  	<param-name>groovy.source.encoding</param-name>
  	<param-value>UTF-8</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>template</servlet-name>
  <url-pattern>*.html</url-pattern>
</servlet-mapping>

호출

기본적으로 *.html 파일을 호출하면 자동으로 해당 파일을 Groovy Template으로 읽고 해석해서 뿌려준다.

Groovlet과 연동할 경우에는 Groovlet의 request에 attribute로 값을 담아서 xx.html로 포워딩을 해주면 된다.

// in Groovlet
request.goal = "goal에 대한 값"
request.guess = "guess에 대한 값"
 
forward('/test.html')
 
// in test.html Template
이런 저런 문자열 $request.goal  형태로 사용한다.
  • <% 코드 %> : 코드 수행
  • <%= 평가시 %> : 평가결과를 출력
  • <% out « 평가식 %> : 평가결과 출력
  • $평가식 : 평가 결과 출력
groovy/groovlet.1346837510.txt.gz · 마지막으로 수정됨: 2012/09/05 18:31 저자 kwon37xi