Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 355|回复: 0

[jsp学习]用servlet将jsp文件内容转为htm

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-1 21:30:10 | 显示全部楼层 |阅读模式
    Servlet将jsp文件内容转为HTML。代码如下: package examples;
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter; import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletResponseWrapper;
      
      
    1. public class ToHtml extends HttpServlet {
    2. private static final String CONTENT_TYPE = "text/html; charset=GBK";
    3. // Initialize global variables
    4. public void init() throws ServletException {
    5. }

    6. // Process the HTTP Get request
    7. public void doGet(HttpServletRequest request, HttpServletResponse response)
    8.    throws ServletException, IOException {
    9.       response.setContentType(CONTENT_TYPE);
    10.       service(request, response);
    11.   /**
    12.    * 只有成功初始化后此方法才能被调用处理用户请求。前一个参数提供访问初始请求数据的方法和字段,
    13.    * 后一个提供servlet构造响应的方法。
    14.    */
    15. }
    16. // Process the HTTP Post request
    17. public void doPost(HttpServletRequest request, HttpServletResponse response)
    18.    throws ServletException, IOException {
    19.   doGet(request, response);
    20. }
    21. public void destroy() {
    22. }
    23. public void service(HttpServletRequest request, HttpServletResponse response)
    24.    throws ServletException, IOException {

    25.   ServletContext sc = getServletContext();
    26.   String url = "/index.jsp";
    27.   
    28.   String name = "index.htm"; // 这是生成的html文件名
    29.    
    30.   String pName = "e:\Tomcat 5.5\webapps\jspTohtml\index.htm"; // 生成html的完整路径
    31.   RequestDispatcher rd = sc.getRequestDispatcher(url);
    32.   final ByteArrayOutputStream os = new ByteArrayOutputStream();
    33.   final ServletOutputStream stream = new ServletOutputStream() {
    34.    public void write(byte[] data, int offset, int length) {
    35.     os.write(data, offset, length);
    36.    }
    37.    public void write(int b) throws IOException {
    38.     os.write(b);
    39.    }
    40.   };
    41.   final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
    42.   HttpServletResponse rep = new HttpServletResponseWrapper(response) {
    43.    public ServletOutputStream getOutputStream() {
    44.     return stream;
    45.    }
    46.    public PrintWriter getWriter() {
    47.     return pw;
    48.    }
    49.   };
    50.   rd.include(request, rep);
    51.   pw.flush();
    52.   FileOutputStream fos = new FileOutputStream(pName); // 把jsp输出的内容写到指定路径的htm文件中
    53.   os.writeTo(fos);
    54.   fos.close();
    55.   response.sendRedirect(name); // 书写完毕后转向htm页面
    56. }
    57. }
    58. 在web.xml文件中配置:
    59. <servlet>
    60.     <servlet-name>Tohtml</servlet-name>
    61.     <servlet-class>examples.ToHtml</servlet-class>
    62. </servlet>
    63. <servlet-mapping>
    64.     <servlet-name>Tohtml</servlet-name>
    65.     <url-pattern>/Tohtml</url-pattern>
    66.   </servlet-mapping>

    67. 下面是用来测试的index.jsp:
    68. <%@ page contentType="text/html; charset=gb2312" %>
    69. <html>
    70.   <head>
    71.     <title>Cache Filter Test</title>
    72.    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    73.   </head>
    74.   <body>
    75. 简单测试:s=
    76. <%
    77. int s=0;
    78. // mock time-consuming code
    79. for (int i=0;i<1000;i++) {
    80.    for (int j=0;j<1000;j++) {
    81.      s=s+j;
    82.    }
    83. }
    84. out.print(s);
    85. %>
    86.   </body>
    87. </html>
    88. 效果图:
    89. [img]http://img.javaxxz.com/2014/10/1/213009875.jpg[/img]
    复制代码

       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/1/213010312.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-22 04:16 , Processed in 0.448114 second(s), 48 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表