我想从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是:
如果我在地址栏中写下以下网址:
然后按Enter键,然后servlet的doGet正在执行。
我无法找到它的解决方案。
如果我得到您的建议,将会非常有帮助。
谢谢和问候。
答案 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。这样,每个不以/
开头的网址都与它相关。