Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Servlet: doGet und doPost
Mark³:
ich nutze ein Servlet auf Apache Tomcat. Den Code dafür habe ich aus irgendeinem Javabuch entnommen. In diesem Servlet wird die Post-Anfrage automatisch an GET weitergeleitet.
Ist es sinnvoll, das so zu machen? Kann ich das aus dem GET einfach entfernen und den Code direkt im POST ausführen? Ich nutze das Servlet nur für POST-Aufrufe...
--- Code: ---protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
BufferedReader in = request.getReader();
String key = in.readLine();
if (key != null) {
result = ovp.processInput(key, s);
out.println(result);
}
}
/*
* (non-Java-doc)
*
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
* HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
--- Ende Code ---
flaite:
Du kannst auch den Code in das doPost schreiben und das doGet auf doPost umleiten.
Das ist dann einfach offensichtlicher für spätere Erweiterungen, Bugfixing.
Performancemässig merkst du von solchen Methoden-Indirections sowieso praktisch nichts.
Du kannst auch in doGet auf eine Fehlerpage umleiten (um sicherzugehen, dass das wirklich nie angesprochen wird).
Falls ich mich recht erinnere gibts auch eine Methode doService(HttpServletRequest, HttpServletResponse). Die kannst du auch überschreiben. Die ruft nämlich doGet und doPost erst auf.
Gruß Axel
Mark³:
danke, das beruhigt mich schon mal. Gibt es eine bäst präktiß wie man den request parsed? Schreibe dich die möglichen Felder in eine properties-Datei um etwas dynamisch zu bleiben? Ich will mir alle Felder von einem Formular geben lassen und die dann nach Openview schreiben (in einen Servicecall). Nun sind das etwa 50 Felder die grösstenteils leer sind (mal die einen mal die anderen) und sich sicher auch mal ändern werden.
animate:
der ServletRequest hat eine Methode getParameterMap(), die alle Parameter des Requests in einer Map zurückgibt. Du musst nichts selber parsen.
flaite:
Imho ist das iterieren durch
--- Zitat ---public java.util.Enumeration getParameterNames()
Returns an Enumeration of String objects containing the names of the parameters contained in this request. If the request has no parameters, the method returns an empty Enumeration.
Returns:
an Enumeration of String objects, each String containing the name of a request parameter; or an empty Enumeration if the request has no parameters
--- Ende Zitat ---
gebräuchlicher.
Da stehen alle Felder des Requests drin.
Die heute sehr ungewöhnliche Enumeration hat historische Gründe.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln