[英]Redirecting the page with Servlets Java
我有一個帶有表單的jsp頁面,提交該表單后,該頁面將轉到Servlet ,該Servlet將表單數據插入數據庫。
將數據插入數據庫后,我試圖將瀏覽器返回到我的jsp頁面,並顯示一個JavaScript警報,提示已成功插入數據,代碼如下:
RequestDispatcher rd;
if(dao.insertClient(client)) {
rd = getServletContext().getRequestDispatcher("/pages/clients.jsp");
rd.include(request, response);
out.print(
"<script type=\"text/javascript\">"
+ "alert("Client inserted successfully!");"+
"</script>"
);
}
這段代碼完全可以滿足我的要求,但是此方法getRequestDispatcher()將頁面重定向到servlet本身,而URL就像http:// localhost:8080 / Servlet一樣 ,這樣我就無法訪問該對象的任何內部鏈接。頁面,因為到其他頁面的鏈接顯然在servlet上下文之外,並且glassfish返回404錯誤。
我嘗試使用response.sendRedirect()而不是使用getRequestDispatcher(),通過這種方式,我可以將數據插入數據庫並訪問內部鏈接,但是未顯示javascript警報。
有人對我如何將頁面重定向到clients.jsp並顯示javascript警報提出了建議。
謝謝!
您可以嘗試另一種方法:
像這樣從servlet設置參數:
RequestDispatcher rd;
if(dao.insertClient(client)) {
rd = getServletContext().getRequestDispatcher("/pages/clients.jsp");
request.setAttribute("isSuccess", "success");
rd.include(request, response);
}
訪問jsp中的參數以檢查是否顯示警報。
<%
String result = request.getParameter("isSucess");
if("success".equals(result)){
%>
<script type="text/javascript" >
alert("Client inserted successfully!");
</script>
<%
}
%>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.