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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM