Java web应用程序-重构将Scriptlet纳入最佳实践方法

Java web应用程序-重构将Scriptlet纳入最佳实践方法,java,web-applications,jsp,servlets,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"%> 这看起来是一个很好的过滤器来代替。创建筛选器类并在web.xml中使用模式引用它。除非所有其他选项都已合理用尽,否则不应使用Scriptlet。

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

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

这看起来是一个很好的过滤器来代替。创建筛选器类并在web.xml中使用模式引用它。除非所有其他选项都已合理用尽,否则不应使用Scriptlet。

这看起来是一个很好的选项,可以用过滤器代替。创建筛选器类并在web.xml中使用模式引用它。除非所有其他选项都已合理用尽,否则不应使用Scriptlet。

对于cookie登录,新HTTP会话创建的侦听器不是更好的选择吗?在每次访问页面时都要检查STKUserSession是否为null,这似乎有些过分。每个访问者都应该有一次doen,对吗?如果你能保证会话不为空,那么每个访问者都应该有一次doen。根据实现的不同,您可能会得到一个不包含STKUserSession的有效会话。但总的来说,是的,我同意新会话上的侦听器可能会更好。对于cookie登录,创建新HTTP会话的侦听器不是更好的选择吗?在每次访问页面时都要检查STKUserSession是否为null,这似乎有些过分。每个访问者都应该有一次doen,对吗?如果你能保证会话不为空,那么每个访问者都应该有一次doen。根据实现的不同,您可能会得到一个不包含STKUserSession的有效会话。但总的来说,是的,我同意在新的会议上有一个听众可能会更好。
<%@ 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);
    }
}
%>