久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    在web.xml中使用資源注射(@Resource) (Tomcat7此路不通,Tomcat6大多可以)

     喜氣蜘蛛 2014-03-01

    資源注射是從JavaEE 5.0開始出現,實現了Tomcat在啟動時自動將web.xml中的配置信息“注射”到Servlet中。資源注射是通過Annotation完成,Annotation是一種特殊的接口,以"@"為標志,用法如下:

    1. @Resource (name="messageNameInWebXml")  
    2. private String message;  

    有時為了簡潔,上面的兩行代碼可以縮寫為一行:

    1. private @Resource(name="messageNameInWebXml") String message;  
    加入@Resource注釋后,Tomcat會在Servlet運行時將變量message的值注入,這個值設置在web.xml中名為messageNameInWebXml的參數中。

    下面用實例來說明:

    1. package com.hello.servlet;  
    2.   
    3. import java.io.*;  
    4. import javax.annotation.Resource;  
    5. import javax.servlet.*;  
    6. import javax.servlet.http.*;  
    7.   
    8. public class InjectionServlet extends HttpServlet{  
    9.     private @Resource(name="hello") String hello;  
    10.     private @Resource(name="i") int i;  
    11.       
    12.     @Resource(name="persons")  
    13.     private String persons;  
    14.   
    15.     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{  
    16.       response.setCharacterEncoding("UTF-8");  
    17.       request.setCharacterEncoding("UTF-8");  
    18.   
    19.       response.setContentType("text/html");  
    20.       PrintWriter out = response.getWriter();  
    21.       out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional //EN\">");  
    22.       out.println("<HTML>");  
    23.       out.println("<HEAD><TITLE>資源注入</TITLE></HEAD>");  
    24.       out.println("<style>body{font-size:12px;}</style>");  
    25.         
    26.       out.println("<b>注入的字符串</b>: <br/>   - " + hello +"<br />");  
    27.       out.println("<b>注入的整數</b>: <br/>   - " + i +"<br />");  
    28.       out.println("<b>注入的字符串數組</b>: <br/>");  
    29.       for(String person : persons.split(",")){  
    30.           out.println("  - " + person +"<br />");  
    31.       }  
    32.         
    33.       out.println("<BODY>");  
    34.       out.println("</BODY>");  
    35.       out.println("</HTML>");  
    36.       out.flush();  
    37.       out.close();  
    38.     }   
    39. }  

    下一步,在web.xml中使用標簽<env-entry>來配置資源。<env-entry>僅能配置java.lang包下標準類型的變量,如String, Integer, Double等。配置后的代碼如下:

    1. <servlet>  
    2.     <servlet-name>InjectionServlet</servlet-name>  
    3.     <servlet-class>com.hello.servlet.InjectionServlet</servlet-class>  
    4. </servlet>  
    5.   
    6. <servlet-mapping>  
    7.     <servlet-name>InjectionServlet</servlet-name>  
    8.     <url-pattern>/servlet/InjectionServlet</url-pattern>  
    9. </servlet-mapping>  
    10.   
    11. <!-- 下面是資源配置 -->  
    12. <env-entry>  
    13.     <env-entry-name>hello</env-entry-name>  
    14.     <env-entry-type>java.lang.String</env-entry-type>  
    15.     <env-entry-value>Hello, Welcome to the JavaEE Resource Injection</env-entry-value>  
    16. </env-entry>  
    17.   
    18. <env-entry>  
    19.     <env-entry-name>i</env-entry-name>  
    20.     <env-entry-type>java.lang.Integer</env-entry-type>  
    21.     <env-entry-value>14</env-entry-value>  
    22. </env-entry>  
    23.   
    24. <env-entry>  
    25.     <env-entry-name>persons</env-entry-name>  
    26.     <env-entry-type>java.lang.String</env-entry-type>  
    27.     <env-entry-value>Helloween, Cobain, Roses, WLJ, </env-entry-value>  
    28. </env-entry>  

    資源注射的原理:JNDI

            InjectionServlet實例中使用<env-entry>配置了名為hello, i, persons的JNDI資源,然后使用@Resource將指定名稱的JNDI資源注射到InjectionServlet里。如果不使用@Resource,直接通過JNDI也可以獲取這三個參數,代碼如下:

    1. Context ctx = new InitialContext();  
    2. String message = (String)ctx.lookup("message");  
    3. Integer i = (Integer)ctx.lookup("i");  
    4. String persons = (String)ctx.lookup("persons"); 

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 免费AV片在线观看网址| 秋霞电影院午夜无码免费视频 | 一本精品中文字幕在线| 少妇肉麻粗话对白视频| 久久综合伊人77777| 国产成人无码免费网站| 亚洲欧美牲交| 亚洲人亚洲人成电影网站色| 超频97人妻在线视频| 国产精品 欧美 亚洲 制服| 亚洲熟女综合色一区二区三区| 国产不卡免费一区二区| 女人被黑人躁得好爽视频| 美女无遮挡免费视频网站| 免费无码黄十八禁网站| 少妇AV射精精品蜜桃专区| 欧美精品一区二区在线观看播放 | 深夜福利资源在线观看| 成 人影片免费观看| 亚洲春色在线视频| 精品国精品自拍自在线| 亚洲成A人片在线观看的电影| 国产精品久久久久AV福利动漫| 一区二区亚洲人妻精品| 特级毛片A级毛片免费播放| 亚洲精品成人福利网站| 亚洲精品无码AV人在线观看国产| 办公室强奷漂亮少妇同事| 少妇特殊按摩高潮惨叫无码| 天天影视网色香欲综合网| 好深好湿好硬顶到了好爽| 影音先锋人妻啪啪AV资源网站| 国产成人精选视频在线观看不卡 | 精品免费看国产一区二区| 欧美人和黑人牲交网站上线| 国产老熟女狂叫对白| 亚洲精品美女一区二区| 波多野结AV衣东京热无码专区 | 久久精品国产99久久久古代 | 无码激情亚洲一区| 国产又爽又粗又猛的视频 |