-
拦截器的方法介绍:查看全部
-
拦截器Interceptor的实现:查看全部
-
获取session 3查看全部
-
获取session查看全部
-
可以深入了解,拦截器的作用很大!!!过滤器也作为相比较了解记忆一下 过滤器:过滤的作用,过滤不必要的东西,例如spring本身在的filter类,最终应该还是有东西进去action当中! 拦截器:拦截,有没有东西最终通过在于preHandler的内容,后续输出的内容也可以经过post、after来处理一下!依赖于spring mvc框架查看全部
-
使用拦截器的好处: 拦截器可以处理Web应用中请求的一些共性问题. 共性问题在拦截器中处理,可以减少重复代码,便于维护.查看全部
-
拦截器与过滤器的区别: 过滤器依赖于Servlet容器,基于回调函数,过滤范围大(静态资源可以被过滤器过滤). 拦截器依赖于框架容器,基于java反射机制,只过滤请求.查看全部
-
拦截器的使用场景 使用原则:处理所有请求的共同问题 (1).解决乱码问题 可以不使用Spring MVC提供的CharacterEncodingFilter过滤器解决编码问题,改为用拦截器来解决客户端请求的乱码问题. 步骤: 1.创建一个拦截器,该拦截器配置为拦截所有的客户端请求. 2.在拦截器的preHandle()方法中通过HttpServletRequest参数的setCharacterEncoding()方法设置请求的字符编码为UTF-8. (2).解决权限验证问题: 即对用户是否登录进行判断,一般用户的登录信息都会保存在Session中. 在拦截器的preHandle()方法中通过HttpServletRequest参数的getSession()方法获取得到Session对象. 判断该对象中是否已经保存了用户登录的信息. 如果用户是没有登录的,则发送到登录页面,并且终止当前请求. 即通过request对象使用请求转发跳转到登录页面,preHandle()方法return false. 如果已经是登录的,则方法return true即可.查看全部
-
拦截器的其他实现方式. 1.实现HandlerInterceptor接口(方式一) 2.实现webRequestInterceptor接口(方式二) webRequestInterceptor接口声明的方法与HandlerInterceptor接口声明的方法的方法名一样,但方法参数不一样,原理与使用方法基本相似. webRequestInterceptor接口中的preHandle()方法是没有返回值的.因此不能通过preHandle()方法去终止请求. 不管使用哪种方式创建拦截器,在配置文件中都是用<mvc:interceptors>标签进行注册. <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="" /> <bean class=""/> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="" /> <bean class=""/> </mvc:interceptor> </mvc:interceptors> 或者: <mvc:interceptors> <bean class=""/> <bean class=""/> </mvc:interceptors>查看全部
-
一个应用中配置多个拦截器. 直接在配置文件中的<mvc:interceptors>标签下配置多个<mvc:interceptor>标签或者直接配置多个bean即可. 多个拦截器的执行顺序. preHandle1->preHandle2->controller方法->postHandle2->postHandle1->afterCompletion2->afterCompletion1. 类似函数递归的原理.查看全部
-
实现接口的三个方法中: preHandle()方法在请求被处理之前进行调用,具有一个boolean类型的返回值. 该方法的返回值作用是:是否将当前请求拦截下来,如果返回false,请求将被终止,即不会继续执行Controller中的方法与postHandler、afterCompletion方法. 如果返回true,则请求将会继续运行. 三个方法中都具有HttpServletRequest、HttpServletResponse与Object类型的参数. Object类型参数表示的是被拦截的请求的目标对象.即请求去到Controller对应的那个方法. postHandle()方法会在请求被处理之后进行调用,该方法中有ModelAndView类型的参数,可以通过ModelAndView参数来改变要显示的视图,或修改发往视图中保存的属性值. (利用ModelAndView的addObject()、setViewName()方法修改) afterCompletion()方法会在请求被响应之后进行调用,即视图已经被显示出来之后再调用的方法.可以在该方法中进行资源的销毁操作.查看全部
-
实现接口的三个方法: public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception {} public void postHandle(HttpServletRequest request, HttpServletResponse response,Object obj, ModelAndView mv) throws Exception {} public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception { return true; } 方法的执行顺序是preHandle->到达Controller方法并执行-->postHandle-->afterCompletion 在Struts2中拦截器是实现Interceptor接口.查看全部
-
拦截器的实现 1.编写一个类实现HandlerInterceptor接口. 2.实现接口声明的方法.分别是afterCompletion、postHandle、preHandle方法. 3.将拦截器注册进Spring MVC框架中.在配置文件中使用<mvc:interceptors>标签配置. 有两种配置方式: 一.所有的请求都会进入拦截器: <mvc:interceptors> <bean class="com.own.interceptor.MyFirstInterceptor"/> </mvc:interceptors> 二.指明拦截器的拦截url: <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/hello/login"/> <bean class="com.own.interceptor.MyFirstInterceptor"/> </mvc:interceptor> </mvc:interceptors> 那么拦截器只会拦截到达/hello/login的请求,path属性中可以使用正则表达式.查看全部
-
Spring MVC可以通过配置过滤器来解决乱码问题. Spring MVC默认提供了CharacterEncodingFilter过滤器类,来对客户端的请求进行编码设置. 在web.xml中配置该过滤器: <filter> <filter-name>charset</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!--配置名为encoding的参数(固定值),指定所有请求会经过这个filter,并且将所有请求的请求编码设置为utf8--> <init-param> <param-name>encoding</param-name> <param-value>utf8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charset</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 过滤器与拦截器原理类似 区别是过滤器是最先对请求进行拦截,拦截器是当请求通过过滤器之后,在请求到达Controller之前进行拦截.当执行完Controller的方法之后再依次递归返回执行. 过滤器与拦截器都能在Controller方法执行的前后进行一些工作.查看全部
-
Controller的方法中可以返回一个ModelAndView对象. ModelAndView对象有setViewName()方法,用来设置要返回的视图名称. 当返回ModelAndView对象时,就会跳转到setViewName()方法中指定的jsp页面. @RequestMapping("/model") public ModelAndView test(){ ModelAndView mv=new ModelAndView(); //去到根目录下的hello.jsp页面 mv.setViewName("/hello.jsp"); return mv; } ModelAndView类中有addObject(String key,Object value)方法,用来把对象保存在ModelAndView中,最后方法返回ModelAndView对象,在jsp页面中就可以使用el表达式通过key来获取得到value. ModelAndView与Model作用类似.查看全部
举报
0/150
提交
取消