嗨,我有一个 HTMl 表单,可以自动生成验证码图像,然后根据生成的验证码自动生成音频剪辑。表格如下所示。
<div class="formRow">
<div class="field">
<img style="margin-left:91px; margin-top:-6px;" class="image" src="http://www.abc.com/captchaServlet">
</div>
</div>
<div class="formRow">
<div class="field">
<audio style="margin-left:91px;" controls="controls">
<source id="audiowav" src="http://www.abc.com/getSound" type="audio/wav">
Your browser does not support this audio format.
</audio>
</div>
</div>
生成验证码后,我将验证码代码作为属性存储在 session 中,然后当我必须生成音频文件时,我从 session 中获取属性并生成它。但有时会发生的情况是,当我刷新页面时,首先调用音频标签 servlet,即 http://www.abc.com/getSound在 http://www.abc.com/captchaServlet 之前被调用这样做图像和音频不匹配。所以我想首先确保http://www.abc.com/captchaServlet从表单中调用,然后 http://www.abc.com/getSound 。
最佳答案
您不能保证这种情况会发生,因为浏览器决定以何种顺序加载资源,这取决于浏览器,并且您不能真正强制它遵循特定的顺序。
您应该让您的验证码以不同的方式工作。也许有页面生成的实际代码并放入 session 中,然后 getSound
和 captchaServlet
从 session 中的代码生成相应的声音或图像?
关于java - Servlet调用顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13436945/