springmvc拦截器
来源:互联网 发布:qq号定位软件 编辑:程序博客网 时间:2024/05/24 00:27
1.定义拦截器
package com.lx.interceptor;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import com.lx.utils.RequestUtil;public class LoginInterceptor implements HandlerInterceptor { private List<String> excludeUrls;public List<String> getExcludeUrls() {return excludeUrls;}public void setExcludeUrls(List<String> excludeUrls) {this.excludeUrls = excludeUrls;}public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub}public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stub}public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// TODO Auto-generated method stub// 设置字符编码request.setCharacterEncoding("UTF-8");// 判断是否登录(只拦截前台登录)HttpSession session = request.getSession();String requestUrl = RequestUtil.getRequestPath(request);for (String excludeUrl : excludeUrls) {if (requestUrl.indexOf(excludeUrl) != -1) {return true;}}String s=(String) session.getAttribute("123");System.out.println(s);if("123".equals(s)) {System.out.println("session tong______");return true;}response.sendRedirect(request.getContextPath() + "/login.jsp");return false;}}2、在spring-mvc.xml中配置
<mvc:interceptors>
<bean class="com.lx.interceptor.LoginInterceptor">
<property name="excludeUrls">
<list>
<value>/login</value>
</list>
</property>
</bean>
</mvc:interceptors>
3、RequestUtil中的内容
package com.lx.utils;import javax.servlet.http.HttpServletRequest;public class RequestUtil {public static String getRequestPath(HttpServletRequest request) {String requestPath = request.getRequestURI();requestPath = requestPath.substring(request.getContextPath().length());// 鍘绘帀椤圭洰璺緞return requestPath;}private static final String[] PROXY_REMOTE_IP_ADDRESS = { "X-Forwarded-For", "X-Real-IP" };public static String getRemoteIp( HttpServletRequest request ) { for ( int i = 0 ; i < PROXY_REMOTE_IP_ADDRESS.length ; i++ ) { String ip = request.getHeader( PROXY_REMOTE_IP_ADDRESS[i] ); if ( ip != null && ip.trim().length() > 0 ) { return getRemoteIpFromForward( ip.trim() ); } } return request.getRemoteHost();} private static String getRemoteIpFromForward( String xforwardIp ) { int commaOffset = xforwardIp.indexOf( ',' ); if ( commaOffset < 0 ) { return xforwardIp; } return xforwardIp.substring( 0 , commaOffset );}}
阅读全文
0 0
- [SpringMVC] SpringMVC拦截器
- SpringMVC-----9、SpringMVC拦截器
- springMVC—springMVC拦截器
- springMVC 拦截器
- SpringMVC—拦截器
- springmvc 拦截器配置
- SpringMvc拦截器
- SpringMvc 拦截器
- springMVC 拦截器
- springmvc登录拦截器
- springMVC之拦截器
- SpringMVC使用拦截器
- springMVC 自定义拦截器
- springmvc拦截器实现
- springMVC 拦截器
- springmvc的拦截器
- SpringMVC拦截器
- springMVC拦截器
- Http Session丢失
- git 上传代码方法
- Intellij Idea get/set方法快捷键
- Spring技术
- Android widget之ImageView
- springmvc拦截器
- 关于kafka中的timestamp与offset的对应关系
- SQL 中的连接查询
- org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No leas e on
- 一份Service的通用接口编写!
- MyBatis教程之六注解使用详解
- 什么?多个体多维度分析效率能从3天压缩到30分钟?
- 基于nodejs+zookeeper服务发现
- storm hook的使用