jQuery - Servlet的AJAX调用

时间:2014-02-24 15:32:06

标签: java jquery mysql ajax jsp

我正在为商店科学出版物构建一个网络应用程序。我使用过MySQL,JSP,jQuery和JAVA。

我在JSP页面中有一个表单,如下所示:

<form method="get">
    <input type="text" id="code">
    <button onclick="request()">Search</button>
</form>

函数 request()是:

function request() {
    var code = $('#code').val();
    var data='code='+code;
    $.ajax({
          url: "Servlet",
          type: "GET",
          data: data,
          success: function(){
              alert("success");
          },
          error:function(){
              alert("failure");
          }   
        }); 
};

Servlet执行一些操作,然后将查询的结果集保存在请求对象中,并将结果转发到索引上,如下所示

request.setAttribute("result", resultSet);
RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);

index.jsp 包含:

 <%  if(request.getAttribute("result")!=null){ %>
        <jsp:include page="table.jsp" />
  <%}%>

检查结果集是否已填充,然后包括table.jsp,页面扫描结果集并将值放在表中。

此代码不起作用,有人可以帮助我吗? 1-查询正确运行 2-jQuery被正确调用

但是

if(request.getAttribute("result"))

始终为空。

1 个答案:

答案 0 :(得分:0)

尝试让 Servlet 扩展 HttpServlet ,并按以下方式尝试:

public class TestServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;


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

        doPost(request,response);
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        request.setAttribute("result", "value");
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }

}