Glassfish サーバーの出力を HttpServletResponse.out にリダイレクトする方法は? NetBeans でサーブレットを作成しています。
質問する
497 次
2 に答える
1
これが実際の例です。これをサーブレットとして公開するだけです
public class ReadLogs extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.append("<html>\n<head>\n\n");
out.append("<script>function toBottom()" + "{"
+ "window.scrollTo(0, document.body.scrollHeight);" + "}");
out.append("\n</script>");
out.append("\n</head>\n<body onload=\"toBottom();\">\n<pre>\n");
try {
File file = new File("C:\\pathToServerLogFile");
BufferedReader in = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
while (in.ready()) {
String x = in.readLine();
sb.append(x).append("<br/>");
}
in.close();
out.append("\n</pre>\n</body>\n</html>");
out.close();
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
アップデート
ファイルの最後の部分だけを印刷する必要がある場合は、「in.close();」行の後にこれを使用します。
//print only 1MB Oof data
if(sb.length()>1000000){
out.append(sb.substring(sb.length()-1000000, sb.length()));
}else{
out.append(sb.toString());
}
于 2012-08-16T14:55:10.993 に答える
0
だから..スクリプトを呼び出した後に現れた行だけを印刷するために、私はそのようなコードを作りました:
BufferedReader reader = new BufferedReader(new FileReader("/path/to/server/log/server.log"));
int lines = 0;
while (reader.readLine() != null) {
lines++;
}
reader.close();
BufferedReader reader2 = new BufferedReader(new FileReader("/path/to/server/log/server.log"));
String strLine;
int i = 0;
while (i != lines) {
reader2.readLine();
i++;
}
while ((strLine = reader2.readLine()) != null) {
out.println(stringToHTMLString(strLine));
out.println("<br>");
}
reader2.close();
サーブレットが起動すると、サーバー ログの行がカウントされ (変数 i に保存されます)、アクション フォームをクリックすると、インデックスが i より大きい行が読み込まれ、html ページに表示されます。stackoverflow のどこかで見つけた関数 stringToHTMLString を使用しました。
挨拶します。
于 2012-09-05T08:07:01.673 に答える