【发布时间】:2017-08-18 08:27:00
【问题描述】:
我是 servlet 的新手,我编写了一个 servlet,它从数据库中获取数据并打印一个表,我有一个 jsp 页面,其中有一个用于搜索员工 ID 的按钮。 我的要求是表格应该显示在我搜索的同一页面中,即 jsp 页面。我搜索了一整天,但找不到使用 javascript 的解决方案。我希望这只能使用 javascript 而不是 jquery 来完成。谢谢。 这是我的jsp页面
search.jsp
<html>
<head>
<script>
var request;
var date;
function data()
{
var v = document.getElementById("ele1").value;
var url = "Retrieve?ele1=" + v;
alert("v" + v);
if (window.XMLHttpRequest)
{
request = new XMLHttpRequest();
} else if (window.ActiveXObject)
{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
try
{
request.onreadystatechange = getInfo;
request.open("GET", url, true);
request.send();
} catch (e)
{
alert("unable to connect to server");
}
}
function getInfo()
{
request = new XMLHttpRequest();
if (request.readyState == 4)
{
alert(val);
var response = request.responseXML;
var val = request.responseText;
document.getElementById("sun").innerHTML = val;
}
}
}
</script>
</head>
<body>
<div>
<form id="search" name="search" action="Retrieve" method="post">
<label id="search">Search By Empid</label>
<input type="text" name="ele1" id="ele1">
<input type="button" value="Get Details" onclick="data();">
</form>
</div>
<div id="sun">
</div>
</body>
这是我的 servlet 页面
检索.java
公共类检索扩展 HttpServlet {
Connection con = null;
Statement st = null;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/name", "postgres", "admin");
st = con.createStatement();
String num = request.getParameter("ele1");
int id = Integer.valueOf(num);
PreparedStatement ps = con.prepareStatement("select * from empretrieve where Empid=?");
ps.setInt(1, id);
out.print("<table width=50% border=1>");
out.print("<caption>Result:</caption>");
ResultSet rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int tot = rsmd.getColumnCount();
out.print("<tr>");
for (int i = 1; i <= tot; i++) {
out.print("<th>" + rsmd.getColumnName(i) + "</th>");
}
out.print("</tr>");
while (rs.next()) {
out.print("<tr><td>" + rs.getInt(1) + "</td><td>" + rs.getString(2) + "</td><td>" + rs.getString(3) + "</td><td>" + rs.getString(4) + "</td><td>" + rs.getString(5) + "</td><td>" + rs.getString(6) + "</td><td>" + rs.getString(7) + "</td><td>" + rs.getString(8) + "</td><td>");
}
out.print("</table>");
System.out.println("processRequest : : ");
} catch (Exception e) {
PrintWriter out = response.getWriter();
out.println(" e : " + e);
} finally {
try {
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (Exception ex) {
}
}
}
【问题讨论】:
-
我已经完成了,但结果仍然显示在下一页
-
您可以从 jsp 到 servlet 进行 ajax 调用。你试过吗? stackoverflow.com/questions/8567114/…这可能会有所帮助
-
我尝试使用 XMLHttpRequest 但浏览器仍然重定向到 servlet 页面@Sanal S
标签: javascript jsp servlets