在Servlet中使用@Resource(name=’’), 可更方便的获取资源参数。
一、web.xml资源参数的定义
使用<env-entry>
标签。
代码如下:
<servlet>
<servlet-name>InjectionServlet</servlet-name>
<servlet-class>InjectionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InjectionServlet</servlet-name>
<url-pattern>/injectionServlet</url-pattern>
</servlet-mapping>
<!-- 下面使资源配置 -->
<env-entry>
<env-entry-name>hello</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>今天是2021年乞巧节,祝天下有情人终成眷属.</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>i</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>108</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>persons</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>花和尚鲁智深,豹子头林冲,美髯公关羽,九纹龙史进,</env-entry-value>
</env-entry>
二、InjectionServlet中使用@Resource,获取资源配置
代码如下:
private @Resource(name = "hello") String hello; // 注入的字符串。一行的写法
private @Resource(name = "i") int i; // 注入的整数。
@Resource(name = "persons") // 两行的写法
private String persons;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \" - //W3C//DTD HTML 4.0.1//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>资源注入</TITLE></HEAD>");
out.println("<style>body, td, div{front-size:12px;} </style>");
out.println("<BODY>");
out.println("<br/><b>注入的字符串</b>: </br><br/> - " + hello + "<br/></br>");
out.println("<b>注入的整数</b>: </br></br> - " + i + "<br/></br>");
out.println("<b>注入的字符串数组:</b><br/><br/>");
for (String person : persons.split(",")) {
out.println(" - " + person + "<br/></br>");
}
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
三、运行结果
总结
1.web.xml中需使用env-entry标签; 其有三个属性: env-entry-name, env-entry-type, env-entry-value2. Servlet中,使用@resource(name=’’),注入资源值到相应的变量。