代码之家  ›  专栏  ›  技术社区  ›  radicaled

在JSP上显示文件内容

jsp
  •  0
  • radicaled  · 技术社区  · 6 年前

    我正在尝试使用一个示例应用程序来显示/tmp目录中的文件内容。


    这是我正在使用的代码:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1" import="java.io.*, java.net.*"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>JSP Reading Text File</title>
    </head>
    <body>
        <%
        String fileName = "/WEB-INF/test";
        InputStream ins = application.getResourceAsStream(fileName);
        try {
            if (ins == null) {
                response.setStatus(response.SC_NOT_FOUND);
            } else {
                BufferedReader br = new BufferedReader((new InputStreamReader(ins)));
                String data;
                while ((data = br.readLine()) != null) {
                    out.println(data + "<br>");
                }
            }
        } catch (IOException e) {
            out.println(e.getMessage());
        }
        %>
    </body>
    </html>
    

    如果该文件位于应用程序的WEB-INF目录中,则显示它不会有问题。

    2 回复  |  直到 6 年前
        1
  •  0
  •   radicaled    6 年前

    <%@page import="java.io.File"%>
    <%@page import="java.io.InputStreamReader"%>
    <%@page import="java.net.URL"%>
    <%@page import="java.io.FileReader"%>
    <%@page import="java.io.BufferedReader"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Read Text</title>
        </head>
        <body>
            <%
                BufferedReader reader = new BufferedReader(new FileReader("/tmp/test"));
                StringBuilder sb = new StringBuilder();
                String line;
    
                while((line = reader.readLine())!= null){
                    out.println(line+"<br>");
                }
                out.println(sb.toString());
            %>
        </body>
    </html>