在非servlet中获取图像路径

时间:2011-05-01 10:10:09

标签: java scheduled-tasks jboss5.x

我每天都在JBoss 5.1中运行一个计划任务来发送生日祝福。

邮件内容是HTML,我在邮件中嵌入了图片。

现在我想获得嵌入图像的路径,如何在非servelt环境中获取图像路径。

当然,我可以将图像放在静态位置并访问它们,为此我不想对路径进行硬编码。

图片位于“WebContent / images / birthday.jpg”位置。

1 个答案:

答案 0 :(得分:2)

您是如何生成电子邮件内容的?这些也是静态的html文件吗?

如果您要使用简单的静态html文件,则必须对图像路径进行硬编码。没有别的办法了。

您可以编写一个简单的Java应用程序,它作为独立的应用程序(没有任何服务器,servlet等)运行,它将创建电子邮件内容。

如果您愿意,Java代码也可以为您发送电子邮件。

如果您使用java

,这些是您可以做的一些事情
  • 使用属性文件指定图像的位置。这些文件包含简单的键/值对。
  • 您可以使用相同的模板轻松地为不同的用户创建多个电子邮件内容。
  • 您将能够轻松地为多个用户重新设计html内容。
    使用属性文件的示例。

  • 创建一个文件ex:“email_template.properties”
    在文件中输入以下内容并保存。

    image_server = http://www.mywebsite.com
    image_folder = /的WebContent /图像/

  • 创建一个jave程序来创建你的html电子邮件,并使用属性文件来生成图像位置。

    Properties properties = new Properties();
    try 
    {
        properties.load(new FileInputStream("C://email_template.properties")); //specify path here
        String sServerLocation = properties.getProperty("image_server");
        String sImageFolder = properties.getProperty("image_folder");
        StringBuilder strEmail = new StringBuilder();
        strEmail.append("<html><body> <img src=\"" + sServerLocation + sImageFolder +"birthday.jsp\""> </body> </html>" );   
        // Write code to generate complete email dynamically
        // write code to send out the email or to save as html file to you machine, where you can send it manually.
    

    } catch(IOException e)     {    // }

你明白了。使用普通的HTML,你将不得不硬编码 但是,如果您使用简单的Java文件,则可以获得更大的灵活性。

如果您需要代码从java发送电子邮件,请查看此链接 How can I send an email by Java application using GMail, Yahoo, or Hotmail?