javaweb-外网访问之图片的下载

本文主要讲解如何通过JavaWeb技术,让外部网络能够访问并下载服务器上的图片。核心内容涉及XML配置,只需引入Servlet依赖即可实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.yp;

import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.ContentDisposition;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;

public class fileservletjava extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //1.获取下载文件的路径
        String realpath=this.getServletContext().getRealPath("/1.JPG");//项目下面的根目录
  System.out.print("文件下载的路径是:"+realpath);
        //2.下载文件的名字是什么
         String filename=realpath.substring(realpath.lastIndexOf("\\")+1);
         //3.想办法让浏览器支持下载我们需要的东西
        resp.setHeader("Content-disposition","attachment;filename"+filename);
        //4.获取下载文件的输入流
        FileInputStream in = new FileInputStream(realpath);
        //5.创建缓冲区
        int len=0;
          byte[] buffer=new byte[1024];
        //6.获取outputstream对象
        ServletOutputStream out = resp.getOutputStream();
        //7.将fileoutputstream流写入到buffer缓冲区
        while((len = in.read(buffer)) > 0) {
        out.write(buffer,0,len);
        }
        //8.使用OutputStream将缓冲区的数据输出到客户端浏览器
        in.close();
        out.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

xml配置(这个里面只需要导入servlet依赖就可)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>project01</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>project02</module>
        <module>project03</module>
        <module>projevt04</module>
        <module>jsp</module>
        <module>JSP</module>
    </modules>

    <dependencies><!--servlet依赖-->
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
    <dependency><!--jsp依赖-->
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
        <scope>provided</scope>
    </dependency>
        <dependency><!--JSTL表达式的依赖-->
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency><!--standard标签库-->
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

</dependencies>
</project>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值