Si vous n'êtes pas connecté, vous n'êtes pas autorisé à accéder aux pages dans le dossier d'arrière-plan. Comment déterminer s'il faut se connecter? Le fond est un répertoire clé. Tous ceux qui exploitent ce répertoire doivent l'écrire dans la table de journal. Comment l'implémenter? Interceptor est l'une des solutions de mise en œuvre.
(1) Ajouter SystemInterceptor dans le package com.geloin.spring.Interceptor et faire hériter du gestionnaire de gestionnaire
/ ** * * @author geoin * / package com.geloin.spring.interceptor; import java.io.printwriter; Importer java.util.iterator; importation java.util.map; import javax.annotation.resource; Importer javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; import org.springframework.sterreotype.repository; import org.springframework.web.servlet.handler.handlerInterceptorAdapter; Importer com.embest.Ruisystem.form.SystemLoggerForm; Importer com.embest.Ruisystem.form.SystemUserForm; Importer com.embest.Ruisystem.Service.SystemLogGerService; Importer com.embest.Ruisystem.util.constants; Import com.embest.Ruisystem.util.datautil; / ** * * @Author Geoin * / @Repository public class SystemInterceptor étend HandlerInterceptorAdapter {@Resource (name = "SystemLogGerService") SystemLogGerService SystemLogGerService privé; / * * (non javadoc) * * @see * org.springframework.web.servlet.handler.handlerinterceptoradapter # prehandle * (javax.servlet.http.httpservletRequest, * javax.servlet.http.httpservletRequest, java @SuppressWarnings ({"RawTypes", "Unchecked"}) @Override Public Boolean Prehandle (HttpServletRequest Request, HttpservletResponse Response, Object Handler) Throws Exception {request.SetcharActerencoding ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; charSet = UTF-8"); // Contrôle de session de fond 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; casser; }} if (beFilter) {objet obj = request.getSession (). getAttribute (constants.logined); if (null == obj) {// non connecté dans printwriter out = réponse.getWriter (); StringBuilder Builder = new StringBuilder (); builder.append ("<script type = /" text / javascript / "charset = /" utf-8 / ">"); builder.append ("alert (/" page expire, veuillez vous connecter à nouveau / ");"); builder.append ("window.top.location.href = /" "); builder.append (constants.basepath); builder.append (" / background / index.html / "; </cript>"); out.print (builder.toString ()); out.close (); retourne false; } else {// Ajouter un logic de journal opératent = constants.OperateContent (uri); if (null! = OperateContent) {String url = uri.substring (uri.indexof ("fond")); 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 (formulaire); }}}} Map paramsmap = request.getParameTermap (); for (iterator <map.entry> it = paramsmap.entryset (). iterator (); it .hasnext ();) {map.entry entrée = it.next (); Objet [] valeurs = (objet []) entrée.getValue (); pour (objet obj: valeurs) {if (! dataUtil.isvaluesuCcessed (obj)) {lancez new RuntimeException ("il y a des caractères illégaux:" + obj); }}} return super.prehandle (demande, réponse, gestionnaire); }}(2) Modifier context-Dispatcher.xml pour laisser le printemps gérer les intercepteurs
<MVC: Interceptors> <Bean /> </ MVC: Interceptors>
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.