ssm框架攔截器
阿新 • • 發佈:2017-08-17
equal util handle lean java ttr 創建 bool bject
1.ssm框架的攔截器是在springmvc-servlet.xml配置文件中進行配置
<!-- 攔截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**" />
<bean class="cn.com.***.controller.common.SecurityInterceptor">
<!-- 不需要session驗證的地址 -->
<property name="excludeUrls">
<list>
<value>/web/index</value>
<value>/web/aboutsPage</value>
</list>
</property>
</bean>
</mvc:interceptor>
</mvc:interceptors>
2.創建一個攔截器實體類,繼承HandlerInterceptor,重寫它的方法,preHandle是調用Controller具體方法之前攔截,postHandle是調用Controller具體方法之後攔截,afterCompletion是完成頁面後調用,所以在preHandle裏面寫邏輯代碼,如登入之後怎麽做,沒登錄這麽做,或者根據不同的登錄平臺進行跳轉之類的邏輯
package cn.com.***.controller.common; import java.util.List; import javax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import cn.com.***.common.pojo.WSessionInfo; import cn.com.***.common.result.Constant; /** * 權限攔截器 */ public class SecurityInterceptor implements HandlerInterceptor {private List<String> excludeUrls;// 不需要攔截的資源 private List<String> wapUrls;//wapurl public List<String> getWapUrls() { return wapUrls; } public void setWapUrls(List<String> wapUrls) { this.wapUrls = wapUrls; } public List<String> getExcludeUrls() { return excludeUrls; } public void setExcludeUrls(List<String> excludeUrls) { this.excludeUrls = excludeUrls; } /** * 完成頁面的render後調用 */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception exception) throws Exception { } /** * 在調用controller具體方法後攔截 */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView modelAndView) throws Exception { } /** * 在調用controller具體方法前攔截 */ @SuppressWarnings("unchecked") @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception { //請求的路徑 String contextPath=request.getContextPath(); String url=request.getServletPath().toString(); StringBuffer realUrl = request.getRequestURL(); WSessionInfo sessionInfo = (WSessionInfo) request.getSession().getAttribute(Constant.SESSION_INFO); if (sessionInfo == null) { String isqian = url.substring(0, 4); if (isqian.equals("/wap")) { response.sendRedirect(contextPath + "/wap/adminLogin"); return true; }if (isqian.equals("/web")) { response.sendRedirect(contextPath + "/web/index"); } else if (realUrl.toString().equals(contextPath +"/web/index")) { response.sendRedirect(contextPath + "/wap/adminLogin"); return true; } } return true ; } }
ssm框架攔截器