我正在浏览一个 servlet 站点,几乎在每个 doPost 中我都会遇到这样的代码:
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// set encoding to UTF-8
if (request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
// TODO : this may be needed in doGet too ?????????
response.setCharacterEncoding("UTF-8");
// check if session exists
boolean sessionExists = request.isRequestedSessionIdValid();
HttpSession session = request.getSession();
if (!sessionExists)
session.setMaxInactiveInterval(1000);
// if session does not exist we create it
ServletContext context = session.getServletContext();
Integer numSessions = (Integer) context
.getAttribute("numberOfSessions");
if (numSessions == null)
context.setAttribute("numberOfSessions", 1);
else if (!sessionExists)
context.setAttribute("numberOfSessions", ++numSessions);
}
创建一个 BaseController 类并将此代码移到那里是否是个好主意 - 我应该将它移到 init() 方法还是 doPost() 中 - 然后调用super.doPost
?session.setAttribute("photo", photo);
在某些 servlet 中也有类似的行。那么session
在 BaseController 中有一个字段是否是一个好主意 - 如果我理解正确的话,它应该是易变的。
我对这一切都很陌生。
谢谢