我正在为商店科学出版物构建一个网络应用程序。我使用过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"))
始终为空。
答案 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);
}
}