SpringMVC拦截机制(IntercePtor),以及自定义异常处理页面

12 篇文章 0 订阅
5 篇文章 0 订阅

一)在springMvc核心配置文件中配置

	<!-- 配置拦截器 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**" />
			<!-- 释放静态资源 -->
			<mvc:exclude-mapping path="/js/**" />
			<mvc:exclude-mapping path="/css/**" />
			<!-- 拦截器路径 -->
			<bean class="com.oracle.sm.interceptor.IntercePtor"></bean>
		</mvc:interceptor>
	</mvc:interceptors>

二)新创建一个包 com.oracle.sm.interceptor,创建一个IntercePtor类
重写三个方法
preHandle:进入处理器之前进入

// 获取请求路径
		String path = request.getRequestURI();
		// 登录操作,不能拦截
		if (path.contains("user")) {
			System.err.println("包含关键url,user放行");
			return true;
		} else {
			// 取到当前用户的session对象
			HttpSession session = request.getSession(false);
			if (session != null) {
				if (session.getAttribute("user") != null) {
					System.err.println("用户已经登录,放行");
					return true;
				} else {
					response.sendRedirect(request.getContextPath() + "/user/dologin.action");
					System.err.println("未登录被拦截");
				}
			} else {
				response.sendRedirect(request.getContextPath() + "/user/dologin.action");
				System.err.println("未登录被拦截");
			}
		}
		return false;

postHandle:进入处理器,返回视图给核心控制器的时候,拦截(暂无代码演示)
afterCompletion:请求处理全部处理完成之后会被该方法拦截

		System.out.println("视图渲染完毕,此次拦截结束");
		//可以对异常进行统一处理
		if(ex!=null){
			log.equals(ex.getMessage());
		}

三)配置web.xml文件

	<error-page>
		<error-code>404</error-code>
		<location>/WEB-INF/pages/exception/404.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/WEB-INF/exception/500.jsp</location>
	</error-page>

四)修改log4j.properties中的文件

log4j.rootCategory=DEBUG,stdout,logfile
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值