我有一个使用浏览按钮上传多张图像的应用程序。我正在调用一个 servlet 来执行这些操作以存储在 databse 中,检索它并将其存储在数据库中。以下是我的JSP页面代码:
<%if(imageVO != null)
{%>
<TR>
<% if (!imageVO.getImage1().equals("")) {
Filetype = (imageVO.getImage1().substring(imageVO.getImage1().lastIndexOf(".")+1,imageVO.getImage1().length())).toLowerCase().trim();
System.out.println("Inside If for Image1-=========="+Filetype);
if("jpg".equalsIgnoreCase(Filetype) || "jpeg".equalsIgnoreCase(Filetype)){ System.out.println("Inside If222222 for Image1-=========="+Filetype+"Ireq"+iReq+"Program type"+prog); %>
<TD align="left" colspan="4"><br/><IMG border="0"
src="/servletpath/Servlet?ireq=<%=iReq%>&iseq=1&targetAction=retrievePic&tabVal=0&ProgramType=<%=prog%>"
width="200" height="150" id="image11" name="image11"><INPUT type="hidden" name="imageSequence1" id="imageSequence1" value="1"></TD>
<%} else {
System.out.println("Inside else Image11111"); %>
<TD align="center" colspan="4" width="200" height="70"><a href="/servletpath/Servlet?ireq=<%=iReq%>&iseq=1&targetAction=retrievePic&tabVal=0&ProgramType=<%=prog%>" id="image11" name="image11"> <%=imageVO.getImage1() %> </a><INPUT type="hidden" name="imageSequence1" id="imageSequence1" value="1"></TD>
<% request.getSession().setAttribute("browseType",null);
request.getSession().removeAttribute("browseType");
if(request.getSession().getAttribute("browseType")!=null)
System.out.println("Value of Remove Browse type attr removed 333======="+(String)request.getSession().getAttribute("browseType"));} } %>
<% if (!imageVO.getImage2().equals("")) {
Filetype = (imageVO.getImage2().substring(imageVO.getImage2().lastIndexOf(".")+1,imageVO.getImage2().length())).toLowerCase().trim();
if("jpg".equalsIgnoreCase(Filetype) || "jpeg".equalsIgnoreCase(Filetype)){ %>
<TD align="left" colspan="3"><br/><IMG border="0"
src="/servletpath/Servlet?ireq=<%=iReq%>&iseq=2&targetAction=retrievePic&tabVal=0&ProgramType=<%=prog%>"
width="200" height="150" name="image22" id="image22"><INPUT type="hidden" name="imageSequence2" id="imageSequence2" value="2"></TD>
<%} else {
System.out.println("Inside else Image2222222222"); %>
<TD align="center" colspan="3" width="200" height="70"><a href="/servletpath/Servlet?ireq=<%=iReq%>&iseq=2&targetAction=retrievePic&tabVal=0&ProgramType=<%=prog%>" name="image22" id="image22" > <%=imageVO.getImage2() %> </a><INPUT type="hidden" name="imageSequence2" id="imageSequence2" value="2"></TD>
<%request.getSession().setAttribute("browseType",null);
request.getSession().removeAttribute("browseType");
if(request.getSession().getAttribute("browseType")!=null)
System.out.println("Value of Remove Browse type attr removed 333======="+(String)request.getSession().getAttribute("browseType"));} } %>
</TR>
<%} %>
这是代码的一部分,其中将显示从数据库中检索的图像缩略图。为了显示 src 标记中的 servlet,应该调用它。
当我第一次上传图像时,流程工作正常,并且用于检索的 servlet 被正确调用。当我尝试在同一位置更新图像时,流程正常(图像在数据库中更新),但未调用检索图片 servlet。此问题仅在 IE11 中发生。在其他较低版本的IE中,它工作正常。
IE11 中是否不支持任何标记/代码。任何帮助,不胜感激。
这是因为缓存问题。我用时间戳更改了 servlet 的 url,以便每次为新图像调用 servlet。成功了。
ServletPath/Servlet?ireq=<%=iReq%>&iseq=1&targetAction=retrievePic&tabVal=0&ProgramType=<%=prog%>&time=<%=java.lang.System.currentTimeMillis()%>"