测试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();
    }
}
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
JavaScript 数据可视化 Docker
简易制作MCP服务器并测试
本文介绍了如何简易制作并测试MCP服务器,包括环境搭建、代码实现及Docker部署。首先通过uv包创建项目,在main.py中定义MCP服务器及其工具和资源函数。接着详细说明了在Windows上安装uv、配置Docker镜像加速、生成requirements.txt文件以及编写Dockerfile的过程。最后,通过构建和运行Docker容器部署MCP服务器,并使用Node.js工具测试其功能,确保服务器正常工作。此教程适合初学者快速上手MCP服务器的开发与部署。
2770 63
|
4月前
|
云安全 弹性计算 安全
阿里云服务器安全功能解析:基础防护与云安全产品参考
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题。阿里云服务器除了提供基础的防护之外,还提供了一系列安全防护类云产品,以确保用户云服务器的安全。本文将详细介绍阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品,帮助用户更好地理解和使用阿里云服务器的安全功能。
|
12月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
9月前
|
机器学习/深度学习 自然语言处理 API
阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
DeepSeek R1是基于Transformer架构的先进大规模深度学习模型,2025年1月20日发布并开源,遵循MIT License。它在自然语言处理等任务上表现出色,高效提取特征,缩短训练时间。阿里云推出的满血版方案解决了服务器压力问题,提供100万免费token,云端部署降低成本,用户可快速启动体验。虽然回答速度有待提升,但整体表现优异,备受关注。
323 8
|
9月前
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
官网繁忙不用怕!现在跟我一起通过视频学习阿里云《零门槛、即刻拥有 DeepSeek-R1 满血版》技术解决方案,最快两步三分钟就能拥有 免费!满血版!随时可用!支持联网搜索!带有个人知识库(RAG)!的DeepSeek 模型能力!!!
290 0
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
|
10月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
11月前
|
弹性计算 运维 监控
云产品评测:云服务诊断 — ECS实例健康状态与诊断功能体验
作为一名运维工程师,我日常管理和维护云资源,确保服务稳定运行。阿里云的云服务诊断功能提供了便捷的方式实时了解和优化ECS实例的健康状态。通过健康状态功能,我能够查看CPU、内存等指标,及时发现并解决性能瓶颈,提升了约30%的工作效率。诊断功能则帮助我快速定位复杂问题,减少了40%的诊断时间,并提供详细的优化建议。尽管功能已很强大,但仍建议进一步细化诊断结果和增加自定义告警选项,以提升使用体验。我非常推荐此工具给其他运维人员。
261 22
|
10月前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
258 10
|
11月前
|
弹性计算 运维 开发者
关于ECS 健康状态 诊断功能评测
这是一位开发兼运维工程师的观点,认为云资源的健康状态和诊断功能作用有限,因为大多数问题根源在于代码质量,而这些工具无法改善低下的代码质量导致的资源异常。

热门文章

最新文章