If you are not logged in, you are not allowed to access the pages in the background folder. How to determine whether to log in? background is a key directory. Everyone who operates this directory needs to write it in the log table. How to implement it? Interceptor is one of the implementation solutions.
(1) Add SystemInterceptor in the com.geloin.spring.interceptor package and make it inherit HandlerInterceptor
/** * * @author geoin */ package 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; import org.springframework.stereotype.Repository; import 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 extends HandlerInterceptorAdapter { @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", "unchecked" }) @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); // Background session control 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; break; } } if (beFilter) { Object obj = request.getSession().getAttribute( Constants.LOGINED); if (null == obj) { // Not logged in PrintWriter out = response.getWriter(); StringBuilder builder = new StringBuilder(); builder.append("<script type=/"text/javascript/" charset=/"UTF-8/">"); builder.append("alert(/"page expires, please log in again/");"); builder.append("window.top.location.href=/""); builder.append(Constants.basePath); builder.append("/background/index.html/";</script>"); out.print(builder.toString()); out.close(); return false; } else { // Add log String operateContent = Constants.operateContent(uri); if (null != operateContent) { String url = uri.substring(uri.indexOf("background")); 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.Entry entry = it.next(); Object[] values = (Object[]) entry.getValue(); for (Object obj : values) { if (!DataUtil.isValueSuccessed(obj)) { throw new RuntimeException("There are illegal characters: " + obj); } } } return super.preHandle(request, response, handler); } }(2) Modify context-dispatcher.xml to let spring manage interceptors
<mvc:interceptors> <bean /> </mvc:interceptors>
The above is all the content of this article. I hope it will be helpful to everyone's learning and I hope everyone will support Wulin.com more.