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