我有基于tomcat的servlet。Servlet 有基于注解类的 mvc,看起来像(伪代码)
@RequestMapping("/myAction")
public String getAction(Model m) {
DBConnection conn = new DBConnection();//connect to DB
Result r = conn.getDataOfAction();//run some sql query and return result
ArrayList<POJO> list = r.getResult();//24 instances of class, for example
m.put("list",list); //It's for resolving pojo into JSP page
String result = CustomViewResolver.getString(viewName, list);//i just point to ViewName and get parsed jsp page
//list.clear();
return result;
}
当我按原样开始使用评论//list.clear()
进行分析时。POJO
即使页面已经在客户端呈现后,我也会遇到所有情况都留在内存中的情况。当我//list.clear()
在所有POJO
垃圾收集时取消注释时,除了指向 forEachjstl
标记的垃圾。
我冲洗并关闭了所有东西Stream's
,Writer's
但似乎无关紧要。这是正常的方式清除列表,还是我做错了什么?谢谢。
UPD:我尝试其他情况,当我使用jstl
<c:forEach items=${POJOLIST} var="pojo"></c:forEach>
都pojo's
留在记忆里。${POJOLIST}
但是,如果我在jsp
不使用的情况下打印jstl
,那么当所有 pojo 垃圾按照我想要的方式收集时。jstl
的var
重新创建对象并将其保存在内存中?