1、我在调试的的这个输出PDF文件的servlet类,是在工程中配置后直接访问的servlet,web.xml的配置内容为:
<servlet>
<servlet-name>PDFServlet</servlet-name>
<servlet-class>com.pdftest.PDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PDFServlet</servlet-name>
<url-pattern>/servlet/PDFServlet</url-pattern>
</servlet-mapping>
2、servlet类的内容为:
package com.pdftest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
this.doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
//创建文档对象,A4纸大小
Document document = new Document(PageSize.A4);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
PdfWriter writer = PdfWriter.getInstance(document, stream);
//设置文档作者
document.addAuthor("Hutton");
//设置文档标题
document.addTitle("this is itext pdf file");
//设置主题
document.addSubject("First PDF");
//设置关键字
document.addKeywords("iText");
//打开文档
document.open();
//在pdf文件中写入文字
document.add(new Paragraph("Hello World,Hello iText"));
//关闭文档
document.close();
} catch (Exception e) {
e.printStackTrace();
}
//设置响应文档类型为pdf
response.setContentType("application/pdf");
//设置响应数据大小
response.setContentLength(stream.size());
//获取响应数据流
ServletOutputStream out = response.getOutputStream();
//将pdf数据流写入响应数据流中
stream.writeTo(out);
out.flush();
out.close();
}
}
分享到:
相关推荐
Servlet技术不仅能够提升Web应用的性能和可扩展性,还为开发者提供了一种灵活的方式来处理复杂的业务逻辑。 #### 二、Servlet与JSP的关系 Servlet与JSP(Java Server Pages)都是Java Web开发的重要组成部分,但...
其中,第二个参数可以是任何一种流,你可以写入文件中或者直接输出到 servlet 等等。 打开 Document 创建了 Writer 实例后,需要打开 Document 对象,以便开始生成 PDF 文件: ```java document.open(); ``` 请...
以上概述了《JSP Servlet.pdf》文件中提到的关键知识点和技术细节。JSP作为一项重要的Web开发技术,在实际应用中扮演着非常重要的角色。通过深入理解这些概念和技术,开发者能够更好地构建动态网页和Web应用程序。
3. **Servlet API**:介绍了`HttpServletRequest`和`HttpServletResponse`接口,以及它们用于获取请求参数、设置响应头和输出响应内容的方法。 4. **Servlet配置**:讲解了如何在`web.xml`部署描述符中配置Servlet,...
使用`java.io`包中的类,如`FileInputStream`和`ServletOutputStream`,从服务器的文件系统读取文件内容,并将其写入到响应输出流中。这将把文件内容实际发送到客户端。 5. **配置Web应用** 将项目解压后,将其...
《JSP+Servlet+Tomcat应用开发从零开始学》这本书是针对初学者设计的一本教程,旨在帮助读者从零基础开始...书中的PDF版本方便你随时随地进行学习,而压缩包中的"还是空.txt"和"空.txt"可能是无关的文件,可以忽略。
从提供的文件内容中,我们可以提取出关于Tomcat开发JSP与Servlet的关键知识点。下面将对这些知识点进行详细说明: 1. Tomcat服务器简介: - Apache Tomcat是一个开源的Servlet容器,它实现了Java Servlet和Java...
// 输出流必须关闭,否则生成的PDF文件可能损坏 response.getOutputStream().close(); } } ``` #### 七、结论 Servlet作为一种强大的Web开发技术,在处理复杂的业务逻辑、生成动态内容等方面具有显著优势。结合...
Servlet 3.1 引入了注解驱动的配置方式,使得开发者可以在不使用 web.xml 文件的情况下完成 Servlet 的配置。通过使用 `@WebServlet`、`@WebFilter` 和 `@WebListener` 等注解,可以轻松定义 Servlet、过滤器和监听...
通过File类提供的delete()方法,可以直接删除文件系统中的PDF文件。在执行删除操作前,务必检查权限,并确保没有其他进程正在使用该文件。 5. **PDF修改**: PDF文件的修改较为复杂,因为PDF格式是静态且二进制的...
Servlet和JSP是Java Web开发中的核心技术,..."Servlet与JSP核心编程(第2版第1卷).pdf"这本书很可能是对这些概念的深入讲解,涵盖了从基础到进阶的各种主题,对于想要提升Java Web技能的开发者来说是一份宝贵的资源。
1. **文件准备**:这可能包括从数据库、文件系统或其他数据源获取数据,然后将这些数据转换为文件格式,如CSV、Excel、PDF等。例如,你可能会创建一个CSV字符串,或者使用Apache POI库来构建一个Excel工作簿。 2. *...
首先,需要将Tomcat服务器的`lib`目录下的`servlet-api.jar`文件添加到`CLASSPATH`中,因为这个JAR文件包含了Servlet接口的实现类。接着,使用`javac`命令编译Servlet类文件,生成`.class`字节码文件。然后,将编译...
最后,为了使用户能够下载PDF文件,你需要在JSP页面上创建一个链接或按钮,触发上述Servlet。例如,可以创建一个`<a>`标签,链接到Servlet,并附带HTML内容作为请求参数: ```jsp ${pageContext.request.context...
在 JSP 文件中,可以使用表单将用户输入发送到 Servlet,并使用 HttpServletResponse 对象设置响应内容类型和输出响应信息。 使用 @WebServlet 注解可以简化 Servlet 的配置,减少 web.xml 文件中的配置项。Servlet...
标题中的“JasperReport浏览器输出PDF为空白页”通常意味着在使用JasperReport生成PDF报表时,浏览器未能正确显示内容。这可能是由多种原因引起的,包括但不限于以下几点: 1. **XML解析错误**:`test.jrxml`文件是...
4. **读取文件并输出**:使用Java的`java.io`包中的`FileInputStream`读取文件内容,然后通过`HttpServletResponse`的`getOutputStream()`方法获取输出流,将文件内容写入到这个输出流中。 5. **处理迅雷下载**:...
### jsp+java类+servlet实现文件读取、写入的功能 #### 一、概述 在Web开发领域,特别是基于Java的技术栈中,文件的读取与写入是非常常见的需求之一。通过结合JSP(JavaServer Pages)、Java类以及Servlet技术,...
Servlet API提供了`Part`接口处理多部分形式的数据,如文件上传,而文件下载通常涉及设置响应头以指示文件类型和大小,以及提供下载内容的输出流。 总结来说,Servlet是Web应用的基石,它结合HttpServletRequest和...
6. **HTTP请求和响应**:在Web应用中,用户通过HTTP请求发送文件转换请求,servlet接收请求,处理后返回PDF文件作为HTTP响应的一部分。 7. **安全性考虑**:在实际部署中,需注意文件上传的安全性,防止恶意文件...