Недавно я сделал проект, который имеет требования. Я хочу реализовать функцию автоматического входа в систему. Проверяя соответствующую информацию, я планирую использовать мониторинг сеансов для этого. Ниже приведен список методов настройки монитора:
1. Добавьте следующий код в файл проекта web.xml:
<!-Добавить сеанс слушатель-> <Learser> <lloader-class> patherse </sluster-class> </sluster>
2. Напишите классы Java.
Общедоступный класс SessionListener реализует httpsessionListener {public void sessionCreated (httpsessionEvent arg0) {// simpledateformat, когда сеанс создается SimpleFormat SimpleFormat = new SimpleDateFormat ("mm-ss-ms"); string whiletimes = simpleformat.format (new Date (); us = null-cemorge. "+nowtimes+" _ "+u); httpsession ses = arg0.getsession (); string id = ses.getid ()+" _ "+ses.getCreationtime ();} public void sessionDestroyed (httpsessionEvent arg0) {// simpledateformat exection exections exections exeply-mms-sesformats mmss-mmss mmss-mms-sesformats = newformats = newformats = histed-mmss-mms-sesformats = newformats = newformats exemors-mms-mms-mms-sesformats =»; String wytimes = simpleformat.format (new Date ()); //System.out.println("session истек ..После завершения конфигурации я успешно ввел метод сеанса, проведенный после истечения сеанса. Я был готов выполнить операцию прыжка с страницы. Я внезапно узнал, как написать прыжок. Я был ошеломлен и продолжил заниматься интернетом, чтобы спросить мастера. Я обнаружил, что этот монитор был сделан с некоторой обработкой фоновой статистики и не мог реализовать функцию прыжка страницы.
Я могу отказаться только от этого метода и начать использовать фильтры для его реализации
1. Добавить конфигурацию фильтра в web.xml
<filter> <filter-name> sessionfilter </filter-name> <filter-class> com.orchestrall.web.helper.session.sessionFilter </filter-class> </filter> <Filter-Mapping> <Filter-name> SessionFilter </filter-name> <Url-pattern>/actions/*</</url-pattern-pattert-pattert-mapping>
2. Создайте новый класс SessionFilter для реализации интерфейса фильтра.
открытый класс SessionFilter реализует фильтр {public void destress () {// todo автоматическое сгенерированное метод stub} public void dofilter (запрос ServletRequest, отклик ServletRespons httpresponse = (httpservletresponse) ответ; httpsession session = httprequest.getsession (); // rog in urlstring loginurl = httprequest.getContextPath () + "/admin/login.jsp"; rl = httprequest.getquest url.substring (url.lastindexof ("/")); // Обработка тайм -аута, время ожидания запроса ajax устанавливает статус тайм -аута, а время ожидания запроса страницы вернет подсказку и перенаправляет if (path.indexof (". Action")! = -1 && session.getattrю (httprequest.getheader ("x-requested-with")! = null && httprequest.getheader ("x-requested-with"). Equalsignorecase ("xmlhttprequest")) {httpresponse.addhader ("SessionStatus", «Тайм -аут»); httpresponse.addheader ("loginpath", loginurl); chain.dofilter (запрос, ответ); // невозможно, в противном случае запрос будет ошибкой} else {string str = "<script language = 'javascript'> alert ('сеанс истекает, пожалуйста, войдите в систему');"+ " "; </script>"; response.setContentType ("text/html; charset = utf-8"); // Решение китайской искаженной Try {printwriter writer = response.getWriter (); writer.write (str); writer.flush (); writer.close ();} catch (Exception e) {e.printcktrace ();); {chain.dofilter (request, response);}}@overdepublic void init (filterConfig arg0) Throws ServletException {// TODO Auto Generated Method Stub}}3. Client JS, используемый для сеанса запроса Ajax
Для jQuery
<script type = "text/javascript"> $ (document) .ajaxcomplete (function (event, xhr, settings) {if (xhr.getResponseHeader ("sessionStatus") == "Timeout") {if (xhr.getResponseHeader ("loginPath")) {alert (alert expires, пожалуйста! window.location.replace (xhr.getResponseHeader ("LoginPath")); </script>Ajax запрос на extjs
Ext.ajax.on ('requestComplete', checkusersessionStatus, this); function chectusersessessionStatus (conn, ответ, опции) {if (response.getResponseHeader ("sessionStatus") == 'Timeout') {if (response.getResponseHeader ("logInPath")) {alert (afer in in in vible in = response.getResponseHeader ("loginPath");} else {alert ("Timeout, пожалуйста, войдите в систему!");}}}Если глобальный метод не влияет на определенный запрос Ajax, то при использовании метода $ .ajax () глобальный в параметре может быть установлен на False. Код jQuery выглядит следующим образом:
$ .ajax ({url: "test.html", Global: false // Не запускайте глобальное событие Ajax})Выше приведен пример кода, который редактор представил вам, что сеанс автоматически перепрыгнет на страницу входа после истечения срока его действия. Я надеюсь, что это будет полезно для всех. Если вы хотите узнать больше, обратите внимание на веб -сайт wulin.com!