{"id":1365,"date":"2005-10-12T22:20:00","date_gmt":"2005-10-12T13:20:00","guid":{"rendered":"\/?p=1365"},"modified":"2005-11-07T15:18:42","modified_gmt":"2005-11-07T06:18:42","slug":"servlet-and-velocity","status":"publish","type":"post","link":"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/1365.html","title":{"rendered":"Servlet and Velocity"},"content":{"rendered":"<p>\u666e\u901a\u306bVelocity\u3092Servlet\u306e\u4e2d\u3067\u4f7f\u3046\u3068\u304d\u306f\u3001WEB-INF\/classes\/ \u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u304a\u3051\u3070\u3044\u3044\u3089\u3057\u3044\u3002<\/p>\n<p>WEB-INF\/classes\/jp\/Hello.class \u3092\u3001\u6b21\u306e\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u4f5c\u6210\u3057\u305f\u5834\u5408\u3001<\/p>\n<div style=\"background-color:#CCCCCC;border-width=1px;padding=2px;\">\n<code style=\"color:#660066;\">package<\/code>&nbsp;jp;<\/p>\n<p><code style=\"color:#660066;\">import<\/code>&nbsp;java.io.BufferedWriter;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;java.io.IOException;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;java.io.PrintWriter;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;java.io.StringWriter;<\/p>\n<p><code style=\"color:#660066;\">import<\/code>&nbsp;javax.servlet.ServletException;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;javax.servlet.http.HttpServlet;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;javax.servlet.http.HttpServletRequest;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;javax.servlet.http.HttpServletResponse;<\/p>\n<p><code style=\"color:#660066;\">import<\/code>&nbsp;org.apache.velocity.Template;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;org.apache.velocity.VelocityContext;<br \/><code style=\"color:#660066;\">import<\/code>&nbsp;org.apache.velocity.app.VelocityEngine;<\/p>\n<p><code style=\"color:#660066;\">public<\/code>&nbsp;<code style=\"color:#660066;\">class<\/code>&nbsp;Hello&nbsp;<code style=\"color:#660066;\">extends<\/code>&nbsp;HttpServlet&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;<code style=\"color:#660066;\">public<\/code>&nbsp;<code style=\"color:#660066;\">void<\/code>&nbsp;doGet(HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code style=\"color:#660066;\">throws<\/code>&nbsp;IOException,&nbsp;ServletException&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType(<code style=\"color:#0000CC;\">&quot;text\/html&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;out&nbsp;=&nbsp;response.getWriter();<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(<code style=\"color:#0000CC;\">&quot;&lt;html&gt;&lt;head&gt;&lt;title&gt;test&lt;\/title&gt;&lt;\/head&gt;&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(<code style=\"color:#0000CC;\">&quot;&lt;body&nbsp;bgcolor=&quot;<\/code>white<code style=\"color:#0000CC;\">&quot;&gt;&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter&nbsp;buf&nbsp;=&nbsp;<code style=\"color:#660066;\">new<\/code>&nbsp;StringWriter();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedWriter&nbsp;writer&nbsp;=&nbsp;<code style=\"color:#660066;\">new<\/code>&nbsp;BufferedWriter(buf);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code style=\"color:#660066;\">try<\/code>&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VelocityEngine&nbsp;ve&nbsp;=&nbsp;<code style=\"color:#660066;\">new<\/code>&nbsp;VelocityEngine();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ve.init();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VelocityContext&nbsp;ctx&nbsp;=&nbsp;<code style=\"color:#660066;\">new<\/code>&nbsp;VelocityContext();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Template&nbsp;template&nbsp;=&nbsp;ve.getTemplate(<code style=\"color:#0000CC;\">&quot;hello.vm&quot;<\/code>,&nbsp;<code style=\"color:#0000CC;\">&quot;UTF-8&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctx.put(<code style=\"color:#0000CC;\">&quot;name&quot;<\/code>,&nbsp;<code style=\"color:#0000CC;\">&quot;Hello&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template.merge(ctx,&nbsp;writer);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.flush();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(<code style=\"color:#0000CC;\">&quot;Velocity:&quot;<\/code>&nbsp;+&nbsp;buf.toString());<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<code style=\"color:#660066;\">catch<\/code>&nbsp;(Exception&nbsp;e)&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<code style=\"color:#660066;\">finally<\/code>&nbsp;{<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.close();<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(<code style=\"color:#0000CC;\">&quot;&lt;\/body&gt;&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(<code style=\"color:#0000CC;\">&quot;&lt;\/html&gt;&quot;<\/code>);<br \/>&nbsp;&nbsp;&nbsp;&nbsp;}<br \/>}<\/p>\n<\/div>\n<p>\u6b21\u306e\u3088\u3046\u306ahello.vm\u3092 WEB-INF\/classes\/ \u306b\u304a\u304d\u307e\u3059\u3002<\/p>\n<div class=\"code\">$name<br \/>\nHello.vm\n<\/div>\n<p>\u3053\u308c\u3067\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u3078\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u3001BODY\u90e8\u306b\u306f\u6b21\u306e\u3088\u3046\u306a\u51fa\u529b\u304c\u3055\u308c\u307e\u3059\u3002<\/p>\n<div class=\"code\">Velocity:Hello<br \/>\nHello.vm<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u666e\u901a\u306bVelocity\u3092Servlet\u306e\u4e2d\u3067\u4f7f\u3046\u3068\u304d\u306f\u3001WEB-INF\/classes\/ \u306b\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u304a\u3051\u3070\u3044\u3044\u3089\u3057\u3044\u3002 WEB-INF\/classes\/jp\/Hello.class \u3092\u3001\u6b21\u306e\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u4f5c\u6210 &hellip; <a href=\"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/1365.html\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-1365","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/1365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/comments?post=1365"}],"version-history":[{"count":0,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/1365\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/media?parent=1365"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/categories?post=1365"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/tags?post=1365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}