- package com.html;
- 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;
- public class HtmlDemo extends HttpServlet
- {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
- this.doPost(req, resp);
- }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
- RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/index.jsp");
- final ByteArrayOutputStream byteos = new ByteArrayOutputStream();
- final ServletOutputStream stream = new ServletOutputStream()
- {
- //只是处理字节流,而PrintWriter则是处理字符流,和
- public void write(byte[] data, int offset, int length)
- {
- byteos.write(data, offset, length);
- }
- public void write(int b) throws IOException
- {
- byteos.write(b);
- }
- };
- final PrintWriter printw= new PrintWriter(new OutputStreamWriter(byteos,"UTF-8")); //进行编码转换,当输出流从比特流转换为字符流的时候设置才是有效的。
- HttpServletResponse rep = new HttpServletResponseWrapper(resp)
- {
- @Override
- public ServletOutputStream getOutputStream() {
- return stream;
- }
- @Override
- public PrintWriter getWriter() {
- return printw;
- }
- };
- dispatcher.include(req, rep);
- printw.flush();
- FileOutputStream fileos = new FileOutputStream("/index_jsp.html", false); // 把jsp输出的内容写到xxx.htm
- byteos.writeTo(fileos);
- fileos.close();
- }
- }
转载于:https://my.oschina.net/mengdejun/blog/9434