⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmlproxytestviewmanager.java

📁 pojo的mvc框架
💻 JAVA
字号:
package xyz.frame.plugin;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;import org.apache.log4j.Logger;import xyz.frame.LogicRequest;import xyz.frame.scope.RequestContext;import xyz.frame.view.ViewException;import xyz.frame.view.ViewManager;public class HtmlProxyTestViewManager implements ViewManager {	private static final Logger logger = Logger			.getLogger(HtmlProxyTestViewManager.class);	private final ViewManager manager;	public HtmlProxyTestViewManager(ViewManager viewManager) {		logger.debug("Creating html proxy view manager");		this.manager = viewManager;	}	public void forward(LogicRequest logicRequest, String result,			HttpServletRequest request, HttpServletResponse response)			throws ViewException {		ByteArrayOutputStream stream = new ByteArrayOutputStream();		manager.forward(logicRequest, result, request, wrapResponse(response,				stream));		writeResult(logicRequest.getRequestContext(), response, stream				.toByteArray());	}	private HttpServletResponse wrapResponse(HttpServletResponse response,			final OutputStream stream) {		final ServletOutputStream sos = new ServletOutputStream() {			@Override			public void write(int b) throws IOException {				stream.write(b);			}		};		final PrintWriter writer = new PrintWriter(sos, true);		return new HttpServletResponseWrapper(response) {			@Override			public PrintWriter getWriter() throws IOException {				return writer;			}			@Override			public ServletOutputStream getOutputStream() throws IOException {				return sos;			}		};	}	private void writeResult(RequestContext request,			HttpServletResponse response, byte[] bs) throws ViewException {		String result = (String) request				.getAttribute(HtmlTestCreator.CREATOR_ID);		try {			OutputStream os = response.getOutputStream();			PrintWriter writer = new PrintWriter(os, true);			writer.println(result);			writer.println("<!-- original result-->");			os.write(bs);		} catch (IOException e) {			throw new ViewException("Unable to output html proxy test.");		}	}	public void directForward(LogicRequest logicRequest, String result,			HttpServletRequest request, HttpServletResponse response,			String forwardUrl) throws ViewException {		ByteArrayOutputStream stream = new ByteArrayOutputStream();		manager.directForward(logicRequest, result, request, wrapResponse(				response, stream), forwardUrl);		writeResult(logicRequest.getRequestContext(), response, stream				.toByteArray());	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -