我正在與JSP
和Ajax
首次合作。我試圖從數據庫獲取一列數據,並使用Ajax調用將其填充到我的JSP頁面的下拉列表中。我不想刷新頁面,因此我正在進行Ajax調用。在JSP中使用jquery ajax不會調用Servlet嗎?
這裏是我的jsfiddle它有Process按鈕,只要點擊Process按鈕,它就會顯示一個空的下拉列表。這是在我的另一個test.jsp
頁面。
我有一個表作爲account
和我需要從JSP這個選擇查詢 - 一旦
SELECT USERS FROM ACCOUNT;
,因爲我點擊Process按鈕,我需要通過執行上面的SQL查詢我的PostgreSQL數據庫阿賈克斯。無論用戶,我從數據庫回來,我需要在我的下拉列表中填充那些USERS
,如我在上面的jsfiddle中所示。
下面是我使用Ajax從JSP頁面調用的servlet代碼。
@WebServlet("/someservlet/*")
public class SomeServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
try {
System.out.println("Hello Test");
// Step 1. Load the JDBC driver
Class.forName("org.postgresql.Driver");
// Step 2. Create a Connection object
Connection con = DriverManager.getConnection(
"jdbc:postgresql://localhost/test","root", "root!");
Statement s = con.createStatement();
String sql ="SELECT USERS FROM ACCOUNT";
ResultSet rs = s.executeQuery(sql);
List<String> list = new ArrayList<String>();
while (rs.next()) {
list.add(rs.getString("email"));
}
String json = new Gson().toJson(list);
response.getWriter().write(json);
rs.close();
s.close();
con.close();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e2) {
e2.printStackTrace();
} catch (Exception e3) {
e3.printStackTrace();
}
}
}
及以下從上面的jsp頁面我的jQuery Ajax調用如圖所示的jsfiddle從那裏我呼籲Process
按鈕的點擊上面的servlet -
<script type="text/javascript">
$(document).ready(function() {
$('.btn-primary').click(function() {
alert("Hello");
$.get('someservlet', function(responseJson) {
alert(responseJson);
var $ul = $('<ul>').appendTo($('#somediv'));
$.each(responseJson, function(index, item) {
$('<li>').text(item).appendTo($ul);
});
});
});
});
</script>
問題陳述: -
但不知何故,它根本不工作,這意味着我的servlet沒有從我的JSP頁面使用Ajax調用。我的System.out也沒有從控制檯和servlet上打印出來。
另外,我還有一個servlet。這是我創建的第二個servlet。可能是這個原因?
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
</web-app>
嘗試再次'@WebServlet( 「/ someservlet」)' – Braj