ServletContext应用
获取初始化参数
代码演示
<servlet>
<servlet-name>ServletDemo01</servlet-name>
<servlet-class>com.tian.servlet.ServletDemo01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo01</servlet-name>
<url-pattern>/demo01</url-pattern>
</servlet-mapping>
<!-- 配置一些web应用初始化参数 -->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>
public class ServletDemo01 extends HelloServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();
String url = context.getInitParameter("url");
resp.getWriter().write(url);
System.out.println("当前的工程路径"+context.getContextPath());// /tian(我自己的)
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
访问http://localhost:8080/demo01得到jdbc:mysql://localhost:3306/mybatis
读取资源文件
properties
- 在java目录下新建properties
- 在resources目录下新建properties
发现:都被打包到了同一个路径下:classes,我们俗称这个路径为classpath
思路:需要一个文件流
<servlet>
<servlet-name>ServletDemo02</servlet-name>
<servlet-class>com.tian.servlet.ServletDemo02</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo02</servlet-name>
<url-pattern>/demo02</url-pattern>
</servlet-mapping>
db.properties(在resources目录下)
username=root
password=root
public class ServletDemo02 extends HelloServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
InputStream stream = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties properties = new Properties();
properties.load(stream);
String username=properties.getProperty("username");
String password=properties.getProperty("password");
resp.getWriter().print(username+":"+password);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
访问http://localhost:8080/demo02 得到 root:root