首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取JSP应用程序中某个项目文件夹中的图像

如何读取JSP应用程序中某个项目文件夹中的图像
EN

Stack Overflow用户
提问于 2015-07-29 10:53:22
回答 1查看 669关注 0票数 0

我的项目目录如下所示。

代码语言:javascript
运行
复制
Web Application
|__Web Pages
| |  |__img
|  |    |__membershipcard.png
|   |__ImageCreator.jsp
|
|__Source Packages
   |__Functions
      |__CardCreator.java

我有一个Java函数,它读取位于img文件夹中的Image,Java类如下所示。

代码语言:javascript
运行
复制
public class CardCreator {

public static String MembershipCard() throws IOException {
    String ImgUrl = "";
    Image image = null;
    // Read from an input stream
    InputStream is = new BufferedInputStream(new FileInputStream("web/img/membershipcard.png"));
    image = ImageIO.read(is);
    Graphics g = image.getGraphics();
    Graphics i = image.getGraphics();
    g.setFont(new Font("TimesRoman", Font.PLAIN, 15));
    g.setColor(Color.BLACK);
    g.drawString("123456789", 334, 63);
    g.drawString("Roger", 196, 138);
    g.drawString("5", 299, 163);
    g.drawString("05", 63, 221);
    g.drawString("2015", 90, 221);
    i.setFont(new Font("TimesRoman", Font.BOLD, 15));
    i.setColor(Color.BLACK);
    i.drawString("9874564", 395, 196);
    g.dispose();
    ImageIO.write((RenderedImage) image, "png", new File("test2.png"));
    ImgUrl = "Hello";
    return ImgUrl;
}

}

我像这样从我的ImageCreator.jsp页面调用这个函数,它返回由Java函数创建的图像的URL。

代码语言:javascript
运行
复制
<%
        String ImgUrl = new CardCreator().MembershipCard();
    %>

我无法访问位于我提到的文件夹中的图像文件,以及如何在另一个文件夹中输出结果图像,在该文件夹中我希望保存所有卡片。

请帮帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-29 11:24:10

您可以使用ServletContect's realPath,方法是将它作为参数从调用的jsp传递给MembershipCard

代码语言:javascript
运行
复制
public class CardCreator {

public static String MembershipCard(String path) throws IOException {
    String ImgUrl = "";
    Image image = null;
    // Read from an input stream
    InputStream is = new BufferedInputStream(new FileInputStream(path + "/img/membershipcard.png"));

    ...

    return ImgUrl;
}

和JSP

代码语言:javascript
运行
复制
<%
    String ImgUrl = CardCreator.MembershipCard(pageContext.getServletContext().getRealPath("/"));
%>

由于您现在有了Application Context的位置,所以使用它来保存您希望JSP也可以访问的文件。

更好的方法是有一个单独的类来维护整个应用程序中的这些公共变量,而不是将它作为参数传递给方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31698421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档