gpt4 book ai didi

java - 如何将请求重定向/转发到 $.ajax() 函数调用的 servlet 中的另一个 jsp 页面

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:56 25 4
gpt4 key购买 nike

我正在使用 $.ajax() 函数在我的应用程序中调用 servlet,并且我正在将请求转发到另一个 jsp 页面并设置请求属性......我只是想知道在基于 ajax 的servlt中转发请求和设置请求参数是否是好方法?这是我的示例代码......

          var id= $("#id").val();

$("#add-btn").click(function(e) {
e.preventDefault();
var dataString ='action=insert'+'&id='+id
console.log(dataString);
$.ajax({
type: "POST",
url: "RecordHandler",
data: dataString,
success: function(data){
console.log('Add');
$('body').html(data);
$('body').prepend('<div style="width:100%;text-align:center;"><h3 style="color:green" >Record Added Succesfully</h3></div>')
}
});

});

这是我的 servlet 代码......

  private static String UserRecord = "/list.jsp";

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

String redirect = "";
String action = request.getParameter("action");
if (action.equalsIgnoreCase("insert")) {
String id= request.getParameter("id");
int uid = Integer.parseInt(id);
RecordBean record = new RecordBean();
record.setId(uid);
dao.addRecord(record);
redirect = UserRecord;
request.setAttribute("records", dao.getAllRecords()); //Is it good approach to set request attribute in ajax based servlet?
System.out.println("Record Added Successfully");

RequestDispatcher view = request.getRequestDispatcher(redirect);//Is it good approach to redirect request in ajax based servlet?
view.forward(request, response);
}

如何使用ajax实现不刷新页面......即使我在ajax成功方法中使用window.location.herf =“list.jsp”,它也会刷新页面

最佳答案

当您通过 AJAX 调用 servlet 时,根据定义,无论服务器发送的 header 如何,您都会停留在同一页面上。

如果您想更改页面,则必须在 $.ajax(..) 调用的成功处理函数中使用 JavaScript 来完成此操作。

您可以读取 Location 响应 header 并将 window.location.href 设置为该值。 See here for other options .

关于java - 如何将请求重定向/转发到 $.ajax() 函数调用的 servlet 中的另一个 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17696051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com