Ich bin neu zu Servlets Ich schrieb ein Servlet, das Daten aus der Datenbank holt und druckt eine Tabelle, habe ich eine JSP-Seite, die eine Schaltfläche hat, um Mitarbeiter ID suchen. Meine Anforderung ist die Tabelle sollte auf der gleichen Seite angezeigt werden, wo ich Suche, d. H. Jsp page.Ich suchte den ganzen Tag, konnte aber keine Lösung mit Javascript finden. Ich möchte, dass dies nur mit Javascript getan wird, nicht im Voraus. Hier ist meine jsp Seitewie man Daten vom Servlet zu jsp mit Hilfe von Javascript
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>
das ist mein Servlet-Seite
Retrieve.java
public class abrufen erweitert 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) {
}
}
}
ich es getan haben, aber das Ergebnis ist immer noch auf der nächsten Seite angezeigt bekommen – user2159629
Sie machen können Ajax-Aufruf von Jsp an Servlet. Hast du das probiert? http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery Dies könnte helfen –
Ich versuchte es mit XMLHttpRequest, aber immer noch der Browser leitet Servlet-Seite @ Sanal S – user2159629