一、初始化参数(init-param)
1、参数配置
<init-param>
<param-name>helloween</param-name>
<param-value>password</param-value>
</init-param>
2、解释
A、Servlet中提供方法getIintParameter(String param)来获取初始化参数值。
B、还可以用getInitParameterNames()方法返回所有的参数名称,返回结果为枚举类型(Enumeration)。
C、Servlet提供getServletConfig()返回ServletConfig对象。由ServletConfig取初始化参数与Servlet直接取方式一样。
3、例子
Enumeration params = this.getInitParametersNames();
while(params.hasMoreElements()) {
String usernameParam = (String)params.nextElement();
String passwordParam = this.getInitParameter(usernameParam);
}
二、上下文参数(context-param)
1、参数配置
<context-param>
<param-name>upload folder</param-name>
<param-value>attachment</param-value>
</context-param>
<context-param>
<param-name>allowed file type</param-name>
<param-value>.gif,.jpg,.bmp</param-value>
</context-param>
2、解释
Servlet中通过getServletConfig().getServletContext()来获取一个ServletContext对象,使用ServletContext的getInitParameter()方法来获取指定名称的参数,通过getInitParameterNames()获取所有的context-paramcanshu名称。
3、例子
A、ServletContext servletContext = this.getServletConfig().getServletContext();//获取上下文
String uploadFolder = servletContext.getInitParameter(“upload folder”);
String allowedFileType = servletContext.getInitParameter(“allowed file type”);
B、servletContext.getRealPath(uploadFolder);
三、资源注射(@Resource)
1、参数配置
<env-entry>
<env-entry-name>hello</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>Hello,Welcome to the JavaEE Resource Injection.</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>30</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>Helloween, Cobain, Roses, Axl,</env-entry-value>
</env-entry>
2、例子
private @Resource(name = “hello”) String hello
private @Resource(name = “i”) int i;
@Resource(name = “persons”)
private String persons;
四、使用JNDI获取资源
Context ctx = new InitialContext();
String message = (String)ctx.lookup(“message”);
Integer i = (Integer)ctx.lookup(“i”);
String persons = (String)ctx.lookup(“persons”);
五、注射数据源
@Resource(name = “dataBase”)
Javax.sql.DataSource dataSource;
public void getConnection() {
Connection conn = dataSource.getConnection();
Return conn;
}