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



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

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

  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
  3. (jQuery ajax 要干净得多)

    $.ajax({
        method: "POST",
        url: "/myServlet",
        data: { category: $("#category").val()} //post category field
    }).done(function( msg ) {
        alert( msg ); //alert html returned from servlet 
    });
    
  4. JQuery Ajax (get)

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

你可以发送你的"category"参数,把它写在URL中:Servlet/?category=scifi and use request.getParameter("category");在 doGet 方法中。

最新更新