ServletContext的读取资源文件

ServletContext的读取资源文件

1、建.properties文件,因为文件存放位置,可能会导致无法导出问题,解决办法就是之前提到的修改pom.xml文件

2、读取资源文件

3、注册+映射

1、 在resources下,建properties文件(规范做法)

1、在resources下建(应该在这里建,而且不会出问题)

  

 2、观察下db.properities生成位置:默认路径是类路径,在class下

2、 在java下,建properties文件(不规范做法)

1、不在resources下建,而是在java中的servlet中建(在这里建,不规范,可能会出先无法导出的问题,解决方法在2中)

  

 2、观察下db.properities和aa.properities生成位置:一个生成了,一个没生成

3、没有生成的原因就是无法导出,解决方法是:在pom.xml中,在build中配置resources,来防止资源导出失败问题。(注意,因为这个项目是当前的,不要放在主工程的pom.xml中,应放在当前项目的pom.xml中)

 1 <resources>
 2             <resource>
 3                 <directory>src/main/resources</directory>
 4                 <includes>
 5                     <include>**/*.properties</include>
 6                     <include>**/*.xml</include>
 7                 </includes>
 8             </resource>
 9             <resource>
10                 <directory>src/main/java</directory>
11                 <includes>
12                     <include>**/*.properties</include>
13                     <include>**/*.xml</include>
14                 </includes>
15                 <filtering>true</filtering>
16             </resource>
17         </resources>
View Code

4、观察下db.properities和aa.properities生成位置:两个都在类路径中生成了

3、 读取资源文件

 1 package com.wang.servlet;
 2 
 3 import javax.servlet.RequestDispatcher;
 4 import javax.servlet.ServletContext;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 import java.io.InputStream;
11 import java.util.Properties;
12 
13 public class ServletDemo05 extends HttpServlet {
14     @Override
15     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
16 
17         InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
18         //第一个/代表当前web应用,然后一步步往下找,直到找到配置文件的位置
19         //返回的是一个流
20         Properties prop = new Properties();
21         prop.load(is);
22         String user = prop.getProperty("username");
23         String pwd = prop.getProperty("password");
24         resp.getWriter().print(user+":"+pwd);
25 
26     }
27 
28     @Override
29     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
30         doGet(req, resp);
31     }
32 }
View Code

4、 注册+映射

1     <!--注册和映射-->
2     <servlet>
3         <servlet-name>sd5</servlet-name>
4         <servlet-class>com.wang.servlet.ServletDemo05</servlet-class>
5     </servlet>
6     <servlet-mapping>
7         <servlet-name>sd5</servlet-name>
8         <url-pattern>/sd5</url-pattern>
9     </servlet-mapping>
View Code

5、 运行

6、 刚刚读的是在resources下,建的properties文件;现在读java下,建的properties文件

猜你喜欢

转载自www.cnblogs.com/WZ-BeiHang/p/12563495.html