目前,我的所有 jsp 文件顶部都包含以下内容:
<%@ include file="inc/inc_cookie_login.jsp"%>
<%@ include file="inc/inc_protect_page.jsp"%>
<%@ include file="inc/inc_log_access.jsp"%>
jsp 具有 check for cookie and set a user object in the session if cookie exists, prevents access to the jsp unless a session has been set, write to a text file the User IP, name, page accessed, etc.,
的 scriptlet分别。
上面的 scriptlet 方法运行良好,但现在我已经设置了更好的服务器并且可以利用 web.xml 文件,我一直在根据最佳实践重构我的应用程序。上面是尖叫FIXME!我应该调查监听器、过滤器吗?或者我当前的方法是否足够?
=== inc_cookie_login.jsp ====
<%@ page import="model.STKUser"%>
<%@ page import="model.STKUserCookie"%>
<%@ page import="data.STKUserDAO"%>
<%
if ( request.getSession().getAttribute("STKUserSession") == null) {
STKUserCookie userCookie = new STKUserCookie(request);
String userBadge = userCookie.getUserID();
STKUserDAO userDAO = new STKUserDAO();
STKUser user = userDAO.getUser(userBadge);
if (user != null) {
user.setIpAddress(request.getRemoteAddr());
userDAO.updateLoginCount(user);
request.getSession().setMaxInactiveInterval(36000); //set to 10 hours
request.getSession().setAttribute("STKUserSession", user);
}
}
%>
最佳答案
这看起来很适合用过滤器代替。创建过滤器类并使用 web.xml 中的模式引用它。除非所有其他选项都已合理用尽,否则不应使用 Scriptlet。
关于Java Web 应用程序 - 将 scriptlet 重构为最佳实践方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4402413/