Java 将包含的文件输出存储到变量中

Java 将包含的文件输出存储到变量中,java,jstl,Java,Jstl,我目前正在从事一个使用JSP的项目,但是我们不使用JSTL,而是使用Java 我知道我们可以使用JSTL <c:set var="body"> <jsp:include page="...jsp"/> </c:set> <c:out value="${body}"/> 然而,我们正试图远离这一点,使用纯Java实现 我们是否可以刷新JspWriter,将文件包含在pageContext中,然后将包含的内容存储到变量中 来自PHP的背景,我知道我

我目前正在从事一个使用JSP的项目,但是我们不使用JSTL,而是使用Java

我知道我们可以使用JSTL

<c:set var="body">
<jsp:include page="...jsp"/>
</c:set>

<c:out value="${body}"/>
然而,我们正试图远离这一点,使用纯Java实现

我们是否可以刷新JspWriter,将文件包含在pageContext中,然后将包含的内容存储到变量中

来自PHP的背景,我知道我们可以使用ob_start等,所以我们希望在Java中也能这样做吗

任何想法都会受到欢迎

非常感谢


加文这是一个不同寻常的问题。大多数情况下,我们都在试图摆脱JSP中的java代码。但是,如果您真的不想使用JSTL,那么您可以尝试以下代码

<%@ page import="java.net.*,java.io.*"  %>
<%
   StringBuffer requestURL = request.getRequestURL();
   String servletPath = request.getServletPath();
   String contextURL = requestURL.substring(0, requestURL.indexOf(servletPath) + 1);
   URL url = new URL(contextURL + "otherPage.jsp");
   URLConnection conn = url.openConnection();
   BufferedReader in = new BufferedReader(new   InputStreamReader(conn.getInputStream()));
   String inputLine;
   StringBuilder sb = new StringBuilder();
   while ((inputLine = in.readLine()) != null)sb.append(inputLine);
   in.close();
   pageContext.setAttribute("otherPage", sb);
%>
${otherPage}

这是一个不同寻常的问题。大多数情况下,我们都在试图摆脱JSP中的java代码。但是,如果您真的不想使用JSTL,那么您可以尝试以下代码

<%@ page import="java.net.*,java.io.*"  %>
<%
   StringBuffer requestURL = request.getRequestURL();
   String servletPath = request.getServletPath();
   String contextURL = requestURL.substring(0, requestURL.indexOf(servletPath) + 1);
   URL url = new URL(contextURL + "otherPage.jsp");
   URLConnection conn = url.openConnection();
   BufferedReader in = new BufferedReader(new   InputStreamReader(conn.getInputStream()));
   String inputLine;
   StringBuilder sb = new StringBuilder();
   while ((inputLine = in.readLine()) != null)sb.append(inputLine);
   in.close();
   pageContext.setAttribute("otherPage", sb);
%>
${otherPage}