Jika Anda tidak masuk, Anda tidak diizinkan mengakses halaman di folder latar belakang. Bagaimana cara menentukan apakah akan masuk? Latar belakang adalah direktori utama. Setiap orang yang mengoperasikan direktori ini perlu menulisnya di tabel log. Bagaimana cara mengimplementasikannya? Interceptor adalah salah satu solusi implementasi.
(1) Tambahkan SystemInterceptor di paket com.geloin.spring.interceptor dan buat waris handlerinterceptor
/ ** * * @author geoin */ package com.geloin.spring.interceptor; impor java.io.printwriter; impor java.util.iterator; impor java.util.map; impor javax.annotation.Resource; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor org.springframework.stereotype.repository; impor org.springframework.web.servlet.handler.handlerinteptoradapter; impor com.embest.ruisystem.form.systemloggerform; impor com.embest.ruisystem.form.systemuserform; impor com.embest.ruisystem.service.systemloggerservice; impor com.embest.ruisystem.util.constants; impor com.embest.ruisystem.util.datautil; / ** * * @Author Geoin */ @Repository Public Class SystemInterceptor Extends HandlerInterceptorAdapter {@Resource (name = "SystemLogGerService") Private SystemLoggerService SystemLoggerService; / *; @SuppressWarnings ({"RawTypes", "Uncecked"}) @Override Public Boolean Prehandle (permintaan httpservletRequest, respons httpservletResponse, penangan objek) Lempar pengecualian {request.setcharacterencoding ("UTF-8"); response.setcharacterencoding ("UTF-8"); response.setContentType ("Teks/html; charset = utf-8"); // string kontrol sesi latar belakang [] nofilters = string baru [] {"login.html", "vericode.html", "index.html", "logout.html"}; String uri = request.getRequesturi (); if (uri.indexof ("latar belakang")! = -1) {boolean befilter = true; untuk (string s: nofilters) {if (uri.indexof (s)! = -1) {befilter = false; merusak; }} if (befilter) {objek obj = request.getSession (). getAttribute (constants.logined); if (null == obj) {// tidak masuk dalam printwriter out = response.getWriter (); StringBuilder builder = new StringBuilder (); builder.append ("<script type =/" text/javascript/"charset =/" utf-8/">"); builder.append ("peringatan (/" halaman kedaluwarsa, silakan masuk lagi/");"); builder.append ("window.top.location.href =/" "); builder.append (constants.basepath); builder.append ("/latar belakang/index.html/"; </script>"); out.print (builder.tostring ()); out.close (); mengembalikan false; } else {// tambahkan log string operateContent = constants.operateContent (uri); if (null! = operateContent) {string url = uri.substring (uri.indexof ("latar belakang")); String ip = request.getRemoteAddr (); Integer userid = ((SystemUserForm) obj) .getId (); SystemLoggerForm form = SystemLogGerForm baru (); form.setUserId (userid); form.setip (ip); Form.setoperateContent (OperATECONTENT); form.setUrl (url); this.systemloggerservice.edit (form); }}}} Peta paramsmap = request.getParametermap (); untuk (iterator <map.entry> it = paramsmap.entryset (). iterator (); it .hasnext ();) {map.entry entri = it.next (); Objek [] values = (objek []) entri.getValue (); untuk (objek obj: values) {if (! DataUtil.isValuesuccessed (OBJ)) {lempar runtimeException baru ("Ada karakter ilegal:" + obj); }}} return super.prehandle (permintaan, respons, pawang); }}(2) Modifikasi konteks-dispatcher.xml untuk membiarkan musim semi mengelola pencegat
<MVC: Interceptors> <bean /> </mvc: Interceptors>
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.