servlet输出一个文件

本文介绍了一个使用Java实现的导出Excel文件的具体示例,包括如何设置响应头、内容类型、读取文件并将其输出到客户端的过程。

String fileName= file.getName();
   //重新设置相应。
   response.reset();
   //设置内容文件的类型  一般有pdf , word execl 各有不同的设置。
//   response.setContentType("APPLICATION/OCTET-STREAM");
   response.setContentType("application/vnd.ms-excel");
   fileName=response.encodeURL(new String(fileName.getBytes(),"UTF-8"));//转码
   //以附件的形式提示用户下载, 就是你在浏览器打开那个servlet 时将弹出对话框提//示你下载还是保存。
   response.setHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
   //得到响应的输出流  即向客户端输出信息的输出流。
   ServletOutputStream out = response.getOutputStream();
   InputStream inStream=new FileInputStream(file);
   byte[] b = new byte[1024];
   int len;
   while((len=inStream.read(b)) >0)
   out.write(b,0,len);
   response.setStatus( response.SC_OK );
   response.flushBuffer();
   out.close();
   inStream.close();

### 创建一个简单的 Java Servlet 文件 为了创建并运行一个基本的 Java Servlet,需要遵循特定结构和导入必要的包。下面展示了一个简单 HTTP 请求处理程序的例子。 #### 导入所需库 首先,确保项目中包含了 `javax.servlet` 和其他相关依赖项。这些通常通过 Maven 或 Gradle 来管理,在此假设已经设置好环境。 ```java import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; ``` #### 定义 Servlet 类 接下来定义继承自 `HttpServlet` 的类,并重写相应的方法来处理 GET/POST 请求: ```java public class SimpleServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html"); // 获取输出流用于发送 HTML 响应给浏览器 try (PrintWriter out = response.getWriter()) { /* 输出HTML*/ out.println("<html><body>"); out.println("<h2>Hello from my custom servlet!</h2>"); out.println("</body></html>"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理 POST 请求可以在这里实现逻辑... doGet(request, response); } } ``` 上述代码展示了如何构建最基本的 Servlet 功能[^1]。注意这里实现了两个方法:`doGet()` 和 `doPost()`,分别用来处理来自客户端的不同类型的请求。 对于更复杂的应用场景,还可以考虑增加更多功能,比如支持文件上传下载、分块传输编码以及 GZIP 压缩等功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值