рдПрдХ рдмрд┐рдВрджреБ рдкрд░, рдПрдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕рдорд╕реНрдпрд╛ рдереА рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рднрд╛рд░реА рд╡рдЬрди рд╡рд╛рд▓реЗ рдЧреНрд░рд┐рд▓ рдПрдорд╡реАрд╕реА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдЧреНрд░реВрд╡реА рдХреЗ рд╕рд╛рде PHP рдХреА рдЬрдЧрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ 100% рд╕реЗ рд░реЛрдХрд╛ред
рдпрд╣ * .gsp рдкреГрд╖реНрдареЛрдВ (Groovy Server Pages) рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Groovy рдпрд╛ Java рдореЗрдВ, рдпрд╛ рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рдордирдорд╛рдиреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде HTML рдкреЗрдЬ рд╣реИрдВ <% ...%>: "
GSP рдХрд╛ рдЕрд░реНрде GroovySverver Pages рд╣реИ, рдЬреЛ JSP рдХреЗ рд╕рдорд╛рди рд╣реИред" JavaServer Pages) "
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PHP рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╡реЗрд╖рдг рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ <? ...? (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PHP рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ рднрд▓реЗ рд╣реА рдпрд╣ рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдж рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЕрджреГрд╢реНрдп рд╕реНрдерд╛рди рдпрд╛ рд░реЗрдЦрд╛ рдЯреВрдЯ рдЬрд╛рдПрдЧреА, рддреЛ рдпрд╣ рдЧрд┐рд░ рдЬрд╛рдПрдЧреА) рдирд┐рд╖реНрдХрд░реНрд╖, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ)ред
рдЧреНрд░реВрд╡ рд╕рд╛рдЗрдЯ рдХрд╣рддреА рд╣реИ: "
рдЬреАрдПрд╕рдкреА рдХреЛ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЧреНрд░реЗрд▓реНрд╕ рдореЗрдВ рдХрд╛рдВрдЯрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ред" рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдЧреНрд░реВрд╡ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдХреА рддрд░рд╣, рдЬреАрдкреАрдПрд╕-рдкреЗрдЬ рдмрд┐рдирд╛ рдЧреНрд░рд┐рд▓реНрд╕ рдХреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдмрд╕ рдЦрд╛рдВрдЪреЗ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рдЗрди gsp-pages рдореЗрдВ рд░реВрд╕реА рдкрд╛рда "рдЯреЗрдврд╝реЗ рдмрд╛рд▓" рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдерд╛ред рдЦрд╛рдВрдЪреЗ рдХреЗ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдореЗрдВ, "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд╛рд░ рджреЛрдиреЛрдВ рдореЗрдВ, рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛ред
рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рд╣рд╛рд░ рдХреА рд╡рд┐рдзрд┐ рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрджрд┐ рд╕реНрд░реЛрдд gsp рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП cp1251), рддреЛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреГрд╖реНрда UTF-8 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ)ред
рдФрд░ рдпрд╣ рд╢реБрджреНрдз рд╕рдВрдХреЗрдд рд╣реИ: рд╣рдо рд╕рд░реНрд╡рд▓реЗрдЯ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ groovy.servlet.TemplateServlet.java, рдЬреЛ рдРрд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдБ рдХреА рд▓рд╛рдЗрди рдЦреЛрдЬреЗрдВ:
private static final String GROOVY_SOURCE_ENCODING = "groovy.source.encoding";
рдпрд╣ рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд░реАрдбрд░ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╡реЗрдм.xml рдореЗрдВ рдорд╛рди "UTF-8" рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЙрдЗрд▓рд╛, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред
Web.xml рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдордирдорд╛рдиреА * .groovy рдФрд░ * .gsp рдлрд╛рдЗрд▓реЗрдВ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рдПрдВрдЧреА рдФрд░ рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВрдЧреА:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>GroovyServlet</servlet-name> <servlet-class>groovy.servlet.GroovyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>GroovyServlet</servlet-name> <url-pattern>*.groovy</url-pattern> <url-pattern>*.grv</url-pattern> </servlet-mapping> <servlet> <servlet-name>GSP</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>GSP</servlet-name> <url-pattern>*.gsp</url-pattern> </servlet-mapping> </web-app>
рдпрд╣ рднреА рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ .groovy рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛ рдХрд┐ рдЙрд░ рдореЗрдВ "рдЪрдордХ" рдПрдХ рдордирдорд╛рдирд╛ рд▓рдШреБ рдПрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП .grv (рдпрд╛ .php - рд╕рд┐рд░реНрдл 4 рдордЬрд╝рд╛)ред
рдЕрдм рдЖрдк рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯ, рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЧреНрд░реВрд╡реА рдкрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛ рдФрд░ рдЯреЙрдордХреИрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред