enum クラスに jsps/サーブレットのリストを持つ定数クラスがあります。このクラスは、コントローラ サーブレットからリダイレクトとして機能するために使用されます。この特定のクラスは、メモリ アナライザーで常にリークの疑いがあるものとして表示されます。
ここにコントローラーサーブレットのコードを貼り付けます。
protected void forwardPage(Page jspPage, boolean checkTrail, HttpServletRequest request, HttpServletResponse response) {
String temp;
String str = new String();
str = jspPage.name();
Page page1 = Page.valueOf(Page.class,str);
try {
temp = page1.getFileName();
getServletContext().getRequestDispatcher(temp).forward(request, response);
} catch (Exception se) {
} finally {
page1 = null;
jspPage = null;
str = null;
temp = null;
}
ページ自体は、このようなコードを持つ列挙型クラスです..
UPDATE_PROFILE_CONFIRM("/WEB-INF/jsp/login/updateProfileConfirm.jsp", "プロフィールを確認") public String getTitle() {
return this.title;
}
public String getFileName() {
return this.fileName;
}
public void setFileName(String newFileName) {
this.fileName = newFileName;
}
私が理解できないのは、なぜこのクラスがリークする必要があるのですか? Page の参照を削除して直接リダイレクトすると、問題は解決したようです。フレームワークはなく、シンプルな servlet-jsp フレームワークです。アプリケーション サーバーは Tomcat 6 であり、JDK 6 上にあります。