springMVC 拦截器session控制
来源:互联网 发布:怎么避开淘宝查售假 编辑:程序博客网 时间:2024/05/22 11:57
未登录,不允许访问background文件夹内的页面,那如何判断是否登录呢?background是关键目录,每个操作该目录的人都需要写在日志表中,如何实现呢?拦截器是实现方案之一。
(1) 在com.geloin.spring.interceptor包中添加SystemInterceptor,并使其继承HandlerInterceptor
- /**
- *
- * @author geloin
- * @date 2012-3-27 下午2:29:35
- */
- 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 geloin
- * @date 2012-3-27 下午2:29:35
- */
- @Repository
- public class SystemInterceptorextends 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");
- // 后台session控制
- 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) {
- // 未登录
- PrintWriter out = response.getWriter();
- StringBuilder builder = new StringBuilder();
- builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
- builder.append("alert(\"页面过期,请重新登录\");");
- builder.append("window.top.location.href=\"");
- builder.append(Constants.basePath);
- builder.append("/background/index.html\";</script>");
- out.print(builder.toString());
- out.close();
- returnfalse;
- } else {
- // 添加日志
- 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("有非法字符:" + obj);
- }
- }
- }
- return super.preHandle(request, response, handler);
- }
- }
- springMVC 拦截器session控制
- springMVC 拦截器session控制
- SpringMVC中Session超时拦截器配置
- SpringMVC中Session超时拦截器配置
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- Spring MVC,拦截器实现session控制
- SpringMVC 登陆拦截器实现登陆控制
- SpringMVC拦截器实现登录控制
- 使用springmvc拦截器进行登录控制
- SpringMVC通过拦截器实现登录控制
- 基于springmvc拦截器得权限控制
- SpringMVC配置拦截器实现登录控制
- SpringMVC拦截器实现登录控制
- 又是新开始
- windbg的系统异常状态设置
- 深入浅出MIPS 三 MIPS的协处理器CP0
- ASP.NET树形控件TreeView的递归绑定
- Quartz CronTrigger最完整配置说明
- springMVC 拦截器session控制
- 重载(Overload)与重写(Override)
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 滚动条
- Oracle重置序列(不删除重建方式)
- webSphere下载地址
- EventThread线程对VSync的分发
- IIS 选择ASP.NET版本无2.0 / 修改IIS全局默认文档
- 资料网站链接收集