Веб-приложение Java - рефакторинг включает сценарии в подход передового опыта - PullRequest
1 голос
/ 09 декабря 2010

В настоящее время у меня есть следующие включения вверху всех моих файлов jsp:

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

В jsps есть скриптлеты, которые 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., соответственно.

Подход с использованием скриплетов, описанный выше, сработалхорошо, но теперь, когда я настроил сервер лучше и могу использовать файл 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 Ответ

1 голос
/ 09 декабря 2010

Это похоже на то, что нужно заменить фильтром. Создайте класс фильтра и присвойте ему образец в вашем файле web.xml. Скриплеты не должны использоваться, если все остальные опции не были разумно исчерпаны.

...