我知道这个问题可能以前曾被问过,但我似乎无法找到它上面的芒果。
我试图在加载页面时调用servlet方法,此时它是一个无限循环导致每次servlet发布响应时页面重新加载并再次调用servlet然后调用再次重新加载页面等等。
我从网址收集一个ID,然后我在servlet中使用它来收集我需要的数据。 这是我目前正在使用的代码。
<form style="display:none;" action="ServletC" method="POST">
<input type="hidden" name="hdn_parameter" value="<%= request.getParameter("productID")%>"/>
<input type="submit" id="btn_loadform" name="loadform" style="display: none;"/>
<script>
document.getElementById('btn_loadform').click();
</script>
</form>
我在整个页面中收到了一些这样的代码
<img id="picture_img" class="" style="width:300px;" src="${ImageResponse}" />
以下代码在我的servlet上
if (request.getParameter("loadform") != null)
{
int productID = Integer.parseInt(request.getParameter("hdn_parameter"));
String link = "PictureDetail.jsp?productID=" + Integer.toString(productID);
Product p = null;
try
{
p = DBConnect.getProduct(productID);
}
catch (SQLException ex)
{
Logger.getLogger(ServletC.class.getName()).log(Level.SEVERE, null, ex);
}
request.setAttribute("ImageResponse", p.getPath());
request.setAttribute("TitleResponse", p.getName());
request.setAttribute("DescriptionResponse", p.getDescription());
request.setAttribute("PriceResponse", p.getPrice());
loaded = true;
RequestDispatcher dis = request.getRequestDispatcher(link);
dis.forward(request, response);
}
任何人都可以帮我完成我现在应该做的事情,以便在不刷新页面的情况下实现这一目标,以便它能顺利运行。
提前致谢。
答案 0 :(得分:0)
单击该按钮时发出的请求是一个正确的http请求,其响应自然会重新绘制该页面。您必须在按钮单击时形成一个AJAX请求,在成功时解析响应,然后在页面上执行某些操作(使用已解析的响应数据)。