servlet中用注解的方式读取web.xml中的配置信息

  在学习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

上一篇:再爆安全漏洞,这次轮到Jackson了,竟由阿里云上报


下一篇:重温JSP学习笔记--JSP动作标签