Dort werden die Servlet
ist für. Sie können ihn nutzen, um Anfragen in hohem Maße zu kontrollieren, vor- und nachzubearbeiten. Sie können den Query-String nutzen, um anfragespezifische Informationen an das Servlet zu übergeben, z.B. http://example.com/context/servlet?name1=value1&name2=value2
auf die im Servlet wie folgt zugegriffen werden kann:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name1 = request.getParameter("name1"); // Now contains "value1".
String name2 = request.getParameter("name2"); // Now contains "value2".
// Do your business thing with them.
}
Sie können auch request pathinfo verwenden, um anforderungsspezifische Informationen an das Servlet zu übermitteln, was zu schöneren URLs führt, z.B. http://example.com/context/servlet/value1/value2
auf die im Servlet wie folgt zugegriffen werden kann:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pathInfo = request.getPathInfo(); // Now contains "/value1/value2".
// Do your business thing with them.
}
In beiden Fällen ist die Servlet
ist natürlich abgebildet in web.xml
wie folgt:
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.example.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
Um die Ergebnisse in JSP anzuzeigen, müssen Sie die Daten im Anfragebereich speichern und die Anfrage zur Anzeige an eine JSP weiterleiten. Z.B.:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String query = request.getParameter("query");
List<Result> results = searchDAO.list(query);
request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}
Hier wird die Result
Klasse ist nur eine gewöhnliche JavaBean Klasse, die grob eine Zeile der Datenbanktabelle darstellt. Die JSP wird in /WEB-INF
zu verhindern, dass direkt Zugang per URL. Das wollen Sie natürlich nur kann das Servlet darauf zugreifen. In JSP können Sie wiederum mit Ausdrucksform Sprache um auf beliebige Attribute zuzugreifen, wie z. B. results
aus dem obigen Beispiel. Sie können in JSP auch Taglibs verwenden, um den Seitenfluss und die Ausgabe zu steuern. Eine bekannte Standard-Taglib ist JSTL (einfach fallen lassen jstl-1.2.jar en /WEB-INF/lib
um es zum Laufen zu bringen), hier ein Beispiel, wie man die Ergebnisse schön in einer JSP anzeigen kann:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
<c:forEach items="${results}" var="result">
<tr>
<td>${result.name}</td>
<td>${result.description}</td>
</tr>
</c:forEach>
</table>
Um mehr über JSP/Servlets zu erfahren, empfehle ich die Die Coreservlets.com-Tutorials von Marty Hall . Wenn Sie mehr über die richtige Art der Interaktion mit Datenbanken (das DAO-Muster) erfahren möchten, finden Sie dieser Artikel ebenfalls nützlich.
Viel Glück!