Ich benutze Java (JSP und Servlets) aber bin stecken geblieben. Von meiner Forschung glaube ich, dass ich möglicherweise ein Session-Level-Objekt benötigenEinfaches JSP/Servlet-Problem mit zugreifendem Objekt
Der Benutzer vervollständigt ein JSP-Formular, drückt Senden, und es ist POST für die Klasse NewServlet.
In NewServlet wird ein Objekt NewFileThing erstellt, in dem diese Informationen gespeichert werden.
@WebServlet(urlPatterns = {"/NewServlet"})
public class NewServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Stuff happens here...
String nameOfUser = request.getParameter("name");
NewFileThing fi = NewFileThing();
fi.addName(name);
response.sendRedirect("nextForm");
}
}
Der Benutzer wird dann redirect to nextForm.jsp. Wenn sie dieses Formular ausfüllen, werden sie an FinalServlet gesendet.
@WebServlet("/FinalServlet")
@MultipartConfig
public class FinalServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO how can I access object fi (NewFileThing) from here?
fi.getName(); <--- Error, or if I make new object it's NULL...
}
}
Frage: Innerhalb FinalServlet, wie kann ich das gleiche Objekt NewFileThing bekomme ich zuvor erstellt haben (gleiche Instanz)? Ich möchte kein neues erstellen!
Danke schöne Gemeinde!
Gibt es eine Grenze für die Größe dessen, was in HttpSession eingefügt werden kann? – user5623335
Dies hängt wirklich von den Speicherressourcen des Servers ab. Sie können definitiv eine gute Menge darin speichern, aber ich würde nicht zu verrückt werden. Sie müssen auch überlegen, wie viele gleichzeitige Benutzer es gibt. Versuchen Sie, die Sitzung so minimal wie möglich zu halten. Wenn Sie größere Objekte speichern müssen, sehen Sie sich andere Formen von persistentem Speicher an (z. B. Dateien, Datenbanktabellen usw.) –
java.lang.IllegalArgumentException: setAttribute: Nicht serialisierbares Attribut mit dem Namen fi. Ich habe eine Lösung gegooglet, verstehe sie aber nicht: Sie können das Objekt serialisieren, indem Sie eine serialisierbare List-Implementierung verwenden und sicherstellen, dass die Objekte in der Liste auch serialisierbar sind. – user5623335