用于调用Servlet的Image Src

时间:2012-03-23 06:34:55

标签: java image jsf servlets src

我想从img src调用一个Servlet。我已经定义了一个名为ImageProducerServlet的Servlet类,并在web.xml中注册了它:

<servlet>
   <servlet-name>ImageProducerServlet</servlet-name>
   <servlet-class>com.company.servlet.ImageProducerServlet</servlet-class>    
</servlet>
<servlet-mapping>
   <servlet-name>ImageProducerServlet</servlet-name>
   <url-pattern>/imageproducerservlet</url-pattern>
</servlet-mapping>

在这个servlet的doGet中,我刚写了一个System.out。现在从JSF页面我将servlet称为:

<img src="/imageProducerServlet" id="id"/>

我原以为会打印System.out!但事实并非如此。

添加img的页面的URL是:

  

http://localhost:7101/mycompany/faces/home

如果我在地址栏中写下以下网址:

  

http://localhost:7101/mycompany/imageproducerservlet

然后按Enter键,然后servlet的doGet正在执行。

我无法找到它的解决方案。

如果我得到您的建议,将会非常有帮助。

谢谢和问候。

3 个答案:

答案 0 :(得分:3)

如果这样做:

http://localhost:7101/mycompany/imageproducerservlet

然后你需要你的img标签看起来像这样:

<img src="/mycompany/imageProducerServlet" id="id"/>

答案 1 :(得分:3)

说完

<img src="imageProducerServlet" id="id"/>

<img src="/mycompany/imageProducerServlet" id="id"/>

答案 2 :(得分:1)

您需要预先添加上下文路径。您最好不要对其进行硬编码,因为上下文路径是服务器控制的设置。您可以从HTTP请求中获取它,如下所示:

<img src="#{request.contextPath}/imageProducerServlet" id="id"/>

另一种方法是使用HTML <base>标记并将其设置为上下文根的URL。这样,每个不以/开头的网址都与它相关。

另见: