测试javaweb部署到云服务器(Servlet的文件下载功能)

简介: 上章回顾:介绍&测试的账户代码介绍:1 up.html 就是一个超级简单的首页2. check_up.java3.DOWN.java(文件下载源码)最后

上章回顾:


介绍&测试的账户


代码介绍:


1 up.html 就是一个超级简单的首页


2. check_up.java


3.DOWN.java(文件下载源码)


上章回顾:


本文核心代码用到的io流


链接


IO流入门1


IO流入门二


介绍&测试的账户


点击访问:测试下载功能的链接


用户名 final


密码 123


代码介绍:


1 up.html 就是一个超级简单的首页

如图


2e4753539c0e4133b11d0e618c65717b.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
</head>
<body>
<h1>这里是测试界面</h1>
<!--假设登陆都是成功的-->
<form action="/check_up" method="post">
    用户名:<input type="text" name="user"/><br/>
    密&nbsp;&nbsp;&nbsp;码:<input type="password" name="password"><br/>
    <input type="submit" value="登陆">
</form>
</body>
</html>


2. check_up.java


就是检查密码和用户名是否配对的


package com.final_.Servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * @autor 笑霸fianl~
 * 欢迎访问GitHub:https://github.com/XBfinal
 * 欢迎访问Gitee:https://gitee.com/XBfianl
 * 欢迎访问CSDN:https://blog.csdn.net/weixin_52062043
 */
@WebServlet("/check_up")
public class check_up extends HttpServlet {
   @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取用户名和密码
       //假定用户名是final  密码是123
       String user=req.getParameter("user");
       String password = req.getParameter("password");
       //判断密码是否正确
       if("final".equals(user) && "123".equals(password)){
           //跳转去成功的页面
           //设置编码
           resp.setContentType("text/html;charset=utf-8");
           PrintWriter writer = resp.getWriter();
           writer.println("登陆成功。3秒后自动跳转");
           resp.setHeader("Refresh","3;/html/suc.html");
       }else{
           resp.setContentType("text/html;charset=utf-8");
           PrintWriter writer = resp.getWriter();
           writer.println("登陆失败。3秒后自动跳转");
           resp.setHeader("Refresh","3;/html/up.html");
       }
   }
}


3.DOWN.java(文件下载源码)


这里就是Servlet的核心代码


//获取要下载的文件的路径


//先获取当前工程的路径,然后在获取工程下的文件路径


 //获取要下载的文件的路径
        //先获取当前工程的路径,然后在获取工程下的文件路径
        String filePath=this.getServletConfig().getServletContext().getRealPath("/");
        String path=filePath+"1.png";


//设置下载的文件名//设置浏览器下载我们的资源


a75c988e708241dfacce651a6f600cfe.png


代码


 //设置下载的文件名
        String fileName = path.substring(path.lastIndexOf("\\") + 1);
        //设置浏览器下载我们的资源
        resp.setHeader("Content-disposition","attachment;filename="+fileName);//web下载文件的消息


//获取下载文件的流//关闭资源


  //获取下载文件的流
        FileInputStream filein = new FileInputStream(path);//根据路径
        //创建缓冲区
        int len=0;
        byte[] by=new byte[1024];
        //获得输出流对象
        ServletOutputStream outputStream = resp.getOutputStream();
        //写入缓冲区
        while((len=filein.read(by))>0){
            outputStream.write(by,0,len);
        }
        //关闭资源
        filein.close();
        outputStream.close();


全部代码


package com.final_.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
 * @autor 笑霸fianl~
 * 欢迎访问GitHub:https://github.com/XBfinal
 * 欢迎访问Gitee:https://gitee.com/XBfianl
 * 欢迎访问CSDN:https://blog.csdn.net/weixin_52062043
 * 在配置路径的时候,需要写一个相对路径。例如,先获得项目路径在获得文件路径 。
 * 这样不论项目放在什么路径下,访问的时候都会先去找项目路径,
 * 之后在项目路径下找到文件路径。
 */
@WebServlet("/DOWN")
public class DOWN extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取要下载的文件的路径
        //先获取当前工程的路径,然后在获取工程下的文件路径
        String filePath=this.getServletConfig().getServletContext().getRealPath("/");
        String path=filePath+"1.png";
        System.out.println(path+"\n"+filePath);
        //设置下载的文件名
        String fileName = path.substring(path.lastIndexOf("\\") + 1);
        //设置浏览器下载我们的资源
        resp.setHeader("Content-disposition","attachment;filename="+fileName);//web下载文件的消息
        //获取下载文件的流
        FileInputStream filein = new FileInputStream(path);//根据路径
        //创建缓冲区
        int len=0;
        byte[] by=new byte[1024];
        //获得输出流对象
        ServletOutputStream outputStream = resp.getOutputStream();
        //写入缓冲区
        while((len=filein.read(by))>0){
            outputStream.write(by,0,len);
        }
        filein.close();
        outputStream.close();
    }
}
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
0
分享
相关文章
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
1月前
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
官网繁忙不用怕!现在跟我一起通过视频学习阿里云《零门槛、即刻拥有 DeepSeek-R1 满血版》技术解决方案,最快两步三分钟就能拥有 免费!满血版!随时可用!支持联网搜索!带有个人知识库(RAG)!的DeepSeek 模型能力!!!
103 0
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
OS-Copilot参数功能全面测试报告
作为一名运维工程师,我主要负责云资源的运维和管理。通过使用OS Copilot的-t/-f/管道功能,我顺利解决了环境快速搭建的问题,例如Tomcat的快速部署。具体步骤包括购买ECS服务器、配置安全组、远程登录并安装OS Copilot。使用-f参数成功安装并启动Tomcat,自动配置JDK,并通过|管道功能验证了生成内容的正确性。整个过程非常流畅,极大提升了工作效率。
63 12
云产品评测:云服务诊断 — ECS实例健康状态与诊断功能体验
作为一名运维工程师,我日常管理和维护云资源,确保服务稳定运行。阿里云的云服务诊断功能提供了便捷的方式实时了解和优化ECS实例的健康状态。通过健康状态功能,我能够查看CPU、内存等指标,及时发现并解决性能瓶颈,提升了约30%的工作效率。诊断功能则帮助我快速定位复杂问题,减少了40%的诊断时间,并提供详细的优化建议。尽管功能已很强大,但仍建议进一步细化诊断结果和增加自定义告警选项,以提升使用体验。我非常推荐此工具给其他运维人员。
100 22
关于ECS 健康状态 诊断功能评测
这是一位开发兼运维工程师的观点,认为云资源的健康状态和诊断功能作用有限,因为大多数问题根源在于代码质量,而这些工具无法改善低下的代码质量导致的资源异常。
如何把阿里云ECS里的文件下载到本地(免登录免配置)
阿里云推出新功能,无需安装额外工具、不需ECS开通公网或登录ECS,仅通过控制台即可将ECS中的文件轻松下载至本地。只需开通OSS对象存储服务,按步骤创建任务,获取临时下载链接,即可在浏览器中直接下载文件。操作简便快捷,适合频繁需要从ECS下载文件的用户。
slb测试会话保持功能
slb测试会话保持功能
122 6
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
218 4
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
272 32

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等