簡體   English   中英

捕獲JSP輸出,保存到文件

[英]Capture JSP output, save to file

我的任務是嘗試創建一個將創建自定義HTML模板的網站。 定制基於用戶輸入進行定制。 我目前在其余的前端使用tomcat / JSP。 我想做的是在JSP中創建HTML模板以輸出條件HTML代碼,但是我不想將此HTML輸出顯示給用戶,而是希望將此代碼保存到多個文件中(然后將其壓縮並傳遞到用戶以及圖片,css文件,js文件)。 我需要知道如何創建一個將執行JSP文件的虛假容器(過程包括並評估變量)。

我讀過有關使用服務器過濾器攔截JSP代碼輸出的信息,但我不確定這是否可行,因為a)我需要創建多個HTML文件,b)我需要向用戶顯示不同的內容(即,這是您的zip文件) (下載),而不是正在處理的JSP的輸出。

謝謝!

這是一個主意。 創建一個Servlet來接受用戶的輸入,從Servlet使用java.net.HttpURLConnection將輸入傳遞到JSP頁面並獲得結果。

URL urlPage = new URL(url);
HttpURLConnection conn = (HttpURLConnection)urlPage.openConnection();
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

//then loop through lines of webpage with br.readLine();

然后在您的servlet中,您可以壓縮所有拉出的文件並將其返回給用戶

您可以通過打開URLConnection,然后將輸出讀入臨時文件或緩沖區來使Servlet調用JSP。 然后將其壓縮並寫出壓縮文件。

我確實不確定我是否理解您的問題,但是我會對此稍作討論。 為什么不創建一個servlet並使用以下命令調用您的jsp文件:


    RequestDispatcher d = getServletContext().getRequestDispatcher(jspName);
    d.forward(request, response);

讓jsp用表格/用戶輸入的值顯示前端。 填寫完表格后,提交表格。 此時,jsp將把上下文返回到Servlet,您可以在其中解析值,確定要創建的文件並返回給用戶。 確定要顯示給用戶的內容后,將其放入另一個jsp中,並將上下文傳遞給該jsp。

您可以通過2種方式執行此操作。 您可以為要返回的不同文件類型創建一個不同的jsp,只需調用適當的文件即可。 或者,您可以將所需的任何結構/值嵌入到jsp中,然后將它們放入jsp中,從而將它們傳遞給jsp。 您可以使用此事實來創建單個jsp,該jsp基於傳入的參數(嵌入在請求中)將顯示正確的信息。

如果我完全沒有回答您的問題,請隨時刪除此回復。

編輯:無論哪種方式,您都必須將值嵌入請求中。

為什么不使用wget? 您可以將頁面加載到實際容器中,然后使用wget從容器中檢索生成的頁面。

--input-file=FILE read URLs from file.

在wget中使用此選項將獲取文件中的URL列表,並為您下載它們,就像文本將顯示在瀏覽器的view-src中一樣。

wget也可用於Windows和Linux。

您也可以嘗試使用專門為此類工作設計的許多輕模板引擎中的某些。 這是我在執行類似任務且從未回頭時所做的事情。 例如查看速度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM