The sample code below is included in the package distribution.
Here's a template for a "Hello, World!" servlet:
<html>
<head>
<title>Hello World Servlet</title>
</head>
<body bgcolor="#ffffff">
<p>${message}</p>
</body>
</html>
|
Here's HelloServlet.java, which uses the above template:
package examples;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import freemarker.template.*;
import freemarker.template.TemplateFactory;
public class HelloServlet extends HttpServlet {
private Template template;
public void init(ServletConfig config) throws ServletException {
super.init(config);
String templatePath = getServletContext().getRealPath("/hello-world.html");
try {
template = TemplateFactory.INSTANCE.createFromFile(templatePath);
} catch (IOException e) {
throw new UnavailableException( "Can't load template " +
templatePath + ": " + e.toString() );
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
// Make a template data model.
SimpleHash modelRoot = new SimpleHash();
modelRoot.put("message", new SimpleScalar("Hello, world!"));
// Process the template.
TemplateProcessorParameters tpp =
TemplateProcessorParameters.newInstance(out)
.withModel(modelRoot);
template.process(tpp);
out.close();
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws IOException {
doGet(req, res);
}
}
|
You can run this servlet with your favorite servlet container. We use Tomcat as our example.
First, build the application using Ant. From the examples directory, type:
ant helloworld
This will create a deploy directory underneath the
examples/helloworld directory. You can now deploy the contents
of this directory to your application server. For Tomcat, this would be
the $TOMCAT_HOME/webapps directory.
Once you've copied the directory, and started the server, you can invoke it with something like:
http://localhost:8080/helloworld/.
For other servlet containers, the URL may vary slightly.
| Previous: Exception Events | Next: Guestbook |