Java Web应用程序 - 重构将scriptlet包含在最佳实践方法中

时间:2010-12-09 19:47:09

标签: java web-applications jsp servlets

我目前在所有jsp文件的顶部都包含以下内容:

<%@ include file="inc/inc_cookie_login.jsp"%>
<%@ include file="inc/inc_protect_page.jsp"%>
<%@ include file="inc/inc_log_access.jsp"%>

jsps的scriptlet分别为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方法运行良好但是现在我有一个更好的服务器设置并且可以使用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);
    }
}
%>

1 个答案:

答案 0 :(得分:1)

这看起来好像被过滤器取代。创建过滤器类并使用web.xml中的模式对其进行引用。除非所有其他选项都已经合理用尽,否则不应使用Scriptlet。