所以我对 Javax Servlet 比较陌生,我应该在工作中修改一些代码。按照公司的要求,我不能在这里发布我的代码。所以基本上我在云服务上设置了一个服务器,并且我在该服务器上部署了我的应用程序。当我运行我的应用程序时,用户可以输入:8080/appname/resources/filename。在代码中,文件名会将我带到位于 CDN 网络上的文件的正确 url。如何通过 servlet 将其回放给用户?因为它不直接驻留在我的服务器上,而是被定向到其他地方。我将尝试编写一个简单的示例来解释我的意思
procesRequest(HttpServletRequest request, HttpServletResponse reponse){
String requestFile = request.getPathInfo();
File file = new File(basePath,URLDecoder.decode(requestedFile, "UTF-8"));
RandomAccessFile input = new RandomAccessFile(file, "r");
OutputStream output = response.getOutputStream();
playBack(input, output);
}
playBack(RandomAccessFile input, OutputStream output){
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int read;
while ((read = input.read(buffer))>0)
{
output.write(buffer, 0, read);
}
}
所以在上面的例子中,文件将驻留在服务器本身。basePath 是指服务器上存储所有文件的文件夹。所以它只能播放文件。但是,我想对其进行修改,以便它不会从服务器上获取文件,而是从 url 获取文件并播放它。现在,我只是将 URL 硬编码用于测试目的。