Se você não estiver conectado, não poderá acessar as páginas na pasta em segundo plano. Como determinar se deve fazer login? Antecedentes é um diretório -chave. Todo mundo que opera esse diretório precisa escrevê -lo na tabela de log. Como implementá -lo? O Interceptor é uma das soluções de implementação.
(1) Adicione o SystemInterceptor no pacote com.geloin.spring.interceptor e faça com que o Heriting HandlerInterceptor
/ ** * * @author geoin */ package com.geloin.spring.intercept; importar java.io.printwriter; importar java.util.iterator; importar java.util.map; importar javax.annotation.resource; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar org.springframework.tereotype.repository; importar org.springframework.web.servlet.handler.HandlerInterceptorAdapter; importar com.embest.ruisystem.form.systemLoggerForm; import com.embest.ruisystem.form.systemuserform; import com.embest.ruisystem.service.systemLoggerService; importação com.embest.ruisystem.util.constants; importação com.embest.ruisystem.util.datautil; / ** * * @Author Geoin */ @Repository Public Class SystemInterceptor estende HandlerInterceptAdapter {@Resource (name = "SystemLoggerService") private SystemLoggerService SystemLoggerService; /* * (non-Javadoc) * * @see * org.springframework.web.servlet.handler.HandlerInterceptorAdapter#preHandle * (javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse, java.lang.Object) */ @Suppresswarnings ({"RawTypes", "desmarcado"}) @Override public boolean prehandle (solicitação httpServletRequest, resposta httpSertletResponse, manipulador de objetos) lança a exceção {request.SetcharacterEncoding ("utf-8"); Response.Setcharacterencoding ("UTF-8"); Response.setContentType ("Texto/html; charset = utf-8"); // String de controle da sessão em segundo plano String [] Nofilters = new String [] {"login.html", "vericode.html", "index.html", "logout.html"}; String uri = request.getRequesturi (); if (uri.indexOf ("Background")! = -1) {boolean befilter = true; for (string s: nofilters) {if (uri.indexOf (s)! = -1) {befilter = false; quebrar; }} if (befilter) {object obj = request.getSession (). getAttribute (constantes.logined); if (null == obj) {// não registrado no printWriter out = Response.getWriter (); StringBuilder Builder = new StringBuilder (); construtor.Append ("<tipo de script =/" text/javascript/"charset =/" utf-8/">"); builder.append ("alert (/" A página expira, faça login novamente/");"); builder.append ("window.top.location.href =/" "); builder.append (constantes.basepath); builder.append ("/background/index.html/"; </script>"); out.print (builder.toString ()); out.Close (); retornar falso; } else {// Adicione o log de string operatioContent = constantes.operatEcontent (URI); if (null! = OperatEContent) {string url = uri.substring (uri.indexof ("background")); String ip = request.getRemoTeaddr (); Inteiro UserID = ((SystemUserForm) obj) .getId (); SystemLoggerForm Form = new SystemLoggerForm (); form.setUserID (UserID); form.setip (IP); form.setOperatEContent (OperatEContent); form.seturl (url); this.systemLoggerService.edit (form); }}}} Mapa paramsmap = request.getParameTerMap (); for (iterator <pap.entry> it = paramsmap.entrySet (). iterator (); it .hasNext ();) {map.entry Entry = it.Next (); Objeto [] valores = (object []) Entry.getValue (); para (objeto obj: valores) {if (! datautil.isValuesucced (obj)) {lança nova execução de tempo ("Existem caracteres ilegais:" + obj); }}} retornar super.prehrendle (solicitação, resposta, manipulador); }}(2) Modifique o context-dispatcher.xml para permitir que a primavera gerencie os interceptores
<mvc: interceptores> <bean /> < /mvc: interceptores>
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.