Java(JSPおよびServlets)を使用していますが、スタックしています。私の研究から、私はセッションレベルのオブジェクトが必要かもしれないと信じています。オブジェクトにアクセスする際の単純なJSP /サーブレットの問題
ユーザーはJSPフォームを完成させ、submitを押して、NewServletクラスのPOSTです。
NewServletの内部に、この情報が格納されるNewFileThingオブジェクトが作成されます。
@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");
}
}
ユーザーは、nextForm.jspにリダイレクトされます。このフォームを完了すると、FinalServletに送信されます。
@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...
}
}
質問:FinalServlet以内、どのように私は、私が以前に作成した同じオブジェクトNewFileThing(同じインスタンス)を得ることができますか?私は新しいものを作りたくありません!
すてきなコミュニティありがとう!
HttpSessionに入れることのできるサイズには限界がありますか? – user5623335
これは実際にサーバーのメモリリソースに依存します。あなたは確かにそこに良い量を格納することができますが、私はあまりにも狂っていないでしょう。同時ユーザー数も考慮する必要があります。できるだけセッションを最小限に抑えてください。大きなオブジェクトを格納する必要がある場合は、他の形式の永続ストレージ(ファイル、データベーステーブルなど)を調べてください。 –
java.lang.IllegalArgumentException:setAttribute:名前がfiの直列化不可能な属性。私は解決策を見つけましたが、わかりません:直列化可能なList実装を使用し、リスト内のオブジェクトもシリアライズ可能であることを確認して、オブジェクトをシリアライズ可能にすることができます。 – user5623335