网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > 怎样通过java实现服务器上文件下载?
商业源码 服务器教程 2024-02-04 15:17:01

怎样通过java实现服务器上文件下载?

怎样通过java实现服务器上文件下载?,第1张

在jsp/servlet中断点/多线程下载文件

<%@ page import="javaioFile" %>

<%@ page import="javaioIOException" %>

<%@ page import="javaioOutputStream" %>

<%@ page import="javaioRandomAccessFile" %>

<%!

    public void downloadFile(HttpServletRequest request, HttpServletResponse response, File file) throws IOException {

        RandomAccessFile raf = new RandomAccessFile(file, "r");

        javaioFileInputStream fis = new javaioFileInputStream(rafgetFD());

        responsesetHeader("Server", "wwwtrydonecom");

        responsesetHeader("Accept-Ranges", "bytes");

        long pos = 0;

        long len;

        len = raflength();

        if (requestgetHeader("Range") != null) {

            responsesetStatus(HttpServletResponseSC_PARTIAL_CONTENT);

            pos = LongparseLong(requestgetHeader("Range")

                    replaceAll("bytes=", "")

                    replaceAll("-", "")

            );

        }

        responsesetHeader("Content-Length", LongtoString(len - pos));

        if (pos != 0) {

            responsesetHeader("Content-Range", new StringBuffer()

                    append("bytes ")

                    append(pos)

                    append("-")

                    append(LongtoString(len - 1))

                    append("/")

                    append(len)

                    toString()

            );

        }

        responsesetContentType("application/octet-stream");

        responsesetHeader("Content-Disposition", new StringBuffer()

                append("attachment;filename=\"")

                append(filegetName())

                append("\"")toString());

        rafseek(pos);

        byte[] b = new byte[2048];

        int i;

        OutputStream outs = responsegetOutputStream();

        while ((i = rafread(b)) != -1) {

            outswrite(b, 0, i);

        }

        rafclose();

        fisclose();

    }

%>

<%

    String filePath = requestgetParameter("file");

    filePath = applicationgetRealPath(filePath);

    File file = new File(filePath);

    downloadFile(request, response, file);

%>

1由于服务器配置比较低综合考虑,选择ubuntu系统进行搭建

2 登陆阿里云服务器:

方法一:使用xshell软件登陆服务器

主机填写ip地址

端口号选择22

连接登陆服务器

方法二:使用阿里云管理终端

ssh root@服务器ip地址

password:输入密码

3如何上传文件

方法一:windows和linux上传或下载某个文件可以使用rz,sz

sudo apt-get install lrzsz

安装完成后进入准备存放改文件的文件夹输入rz,就会跳出文件选择框

例如:#cd apache-tomcat-7069/bin  rz

cd后有空格

cd ~:返回最上层

cd :返回上一层

cd -:返回最近操作 

方法二:使用xshell中的插件Xftp

4安装及配置环境

安装lsb指令

ubunu快捷安装需要的命令,更新一下:

自带源在大陆不好,更新即可解决

1sudo apt-get update  

2apt-get install yum  yum install -y redhat-lsb

输入lsb指令查看当前版本 

查看版本号

lsb_release -a查看当前位数

getconf LONG_BIT

安装jdk:

方法一:ubuntu自动安装jdk

sudo apt-get install jdk

安装完成后配置环境:

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile

添加进profile文件

JAVA_HOME=/home/java/jdk160_12

export JRE_HOME=/home/liujicheng/java/jdk160_12/jre

export CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改

//使用 which java 查看jdk所在文件夹

方法二:本地下载jdk上传

下载对应系统32位或64位的targz文件

建议:经过还几次对服务器进行环境搭建,已经有了一点小小的见解,建议不要使用过低版本的JDK,例如服务器JDK版本为15而项目JDK版本为18的情况,就会出现无法服务器无法运行war文件的情况,建议版本为17

上传targz文件有两种方法

11输入命令行 rz 选择安装包上传1使用rz时,注意安装 2通过xftp将上传

创建一个java文件夹

mkdir java

输入安装命令,将上传的targz文件解压到创建为java文件夹中

sudo tar -zxvf jdk-7u80-linux-x64targz -C /root/java

设置环境变量

使用vim指定编辑etc目录下profile文件,添加export

#vim /etc/profile添加进profile文件

JAVA_HOME=/root/java/jdk170_80

export JRE_HOME=/root/java/jdk170_80/jre

export CLASSPATH=:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

//java存放位置请自行更改//使用 which java 查看jdk所在文件夹

选择E,然后输入i 进行写操作

最后 :x退出并保存

设置默认JDK

12345sudo update-alternatives --install /usr/bin/java java /root/java/jdk170_80/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /root/java/jdk170_80/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /root/java/jdk170_80/bin/jar 300  sudo update-alternatives --install /usr/bin/javah javah /root/java/jdk170_80/bin/javah 300  sudo update-alternatives --install /usr/bin/javap javap /root/java/jdk170_80/bin/javap 300

如果之后一个版本显示: 

There is only one alternative in link group java (providing /usr/bin/java):

/usr/lib/jvm/jdk170_60/bin/java

否者,选择合适的jdk

检查jdk是否安装成功,输出版本号及对应信息即安装成功

#java

#javac

#java -version

安装tomcat

方法一:ubuntu自动安装tomcat

sudo apt-get install tomcat

添加jdk和jre环境变量

JAVA_HOME=/home/java/jdk160_12

JRE_HOME=/home/homer/eclipse/jdk160_12/jre  

PATH=$JAVA_HOME/bin:$JRE_HOME:$PATH  

CLASSPATH=:$JAVA_HOME/lib/dtjar:$JAVA_HOME/lib/toolsjar  

TOMCAT_HOME=/opt/apache-tomcat-7029  

启动tomcat

cd apache-tomcat-7069/bin /startupsh

出现提示说明配置成功

方法二:上传tomcat并解压

通过上述上传文件方法上传后

使用tar指令解压

tar -zxvf apache-tomcat-8024targz

然后进入apache-tomcat-7069文件夹

# cd apache-tomcat-8024 /bin/

启动tomcat

cd apache-tomcat-8024 /bin/ /startupsh

显示如下说明成功

最后输入:http://xxxx:8080/   (x代表ip地址),显示tomcat首页说明配置成功

安装Mysql

ubuntu下自动安装

sudo apt-get install mysql-server

apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

设置数据库密码:

检查Mysql是否安装成功

sudo netstat -tap | grep mysql

登陆Mysql

mysql -uroot -p密码

成功:

查看数据库

show databases

将sql文件导入

//先选定数据库

use iswust        

source /root/testsql//source /文件夹/sql文件名

select from score

5java工程打包上传并运行

右键选中java项目,WAR Export 将文件以war格式导出

(注意:java工程的jdk一定要先降低到与服务器的jdk版本相同,例如java工程为18而服务器为16则会报错)

降低jdk方法:

并通过XFTP或上述的上传文件方法,上传至apache-tomcat-7069/webapps中

可以FTP方式

准备条件:java实现ftp上传用到了commons-net-33jar包

首先建立ftphost连接

public boolean connect(String path, String addr, int port, String username, String password) {

try {

//FTPClient ftp = new FTPHTTPClient(addr, port, username, password);

ftp = new FTPClient();

int reply;

ftpconnect(addr);

Systemoutprintln("连接到:" + addr + ":" + port);

Systemoutprint(ftpgetReplyString());

reply = ftpgetReplyCode();

if (!FTPReplyisPositiveCompletion(reply)) {

ftpdisconnect();

Systemerrprintln("FTP目标服务器积极拒绝");

Systemexit(1);

return false;

}else{

ftplogin(username, password);

ftpenterLocalPassiveMode();

ftpsetFileType(FTPClientBINARY_FILE_TYPE);

ftpchangeWorkingDirectory(path);

Systemoutprintln("已连接:" + addr + ":" + port);

return true;

}

} catch (Exception ex) {

exprintStackTrace();

Systemoutprintln(exgetMessage());

return false;

}

}

然后再利用ftpclient的makeDirectory方法创建文件夹

public void createDir(String dirname){

try{

ftpmakeDirectory(dirname);

Systemoutprintln("在目标服务器上成功建立了文件夹: " + dirname);

}catch(Exception ex){

Systemoutprintln(exgetMessage());

}

}

断开host连接

public void disconnect(){

try {

ftpdisconnect();

} catch (IOException e) {

eprintStackTrace();

}

}

最后是程序的调用方法

public static void main(String[] args) {

FtpUploadTest ftpupload = new FtpUploadTest();

if(ftpuploadconnect("", "172398x", 20, "administrator", "abc@123")){

ftpuploadcreateDir("/UPLOAD");

ftpuploaddisconnect();

}

}

看你具体是想做什么,现在现成的开源的java的http服务器有很多,像tomcat之类的都有http服务器功能,如果你只是单纯的需要用的话,直接用tomcat就好了

但是如果你是做要自己用java实现一个http服务器的话就要稍微麻烦一点

http服务器,本质上还是基于tcpip协议的服务器,首先用java的ServerSocket监听一个端口(也可以使用开源的server组件,如quickserver之类的),然后对客户端发上来的数据进行处理,这里就需要了解一下http协议了,因为上来的数据,都是按照http协议来组织的,你需要将请求数据解析后,将响应数据组织成http的响应,发回给客户端。这样一个简单的http服务器就实现了。

但是这个请求和响应都有很多种类,一个完整的http服务器应该要都能够支持,所以这里面的工作量还是有一点的。

另外,上面说的http服务器只是一个静态的服务器,如果你想让你写的服务具有动态功能,那你的服务器还得提供javaee的容器功能,这样做下去,没准你也能写一个tomcat出来了……

服务器 文件 方法 上传 文件夹
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎样通过java实现服务器上文件下载?

商业源码 钻石

分享到:
上一篇
v2ray启用本地dns是什么意思
下一篇
二手avc服务器散热器能买吗

相关推荐

美国现在用微信用翻墙吗

美国现在用微信用翻墙吗

为什么我进CF选择服务器 显示服务器人数已满请稍后重试按确定就掉线了

为什么我进CF选择服务器 显示服务器人数已满请稍后重试按确定就掉线了

浪潮服务器nf5270m3这个型号的服务器能在bios里设置风扇转速吗,大神,方

浪潮服务器nf5270m3这个型号的服务器能在bios里设置风扇转速吗,大神,方

linux系统时钟同步命令

linux系统时钟同步命令

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...