Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何打开位于WEB-INF中的文件?_Java_Jsp_Servlets_Inputstream - Fatal编程技术网

Java 如何打开位于WEB-INF中的文件?

Java 如何打开位于WEB-INF中的文件?,java,jsp,servlets,inputstream,Java,Jsp,Servlets,Inputstream,我的servlet允许用户上传文件,我创建了一个按钮来查看上传的文件 现在,点击那个按钮,我想打开上传的文件。如何在JSP端或servlet.java端执行此操作 它位于WEB-INF/Uploads/my.txt文件夹中 ======================================================编辑========================================= 根据下面的答案,我修改了我的代码,并将相同的代码粘贴到此处以获取更多答案 pro

我的servlet允许用户上传文件,我创建了一个按钮来查看上传的文件

现在,点击那个按钮,我想打开上传的文件。如何在JSP端或servlet.java端执行此操作

它位于WEB-INF/Uploads/my.txt文件夹中

======================================================编辑=========================================

根据下面的答案,我修改了我的代码,并将相同的代码粘贴到此处以获取更多答案

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    ServletContext context = getServletContext();
    String path = context.getRealPath("/u/poolla/workspace/FirstServlet/WebContent/WEB-INF/Uploads/Config.txt");
    FileReader reader = new FileReader(path);
    BufferedReader br = new BufferedReader(reader);
    String firstline = br.readLine();
    System.out.println(firstline);

}
PS:这不起作用,仍在寻找答案。
谢谢大家!

您可以使用ServletContext执行此操作:

ServletContext#getResourceAsStream()

据我所知,类加载器只能访问WEB-INF/classes和WEB-INF/lib,而不能访问WEB-INF/Uploads。尝试将文件放入classes子文件夹。

您可以使用ServletContext:

ServletContext#getResourceAsStream()

据我所知,类加载器只能访问WEB-INF/classes和WEB-INF/lib,而不能访问WEB-INF/Uploads。尝试将文件放入classes子文件夹。

您可以使用ServletContext:

ServletContext#getResourceAsStream()

据我所知,类加载器只能访问WEB-INF/classes和WEB-INF/lib,而不能访问WEB-INF/Uploads。尝试将文件放入classes子文件夹。

您可以使用ServletContext:

ServletContext#getResourceAsStream()

据我所知,类加载器只能访问WEB-INF/classes和WEB-INF/lib,而不能访问WEB-INF/Uploads。尝试将该文件放在classes子文件夹中。

如果它是一个图像文件,那么您可以使用jstl标记执行以下操作

<img src="<c:url value='Uploads/yourImg.png' />">

如果文件名不是固定的,那么在jsp中使用
从jsp页面获取文件名

如果是图像文件,那么您可以使用jstl标记执行以下操作

<img src="<c:url value='Uploads/yourImg.png' />">

如果文件名不是固定的,那么在jsp中使用
从jsp页面获取文件名

如果是图像文件,那么您可以使用jstl标记执行以下操作

<img src="<c:url value='Uploads/yourImg.png' />">

如果文件名不是固定的,那么在jsp中使用
从jsp页面获取文件名

如果是图像文件,那么您可以使用jstl标记执行以下操作

<img src="<c:url value='Uploads/yourImg.png' />">

如果文件名不是固定的,那么在jsp中使用
从Java类中的jsp页面获取文件名:如果需要直接访问,那么必须像

public class FileReader extends HttpServlet {
....
....
....
  public void readAFile(){
    ServletContext servletContext=super.getServletContext();
    InputStream initFileStream = servletContext.getResourceAsStream("/WEB-INF/<path>");
    //TODO : according to your need
  }
{

在Java类中:如果您需要直接访问,那么您必须像

public class FileReader extends HttpServlet {
....
....
....
  public void readAFile(){
    ServletContext servletContext=super.getServletContext();
    InputStream initFileStream = servletContext.getResourceAsStream("/WEB-INF/<path>");
    //TODO : according to your need
  }
{

在Java类中:如果您需要直接访问,那么您必须像

public class FileReader extends HttpServlet {
....
....
....
  public void readAFile(){
    ServletContext servletContext=super.getServletContext();
    InputStream initFileStream = servletContext.getResourceAsStream("/WEB-INF/<path>");
    //TODO : according to your need
  }
{

在Java类中:如果您需要直接访问,那么您必须像

public class FileReader extends HttpServlet {
....
....
....
  public void readAFile(){
    ServletContext servletContext=super.getServletContext();
    InputStream initFileStream = servletContext.getResourceAsStream("/WEB-INF/<path>");
    //TODO : according to your need
  }
{

在Servlet类中,可以使用以下代码:

ServletContext context = getServletContext();
String path = context.getRealPath("/WEB-INF/Uploads/my.txt");
那么路径应该是正确的。然后您可以使用普通的文件读取器:

FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String firstline = br.readLine();
System.out.println(firstline);
...

在Servlet类中,可以使用以下代码:

ServletContext context = getServletContext();
String path = context.getRealPath("/WEB-INF/Uploads/my.txt");
那么路径应该是正确的。然后您可以使用普通的文件读取器:

FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String firstline = br.readLine();
System.out.println(firstline);
...

在Servlet类中,可以使用以下代码:

ServletContext context = getServletContext();
String path = context.getRealPath("/WEB-INF/Uploads/my.txt");
那么路径应该是正确的。然后您可以使用普通的文件读取器:

FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String firstline = br.readLine();
System.out.println(firstline);
...

在Servlet类中,可以使用以下代码:

ServletContext context = getServletContext();
String path = context.getRealPath("/WEB-INF/Uploads/my.txt");
那么路径应该是正确的。然后您可以使用普通的文件读取器:

FileReader reader = new FileReader(path);
BufferedReader br = new BufferedReader(reader);
String firstline = br.readLine();
System.out.println(firstline);
...

尝试执行以下操作:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
然后阅读URL内容,如下所示:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
请给我一些反馈


希望有帮助

尝试执行以下操作:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
然后阅读URL内容,如下所示:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
请给我一些反馈


希望有帮助

尝试执行以下操作:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
然后阅读URL内容,如下所示:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
请给我一些反馈


希望有帮助

尝试执行以下操作:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
然后阅读URL内容,如下所示:

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/Uploads/my.txt");
  BufferedReader br = new BufferedReader(new InputStreamReader(
               is));

int value=0;

         // reads to the end of the stream 
         while((value = br.read()) != -1)
         {
            // converts int to character
            char c = (char)value;

            // prints character
            System.out.println(c);
         }
请给我一些反馈



希望有帮助

也许它不是上传文件的最佳地方(你想在你的应用程序中在同一磁盘分区中拥有这种内容吗?)也许你应该考虑上传你的文件到一个与你的操作人员(也许是NAS)一致的位置,并保持一些文件系统的路径。但到目前为止,我选择了这只是一个随机的位置,将来可能会改变它。也许它不是上传文件的最佳地方(你想在你的应用程序中在同一磁盘分区中拥有这种内容吗?)也许你应该考虑把你的文件上传到与你的操作人员一致的位置(也许是NAS?)并在某些.properties或databaseYah中保留文件系统的路径!但到目前为止,我选择了这只是一个随机的位置,将来可能会改变它。也许它不是上传文件的最佳地方(你想在你的应用程序中在同一磁盘分区中拥有这种内容吗?)也许你应该考虑把你的文件上传到与你的操作人员一致的位置(也许是NAS?)并在某些.properties或databaseYah中保留文件系统的路径!但到目前为止,我选择了这只是一个随机的位置,将来可能会改变它。也许它不是上传文件的最佳地方(你想在你的应用程序中在同一磁盘分区中拥有这种内容吗?)也许你应该考虑把你的文件上传到与你的操作人员一致的位置(也许是NAS?)并在某些.properties或databaseYah中保留文件系统的路径!但到目前为止,我已经选择了这只是一个随机位置,可能会在将来更改它。这是一个文本文件,我可以使用这种方法吗?顺便说一句,我需要在doget方法中的.java端执行此操作。在java中,您可以读取未显示的文件。为了显示,您必须始终使用jsp页面。您可以在控制台中看到该文件的内容!好的,那么你想让我在我的jsp页面上给出这个吗?这取决于你。在java文件中,您可以修改内容,为了显示jsp文件,最好将代码放在这里,这样就很容易理解您想要的内容。如果是文本文件,我可以使用这种方法吗?顺便说一句,我需要在doget方法中的.java端执行此操作。在java中,您可以读取未显示的文件。为了显示您始终必须使用jsp