[英]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.