简单的网页请求图片下载

来源:互联网 发布:python入门视频 编辑:程序博客网 时间:2024/06/05 09:53

举一个简单的例子:

     利用到了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 stubreturn 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>)


效果:


0 0
原创粉丝点击