JavaWeb中用Servlet对普通java类读取外部资源文件

一、普通的java类怎么来读取外部文件:

那就只有用类装载器(ClassLoader)

Class Loader的作用:

基本上所有的类加载器都是 java.lang.ClassLoader类的一个实例。

  • 它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。
  • 除此之外,ClassLoader还负责加载 Java 应用所需的资源,如图像文件和配置文件等。

二、实例:

1、如何利用ClassLoader读取资源文件

首先要在web下边创建一个文件夹file,然后再file中创建一个p.properties文件

例:

drive=com.oracle.driver
url=lcoalhost:3306//db_test1
user=haoren
pass=123456

2、创建一个普通Java类来读取

方式一:URL getResource(String name) (可以取得实时更新的内容)     String path = ServletDemo4.class.getClassLoader().getResource("pro.properties").getPat

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.io.InputStream;

//普通java类封装
//类加载器
//针对字节码
public class ReadFileDemo {
   
        //方式一:Url对象
        String pathlath = ReadFileDemo.class.getClassLoader().getResource(path).getPath();
        try {
            InputStream i = new FileInputStream(pathlath);
            Properties p = new Properties();
            try {
                p.load(i);
                System.out.print(p.getProperty("url"));
            }catch (IOException e){
                e.printStackTrace();
            }
        }catch (FileNotFoundException e){
            e.printStackTrace();
        }
    }
}

方式二:InputStream getResourceAsStream(String path)(这里的path是相对于classes文件夹)      InputStream in = ServletDemo4.class.getClassLoader().getResourceAsStream("pro.properties");

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.io.InputStream;

//普通java类封装
//类加载器
//针对字节码
public class ReadFileDemo {
    //方式二:普通类读取外部文件相对路径是classes
    public static void readFile(String path){
        InputStream in = ReadFileDemo.class.getClassLoader().getResourceAsStream("path");
            //try抛出异常
        Properties p = new Properties();
        try {
            p.load(in);
            String url = (String)p.get("url");
            System.out.print(url);
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

3、创建一个Servlet类执行上面的普通java类

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
 
@WebServlet("/ServletDome")
public class ServletDome extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        new ReadFileDome().readFile("file/datainfor.properties");//这里跟文件的相对路径
    }
}

运行结果:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简单的留言板的实现过程。 首先,我们需要创建一个Java Web项目,并在项目中创建一个servlet。 ```java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class MessageServlet extends HttpServlet { private List<String> messages = new ArrayList<String>(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>留言板</title></head>"); out.println("<body>"); out.println("<h1>留言板</h1>"); out.println("<form method=\"post\">"); out.println("留言:<input type=\"text\" name=\"message\"/><br/>"); out.println("<input type=\"submit\" value=\"提交\"/>"); out.println("</form>"); out.println("<hr/>"); for (String message : messages) { out.println(message + "<br/>"); } out.println("</body>"); out.println("</html>"); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String message = request.getParameter("message"); if (message != null && !message.trim().equals("")) { messages.add(message); } doGet(request, response); } } ``` 上面的servlet中,我们定义了一个messages列表来存储留言信息。在doGet方法中,我们通过response对象输出一个简单的HTML页面,并在页面中添加一个表单来让用户输入留言。在doPost方法中,我们处理用户提交的留言信息,并将留言添加到messages列表中。 接下来,我们需要在web.xml中配置servlet。在web.xml中添加以下代码: ```xml <servlet> <servlet-name>MessageServlet</servlet-name> <servlet-class>MessageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MessageServlet</servlet-name> <url-pattern>/message</url-pattern> </servlet-mapping> ``` 上面的代码中,我们定义了一个名为MessageServletservlet,并将它映射到/message路径上。 最后,我们需要将servlet部署到服务器上。可以选择将war包上传到Tomcat服务器的webapps目录下,然后启动Tomcat服务器即可。 访问http://localhost:8080/项目名/message 即可看到留言板页面。在输入框中输入留言内容,并点击提交按钮即可添加留言。添加的留言会显示在留言板页面的下方。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值