我正在构建一个用于存储科学出版物的Web应用程序。我使用过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"))
始终为null。
最佳答案
尝试让您的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);
}
}
关于java - jQuery-Servlet的AJAX调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992008/