我需要用Java实现一个Web服务器。 Web服务器应下载客户端在HTTP PUT请求中上载的图像文件。这样做的程序是什么?我应该使用哪些Java类?
另外,如果你能推荐一本涵盖这些主题的好书,那就太棒了。但具体问题现在更重要。
答案 0 :(得分:2)
您应该阅读有关Java servlet和servlet容器的信息。首先实现一个返回“Hello world”字符串的简单servlet。
这是有史以来最短的上传/下载servlet:
import org.apache.commons.io.IOUtils;
@WebServlet(urlPatterns = {"/test"})
public class DownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
File f = new File("test.txt");
resp.setContentLength((int) f.length());
final FileInputStream input = new FileInputStream(f);
IOUtils.copy(input, resp.getOutputStream());
input.close();
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
final FileOutputStream output = new FileOutputStream("test.txt");
IOUtils.copy(req.getInputStream(), output);
output.close();
}
}
首先点击:
$ curl -X PUT -d "Hello, servlet" localhost:8080/test
将给定文本存储在磁盘上某个名为test.txt
的文件中。然后只需在浏览器中输入localhost:8080/test
即可。我认为这是一个好的开始。