This article is based onSpring MVC annotations to make Spring run。
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 to the package and make it inherit HandlerInterceptor
/**
*
* @author geloin
* @date 2012-3-27 2:29:35 pm
*/
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
/**
*
* @author geloin
* @date 2012-3-27 2:29:35 pm
*/
@Repository
public class SystemInterceptor extends HandlerInterceptorAdapter {
@Resource(name = "systemLoggerService")
private SystemLoggerService systemLoggerService;
/*
* (non-Javadoc)
*
* @see
* #preHandle
* (,
* , )
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
("UTF-8");
("UTF-8");
("text/html;charset=UTF-8");
// Backend session control
String[] noFilters = new String[] { "", "",
"", "" };
String uri = ();
if (("background") != -1) {
boolean beFilter = true;
for (String s: noFilters) {
if ((s) != -1) {
beFilter = false;
break;
}
}
if (beFilter) {
Object obj = ().getAttribute(
);
if (null == obj) {
// Not logged in
PrintWriter out = ();
StringBuilder builder = new StringBuilder();
("<script type=\"text/javascript\" charset=\"UTF-8\">");
("alert(\"page expired, please log in again\");");
("=\"");
();
("/background/\";</script>");
(());
();
return false;
} else {
// Add log
String operateContent = (uri);
if (null != operatorContent) {
String url = (("background"));
String ip = ();
Integer userId = ((SystemUserForm) obj).getId();
SystemLoggerForm form = new SystemLoggerForm();
(userId);
(ip);
(operateContent);
(url);
(form);
}
}
}
}
Map paramsMap = ();
for (Iterator<> it = ().iterator(); it
.hasNext();) {
entry = ();
Object[] values = (Object[]) ();
for (Object obj : values) {
if (!(obj)) {
throw new RuntimeException("Illegal characters:" + obj);
}
}
}
return (request, response, handler);
}
}
(2) Modify and let spring manage interceptors
<mvc:interceptors>
<bean class="" />
</mvc:interceptors>