SpringMvc登陆拦截器的基本使用
来源:互联网 发布:网络推编辑 编辑:程序博客网 时间:2024/04/30 06:10
步骤一:编写一个拦截器类
import java.io.PrintWriter;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.log4j.Logger;import org.springframework.stereotype.Repository;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import com.base.utils.SessionName;@Repositorypublic class SystemInterceptor extends HandlerInterceptorAdapter {//在配置文件中配置要放行的URLprivate List<String> paramList;Logger log = Logger.getLogger(SystemInterceptor.class);@Overridepublic 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");HttpSession session = request.getSession();// 请求的虚拟目录String basePath = request.getContextPath();String requestPath = request.getServletPath();try {if (!requestPath.contains(".")) {log.info(">>" + requestPath);// 判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环if (session == null || session.getAttribute(SessionName.ADMIN_USER_ID) == null) {// 未登录//放心的连接if (paramList.contains(requestPath)) {return super.preHandle(request, response, handler);} else {// 未登录 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(basePath); builder.append("/manageAdminUser/toLogin\";</script>"); out.print(builder.toString()); out.close(); return false; // response.sendRedirect(basePath + "/manageAdminUser/toLogin");// 登陆页面}} else {// 已登录request.setAttribute("requestPath", requestPath);return super.preHandle(request, response, handler);}} else {return super.preHandle(request, response, handler);}} catch (Exception e) {e.printStackTrace();}return false;}//设置放行的URLpublic void setParamList(List<String> paramList) {this.paramList = paramList;}}
步骤二:在spring-servlet.xml中配置拦截器
<!-- 拦截器 --> <mvc:interceptors> <bean class="com.base.interceptor.SystemInterceptor"> <!-- 配置不拦截的URL --><property name="paramList"><list><value>/manageAdminUser/toLogin</value><value>/manageAdminUser/login</value><value>/manageAdminUser/pcrimg</value><value>/api/client/login</value><value>/api/client/loginDirect</value><value>/api/client/loginDemo</value><value>/api/client/loginDemoAjax</value><value>/api/client/uploadDoc</value><value>/api/client/mvdoc</value><value>/api/client/docs</value></list></property> </bean> </mvc:interceptors>
<span style="white-space:pre"></span><servlet><servlet-name>spring3</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring3-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>spring3</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
0 0
- SpringMvc登陆拦截器的基本使用
- springmvc用bootstrap实现登陆+拦截器的使用
- springMVC登陆拦截器
- Springmvc 拦截器的基本配置和使用
- SpringMVC拦截器实现登陆时的验证拦截
- SpringMVC拦截器使用时基本分析
- SpringMVC 登陆拦截器实现登陆控制
- SpringMvc 拦截器的使用
- springMVC拦截器的使用
- SpringMVC拦截器的使用
- springmvc拦截器的使用
- springMVC拦截器的使用
- springMvc拦截器的使用
- SpringMVC拦截器的使用
- springMvc拦截器的使用
- SpringMvc拦截器的使用
- springmvc的拦截器使用
- springMvc的interceptor拦截器实现用户免登陆的
- 如何选书?
- java微云快速开发平台
- 理解Bitcode:一种中间代码
- vs2010中快捷键总结(1)
- vi/qt creator/vc/vs下对齐代码的操作
- SpringMvc登陆拦截器的基本使用
- client.transport.sniff的使用方法
- centos中为php安装GnuPG扩展
- viewpager、fragment滑动切换卡顿问题
- 深入理解linux系统下proc文件系统内容
- Android双SD卡路径获取
- tomcat配置数据源案例
- 浅谈逆序数
- linux /proc/pid/maps 信息分析