JAVA_OA(六):SpringMVC拦截器
2016-06-18 13:32
471 查看
说明
到这篇文章前,我们们所有的网页都是在可以直接在浏览器中输入XXX.do来直接访问的,甚至在得到jsp页面后,可以直接通过请求看到数据库的表格!
而这肯定是开发所不允许的.故而,是时候让拦截器登场了,而他也正是一个基本的登录实例所必须的组件.
a 创建拦截器组件,实现HandlerInterceptor接口
public class LoginInteceptor implements HandlerInterceptor{ // 其中要实现三个方法 //afterCompletion,postHandle,preHandle //preHandle在处理器执行前被调用这个方法,如果返回的结果为true ,那么继续执行后续的操作,如果为false,后面的程序将不再执行 /** * 拦截器 拦截请求完事调用 */ public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("afterCompletion"); } /** * 拦截器 拦截请求之后调用 */ public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("postHandle"); } /** * 拦截器 拦截请求之前调用 */ public boolean preHandle(HttpServletRequest req, HttpServletResponse res, System.out.println("preHandle"); //以下是具体代码 HttpSession session=req.getSession(); String str=(String) session.getAttribute("login"); if(null==str||"".equals(str)){ // getContextPath而非直接写路径->防止硬编码->避免项目改名时,修改大量代码. res.sendRedirect(req.getContextPath()+"/login.jsp"); return false; } if(str.equals("true")){ return true; }else{ res.sendRedirect(req.getContextPath()+"/login.jsp"); return false; } //以上是具体代码 } /** * 如果返回的是 false 此请求 就此拦截 * 如果返回的是true 继续走你下面的程序 */ } ... }
b 注册拦截器组件
<!-- 配置我们的拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <!--对所有访问进行拦截--> <!-- 对/user/login.do进行拦截处理--> <mvc:exclude-mapping path="/user/login.do"/> <bean id="loginInterceptor" class="com.throne.util.UserInteceptor"></bean> </mvc:interceptor> </mvc:interceptors>
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序