| | dependency-injection servlet configuration
Resin allows servlets to be configured using dependency injection.
Demo
With Resin, servlets can use Java Bean-style configuration. A "Java Bean"
is just a Java class that follows a simple set of rules. Each configuration
parameter foo has a corresponding setter method
setFoo with a single argument for the value. Resin can
look at the class using Java's reflection and find the setFoo
method. Because Resin can find the bean-style setters from looking at the
class, it can configure those setters in a configuration file
like the web.xml.
The following HelloServlet servlet is a trivial bean-style
servlet. Instead of hardcoding the "Hello, world" string, it lets the
web.xml configure the string as greeting. To make that work,
HelloWorld adds a bean-style setGreeting(String)
jmethod.
WEB-INF/classes/test/HelloServlet.java
package test;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloServlet extends HttpServlet {
private String _greeting = "Default";
public void setGreeting(String greeting)
{
_greeting = greeting;
}
public void doGet (HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println(_greeting);
out.close();
}
}
The <servlet> configuration sets the greeting property
inside an <init/servlet> tag. After Resin instantiates the servlet object,
it looks at the configuration file for any <init> section. Resin then
calls a setXXX method for each <xxx> tag in
<init>. In this case, Resin will call setGreeting
Resin will perform any type conversion necessary, so you can use
integers and doubles as well as strings. After Resin calls the setXXX methods, it will call the init(ServletConfig) method.
When Resin initializes the servlet, it will make
the following calls:
servlet = new test.HelloServlet();
servlet.setGreeting("Hello, World!");
servlet.init(servletConfig);
WEB-INF/web.xml
<web-app xmlns="http://caucho.com/ns/resin">
<servlet servlet-name="hello"
servlet-class="test.HelloServlet">
<init>
<greeting>Hello, World!</greeting>
</init>
</servlet>
<servlet-mapping url-pattern="/hello"
servlet-name="hello"/>
</web-app>
Demo
Copyright © 1998-2015 Caucho Technology, Inc. All rights reserved. Resin ® is a registered trademark. Quercustm, and Hessiantm are trademarks of Caucho Technology.
Cloud-optimized Resin Server is a Java EE certified Java Application Server, and Web Server, and Distributed Cache Server (Memcached). Leading companies worldwide with demand for reliability and high performance web applications including SalesForce.com, CNET, DZone and many more are powered by Resin.
| home company docs app server |
|