servletConext:是服务器 应用的全局对象,它管理着关于该应用的上下文信息以及项目资源,每个webApp 有且只有一个 servletContext。
API:http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html
servletContext 可以在web.xml中配置初始化参数:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<context-param>
<param-name>http</param-name>
<param-value>www.xxx.com</param-value>
</context-param>
<servlet>
... ....
</servlet>
</web-app>
servletContext 读取自定义配置文件:
db.properties
url=jdbc:mysql://localhost:3306/test
username=root
password=root
读取方式:
注意:这里只是举个例子,通常不会这样读取配置配置文件,具体可以查看下一章
public class HelloWorld extends HttpServlet {
String url,username,password;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
//该路径是相对真实编译运行后打包路径的。如果不确定,可以打包后,解压来看看。
// ‘/’代表当前项目跟目录
InputStream in = getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties pro = new Properties();
try {
pro.load(in);
url = pro.getProperty("url");
username = pro.getProperty("username");
password = pro.getProperty("passwrod");
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
response.getWriter().write(url);
}
}
注意:如果没有写 super.init(config);,getServletContext() 报空指针异常。