Java servlets:从项目目录外部显示图像

Java servlets:从项目目录外部显示图像,java,jsp,tomcat,servlets,Java,Jsp,Tomcat,Servlets,我正在使用netbeans IDE开发JAVA web项目,我想显示项目目录外文件夹中的一些图像,通过我的servlet上传后,下面是我的代码: web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

我正在使用netbeans IDE开发JAVA web项目,我想显示项目目录外文件夹中的一些图像,通过我的servlet上传后,下面是我的代码:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>views/index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>controllers.LoginController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>index</servlet-name>
        <jsp-file>/views/index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>students</servlet-name>
        <servlet-class>controllers.StudentController</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>students</servlet-name>
        <url-pattern>/students</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>books</servlet-name>
        <servlet-class>controllers.BookController</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>books</servlet-name>
        <url-pattern>/books</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>admins</servlet-name>
        <servlet-class>controllers.AdminController</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>admins</servlet-name>
        <url-pattern>/admins</url-pattern>
    </servlet-mapping>

    <context-param>
            <param-name>uploads</param-name>
            <param-value>C:/Users/mohammad/Documents/NetBeansProjects/uploads</param-value>
    </context-param>

</web-app>

30
views/index.jsp
登录
controllers.LoginController
登录
/登录
指数
/views/index.jsp
指数
/索引
学生
控制器。学生控制器
学生
/学生
书
控制器
书
/书
管理员
controllers.AdminController
管理员
/管理员
上传
C:/Users/mohammad/Documents/NetBeansProjects/uploads
jsp中的img:

<img src="C:/Users/mohammad/Documents/NetBeansProjects/uploads/name.jpg"/>

servlet:

我在json对象中发送它:

object.add("<img src=\""+getServletContext().getInitParameter("uploads")+"/"+book.getImage()+"\"/>");
object.add(“”);

我确信该图像存在于该文件夹中,但无法加载,这里有什么问题?

您应该在图像扩展名的web.XML文件上添加过滤器,该文件实际指定哪些类型的外部资源可以通过前端控制器传递。。请你发布你的web.xml好吗


您可以尝试此链接

在json中添加图像文件或仅添加文件名??如果您想在json中添加图像,您需要首先用BASE64字符串对其进行编码,然后将其发送到JSP,然后解码,然后在JSP上呈现。但如果你只想把图像的完整绝对路径放进去,那就没问题了。。我不知道在JSON中添加了什么样的图像信息(位置或文件本身)。是的,我的意思是我添加了它的位置,而不是文件本身!