我成功使用ajax调用servlet,但是在servlet中我无法重定向到jsp 这是我调用servlet的代码
$("#nextButton").on("click", function() {
var param = JSON.stringify(Polo);
$.ajax({
url:"ServletURL",
type:"POST",
dataType:'json',
data: {json:param},
success: function() {
console.log('success');
}
});
});
但是在servlet中我无法重定向到jsp
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String myJsonData = request.getParameter("json");
Gson gson = new Gson();
Polo polo = gson.fromJson(str, Polo.class);
request.setAttribute("Polo", polo);
request.getRequestDispatcher("/page2/page2.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
但一切正常,我没有收到任何错误,但jsp没有出现在我的浏览器上。我做错了什么?
我已经在堆栈溢出上寻找了一些解决方案,但我不理解一些答案,所以如果你能对这个问题做出明确解释以及如何解决它,我将非常感激。提前谢谢
答案 0 :(得分:0)
(事先,由于评分低,我无法发表评论!)
我认为一切正常!但是您是异步发送请求的。因此,您的网络浏览器不会重定向。请在您的浏览器中打开开发工具(Chrome中的F12和大多数其他现代浏览器),导航到网络标签,找到您的请求并查看回复
我想你会在那里找到你的JSP内容。
(顺便说一句,我无法上传文件,出现了一些未知的“imgur错误”)
答案 1 :(得分:0)
您正在调用POST,其中未编程为重定向到jsp,将ajax参数type:"POST"
更新为type:"GET"
以获得所需结果