在 jsp 页面和 Servlet 之间进行通信的最佳方式是什么?

What is the best way to communicate between a jsp page and a Servlet?

我正在 Eclipse 中创建一个动态 Web 项目,但无法弄清楚如何将用户的请求(通过单击按钮)发送到将执行某些操作(包括数据库查找)然后填充的 servlet带有格式化结果的网页。我创建了所有数据库查找函数。做这个的最好方式是什么?我真的只需要一个字符串传回 servlet,这将是我希望 return 作为 ArrayList 的 "category" 本书。某些来源似乎表明 jsp 页面甚至不应该用于将信息中继到 servlet,所以我很困惑。

您可以将 "category" 参数写在 URL 中: Servlet/?category=scifi 并使用 request.getParameter("category");在 doGet 方法中。

有几种方法可以做到这一点:

  1. 表单提交

    <form action="/myServlet" method="post">
        <input type="text" name="category" id="category"/>
        <input type="submit" value="submit" id="btnSubmit"/>
    

    然后在您的 servlet 代码 (doPost()) 中:

    String category = request.getParameter("category");
    
  2. 使用 ajax(jQuery ajax 更干净)

    $.ajax({
        method: "POST",
        url: "/myServlet",
        data: { category: $("#category").val()} //post category field
    }).done(function( msg ) {
        alert( msg ); //alert html returned from servlet 
    });
    
  3. JQueryAjax(得到)

    $("btnSubmit").click(function(event){
        event.preventDefault();
        $.get("/myServlet", function(data, status){
            alert("Data: " + data + "\nStatus: " + status);
        }); 
    });