简单的网页请求图片下载
2015-09-20 15:36
357 查看
举一个简单的例子:
利用到了servlet与输入输出流的使用来实现网页图片的简单下载
xml文件:
当服务器tomcate发布后,然后再网址上输入http://localhost:8080/项目名//servlet/ServletDom6_file(这个也就是xml文件的<url-pattern>)
效果:
利用到了servlet与输入输出流的使用来实现网页图片的简单下载
package com.dp.java.servlet; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.URLEncoder; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 读取资源,并下载资源 * */ public class ServletDom6_file extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { test2(response); } /** *最简单的文件下载 */ private void test2(HttpServletResponse response) throws FileNotFoundException, IOException { //得到要下载的文件 ServletContext sc=getServletContext(); String path=sc.getRealPath("/1.jpg");//根目录下的真实照片文件路径,必须通过它 System.out.println(path);//打印路径 //截取文件名 String filename=path.substring(path.lastIndexOf("\\")+1); System.out.println(filename); //构建输入流 InputStream in=new FileInputStream(path); //通知客户端的形式打开 response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename, "UTF-8")); response.setHeader("Content-Type", "application/octet-stream"); //得到输出流 OutputStream out=response.getOutputStream(); int len=-1; byte b[]=new byte[1024]; while((len=in.read(b))!=-1){ out.write(b, 0, len); } } private String URLEncoder(String filename, String string) { // TODO Auto-generated method stub return null; } /** *最简单的文件下载 */ private void test1(HttpServletResponse response) throws FileNotFoundException, IOException { //得到要下载的文件 ServletContext sc=getServletContext(); String path=sc.getRealPath("/1.jpg");//根目录下的照片 System.out.println(path);//打印路径 //构建输入流 InputStream in=new FileInputStream(path); //通知客户端的形式打开 response.setHeader("Content-Disposition", "attachment;filename=1.jpg"); response.setHeader("Content-Type", "application/octet-stream"); //得到输出流 OutputStream out=response.getOutputStream(); int len=-1; byte b[]=new byte[1024]; while((len=in.read(b))!=-1){ out.write(b, 0, len); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>day6_servlet</display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ServletDom6_file</servlet-name> <servlet-class>com.dp.java.servlet.ServletDom6_file</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDom6_file</servlet-name> <url-pattern>/servlet/ServletDom6_file</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
当服务器tomcate发布后,然后再网址上输入http://localhost:8080/项目名//servlet/ServletDom6_file(这个也就是xml文件的<url-pattern>)
效果:
相关文章推荐
- Html 中的背景(background)
- iOS之旅--首尾式动画初学总结
- oracle_单向函数_数字化功能
- NYOJ 300 && hdu 2276 Kiki & Little Kiki 2 (矩阵高速功率)
- 【Linux】最常用的20条命令
- 《Linux内核设计的艺术》总结:设备环境初始化及激活进程0
- SQL SERVER常用系统存储过程
- iOS中URL问题
- Java之静态内部类(static class)
- 万众创业葬送了多少人的前程?
- 09.20 string类类型
- 算法导论第六章堆排序(一)
- 数组和指针内存分配示例代码
- 用于解析Json数据的HttpUtils工具类
- 自学安卓复习基础_之十(使用适配器BaseAdapter来实现listView的CRD)
- 【转】Nessus漏洞扫描教程之安装Nessus工具
- 怎样才算精通C语言呢?
- 用模板写双链表
- POJ 1506 最小表示法
- 23设计模式之目录