springmvc新建拦截器
生活随笔
收集整理的這篇文章主要介紹了
springmvc新建拦截器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【1】web.xml中配置springmvc的配置文件路徑
<!-- 配置 DispatcherServlet --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置 DispatcherServlet 的一個 初始化參數,其作用是配置 springmvc 配置文件的位置和名稱--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- mapping --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>【2】springmvc.xml 中配置自定義攔截器
<mvc:interceptors><!-- 配置自定義的攔截器 --><bean class="com.swjtu.springmvc.interceptors.FirstInterceptor"></bean><!-- <mvc:interceptor> 可以配置作用的路徑,也可以配置不作用的路徑 --><mvc:interceptor><mvc:mapping path="/emps"/> <bean class="com.swjtu.springmvc.interceptors.SecondInterceptor"></bean></mvc:interceptor><!-- 配置 LocaleChangeInterceptor --><bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean></mvc:interceptors>【3】自定義攔截器
顯然 攔截器的邏輯,可以在業務邏輯之前,也可以在業務邏輯之后執行;?
public class FirstInterceptor implements HandlerInterceptor {/*** 該方法在目標方法之前被調用* , 若返回值為 true, 則繼續調用后續的攔截器和目標方法, * 若返回值為false, 則不會再調用 后續的攔截器和目標方法;* * 可以考慮做權限, 或者是日志 或者事務(開啟事務)*/@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {System.out.println("first preHandle");return true;}/*** 調用目標方法之后, 但渲染視圖之前被調用; * * 可以對 請求域中的屬性或視圖做修改;* */@Overridepublic void postHandle(HttpServletRequest request,HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {System.out.println("first postHandle");}/*** 渲染視圖之后被調用 ;* * 釋放資源 */@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {System.out.println("first afterCompletion"); } }【4】訪問?? ?http://localhost:8080/springmvc02/springmvc/emps?
@RequestMapping("/springmvc") @Controller public class EmployeeHandler { /*** 獲取 員工列表* @param map* @return*/@RequestMapping("/emps")public String list(Map<String, Object> map) {System.out.println("list(Map<String, Object> map)方法開始");map.put("emps", employeeDao.getAll());System.out.println("list(Map<String, Object> map)方法結束");return LIST; } }打印結果
first preHandle @ModelAttribute getEmployee(...) list(Map<String, Object> map)方法開始 list(Map<String, Object> map)方法結束 first postHandle first afterCompletion總結
以上是生活随笔為你收集整理的springmvc新建拦截器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑主板5v灯带制作(5v灯带接线图)
- 下一篇: 新年快乐的英语怎么说 新年快乐的英语怎么