Si no ha iniciado sesión, no puede acceder a las páginas en la carpeta de fondo. ¿Cómo determinar si iniciar sesión? El fondo es un directorio clave. Todos los que operan este directorio necesitan escribirlo en la tabla de registro. ¿Cómo implementarlo? Interceptor es una de las soluciones de implementación.
(1) Agregue SystemInterceptor en el paquete com.geloin.spring.interceptor y haga que herede el administrador del administrador
/ ** * * @author geoin */ paquete com.geloin.spring.interceptor; import java.io.printwriter; import java.util.iterator; import java.util.map; import javax.annotation.resource; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; importar org.springframework.stereotype.repository; importar org.springframework.web.servlet.handler.handlerinterceptorAdapter; import com.embest.ruisystem.form.systemloggerform; import com.embest.ruisystem.form.systemUserForm; import com.embest.ruisystem.service.systemloggerservice; import com.embest.ruisystem.util.constants; import com.embest.ruisystem.util.datautil; / ** * * * @Author Geoin */ @Repository Public Class SystemInterceptor extiende HandlerInterceptorAdapter {@Resource (name = "SystemlogGerService") Systemloggerservice privado SystemlogGERService; / * *) @SupessWarnings ({"RawTypes", "no marcado"}) @Override public boolean prehandle (httpservletRequest solicitud, respuesta httpservletreSponse, manejador de objetos) lanza la excepción {request.setcharacteriCoding ("utf-8"); respuesta.setcharacterEncoding ("UTF-8"); respuesta.setContentType ("text/html; charset = utf-8"); // String de control de sesión de fondo [] nofilters = new String [] {"Login.html", "vericode.html", "index.html", "logOut.html"}; Cadena uri = request.getRequesturi (); if (uri.indexof ("background")! = -1) {boolean befilter = true; for (cadena s: nofilters) {if (uri.indexof (s)! = -1) {befilter = false; romper; }} if (befilter) {object obj = request.getSession (). getAttribute (constants.logined); if (null == obj) {// no registrado en printwriter out = respuesta.getwriter (); StringBuilder Builder = new StringBuilder (); builder.append ("<script type =/" text/javaScript/"charset =/" utf-8/">"); builder.append ("alerta (/" página expira, inicie sesión nuevamente/");"); builder.append ("window.top.location.href =/" "); builder.append (constants.basePath); builder.append ("/fondos/index.html/"; </script>"); out.print (Builder.ToString ()); out.close (); devolver falso; } else {// Agregar cadena de registro operatecontent = constants.operateContent (uri); if (null! = operateContent) {string url = uri.substring (uri.indexof ("fondo")); Cadena 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.entry entry = it.next (); Objeto [] valores = (objeto []) Entry.getValue (); for (object obj: valores) {if (! dataUtIl.IsValuesUcceSED (obj)) {tire nueva runtimeException ("Hay caracteres ilegales:" + obj); }}} return super.prehandle (solicitud, respuesta, controlador); }}(2) Modifique el contexto-disspatcher.xml para que Spring administre los interceptores
<mvc: interceptores> <bean /> < /mvc: interceptores>
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.