在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通过servletContext.getInitParameter("name")的方式读取,java5以后提供了新的方案叫做资源注入就是通过注解(Annotation)的方式.也就是说,不需要servlet主动读取数据,Tomcat在启动的时候会把web.xml里配置的信息主动"注入"到Servlet中,我们不需要在编写读取的代码,只需要定义出来就能用了,下面举例介绍:
在web.xml中配置的代码如下:
<servlet>
<servlet-name>AServlet</servlet-name>
<servlet-class>com.wang.servlet.AServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/AServlet</url-pattern>
</servlet-mapping>
<env-entry>
<env-entry-name>info1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Hello Servlet</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>number</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>21</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>info2</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Hello,Servlet,I,am,happy</env-entry-value>
</env-entry>
新建一个servlet(我这里命名为AServlet):
public class AServlet extends HttpServlet { private @Resource(name="info1") String info1;
private @Resource(name="info2") String info2;
private @Resource(name="number") int i;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("info1="+info1+"<br>");
out.print("number="+i+"<br>");
String[] arrInfo2=info2.split(",");
for(String s:arrInfo2){
out.print("arrInfo2--"+s);
out.print("<br>");
} }
}
启动项目,访问Aservlet,网页上输出的结果为:
info1=Hello Servlet
number=21
arrInfo2--Hello
arrInfo2--Servlet
arrInfo2--I
arrInfo2--am
arrInfo2--happy