Если вы не вошли в систему, вам не разрешено получать доступ к страницам в фоновой папке. Как определить, следует ли войти в систему? Фон является ключевым каталогом. Каждый, кто управляет этим каталогом, должен написать его в таблице журналов. Как его реализовать? Interceptor является одним из решений внедрения.
(1) Добавить SystemInterceptor в пакете com.geloin.spring.interceptor и сделать его наследственным обработчиком
/ ** * * @author geoin */ package com.geloin.spring.interceptor; Импорт java.io.printwriter; импортировать java.util.iterator; импортировать java.util.map; Импорт javax.annotation.resource; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; Import org.springframework.sterotype.repository; Импорт org.springframework.web.servlet.handler.handlerinterceptorAdapter; Import com.embest.ruisystem.form.systemloggerform; Import com.embest.ruisystem.form.systemuserform; Импорт com.embest.ruisystem.service.systemloggerservice; Импорт com.embest.ruisystem.util.constants; Импорт com.embest.ruisystem.util.datautil; / ** * * @author geoin */ @repository public class SystemEnterceptor Extends handlerInterceptorAdapter {@Resource (name = "SystemLoggerService") private SystemLoggerService SystemLoggerService; / * * (не-javadoc) * * @see * org.springframework.web.servlet.handler.handlerinterceptorAdapter#prehandle * (javax.servlet.http.httpservletrequest, * javax.servlet.htp.httpservelponse, java.lang.object.object.object.object.object.object.object.object.object.object.object.object.object.object. @Suppresswarnings ({"rawtypes", "unchecked"}) @override public boolean prehandle (httpservletrequest, httpservletresponse response, обработчик объекта) бросает исключение {request.setcharacterencoding ("utf-8"); response.setcharacterencoding ("UTF-8"); response.setContentType ("text/html; charset = utf-8"); // Строка управления фоновым сеансом [] nofilters = new String [] {"login.html", "vericode.html", "index.html", "logout.html"}; String uri = request.getRequesturi (); if (uri.indexof ("fourene")! = -1) {boolean befilter = true; for (String s: nofilters) {if (uri.indexof (s)! = -1) {befilter = false; перерыв; }} if (befilter) {object obj = request.getSession (). getAttribute (constants.logined); if (null == obj) {// не зарегистрировано в печатном виде = response.getWriter (); StringBuilder Builder = new StringBuilder (); builder.append ("<<script type =/" text/javascript/"charset =/" utf-8/">"); Builder.Append ("Alert (/" Page истекает, пожалуйста, войдите в систему снова/");"); builder.append ("window.top.location.href =/" "); builder.append (constants.basepath); builder.append ("/founal/index.html/"; </script>"); out.print (builder.tostring ()); out.close (); вернуть ложь; } else {// добавить строку log operateContent = constants.operateContent (uri); if (null! = OperateContent) {string url = uri.substring (uri.indexof ("founal")); String ip = request.getRemoteaddr (); Integer userId = ((SystemUserForm) obj) .getId (); SystemLoggerform form = new SystemLoggerForm (); form.setuserid (userid); form.setip (ip); form.setOperateContent (OperateContent); form.seturl (url); this.systemloggerservice.edit (form); }}}} Map paramsMap = request.getParameterMap (); for (iterator <map.entry> it = paramsmap.entryset (). iterator (); it .hasnext ();) {map.enter intrint = it.next (); Object [] values = (Object []) entry.getValue (); for (Object obj: values) {if (! datautil.isvalueUccessed (obj)) {бросить новое runtimeexception («Есть незаконные символы:« + obj); }}} return super.prehandle (запрос, ответ, обработчик); }}(2) Модифицировать контекст-dispatcher.xml, чтобы позволить перехватчикам управления пружиной
<MVC: Interceptors> <Bean /> < /mvc: Interceptors>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.