1 package cn.itcast;View Code
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServlet;
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10
11 //servlet调用其他程序,在其他程序中何如读取资源文件(通过类装载器)
12 public class ServletDemo3 extends HttpServlet {
13
14
15 public void doGet(HttpServletRequest request, HttpServletResponse response)
16 throws ServletException, IOException {
17
18 UserDao dao = new UserDao();
19 dao.find();
20
21 }
22
23
24 public void doPost(HttpServletRequest request, HttpServletResponse response)
25 throws ServletException, IOException {
26
27
28 }
29
30 }
1 package cn.itcast;View Code
2
3 import java.io.FileInputStream;
4 import java.io.FileNotFoundException;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.util.Properties;
8
9 //如果读取资源文件的程序不是servlet的话,就只能通过类装载器去读
10 public class UserDao {
11
12 private static Properties dbconfig = new Properties();
13 static {
14 InputStream in = UserDao.class.getClassLoader().getResourceAsStream(
15 "db.properties");
16 try {
17 dbconfig.load(in);
18 } catch (IOException e) {
19 throw new ExceptionInInitializerError(e);
20 }
21 }
22 //以下代码虽然可以读取资源文件数据,但是无法获取更新后的数据
23 public void update() throws IOException {
24
25 System.out.println(dbconfig.getProperty("url"));
26 }
27
28 //通过类装载的方式得到资源文件位置,再通过传统方式读取资源文件的数据,这样可以读取更新后的数据
29 public void find() throws IOException {
30 String path = UserDao.class.getClassLoader().getResource("db.properties").getPath();
31 FileInputStream in = new FileInputStream(path);
32
33 Properties dbconfig = new Properties();
34 dbconfig.load(in);
35
36 System.out.println(dbconfig.getProperty("url"));
37
38 }
39
40 }
1 <?xml version="1.0" encoding="UTF-8"?>View Code
2 <web-app version="2.4"
3 xmlns="http://java.sun.com/xml/ns/j2ee"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7
8 <servlet>
9 <servlet-name>ServletDemo1</servlet-name>
10 <servlet-class>cn.itcast.ServletDemo1</servlet-class>
11 </servlet>
12 <servlet>
13 <servlet-name>ServletDemo3</servlet-name>
14 <servlet-class>cn.itcast.ServletDemo3</servlet-class>
15 </servlet>
16
17
18
19 <servlet-mapping>
20 <servlet-name>ServletDemo1</servlet-name>
21 <url-pattern>/ServletDemo1</url-pattern>
22 </servlet-mapping>
23 <servlet-mapping>
24 <servlet-name>ServletDemo3</servlet-name>
25 <url-pattern>/servlet/ServletDemo3</url-pattern>
26 </servlet-mapping>
27
28 <welcome-file-list>
29 <welcome-file>index.jsp</welcome-file>
30 </welcome-file-list>
31 </web-app>