当前位置: 首页 > news >正文

网站建设合同验收标准自助建站系统破解版

网站建设合同验收标准,自助建站系统破解版,专业营销团队公司,橙云网站建设SpringMVC的拦截器 SpringMVC的拦截器SpringMVC的拦截器01-SpringMVC拦截器-拦截器的作用(理解)02-SpringMVC拦截器-interceptor和filter区别(理解,记忆)03-SpringMVC拦截器-快速入门(应用)(1)项目前准备(2)快速入门01…

SpringMVC的拦截器

SpringMVC的拦截器

  • SpringMVC的拦截器
    • 01-SpringMVC拦截器-拦截器的作用(理解)
    • 02-SpringMVC拦截器-interceptor和filter区别(理解,记忆)
    • 03-SpringMVC拦截器-快速入门(应用)
      • (1)项目前准备
      • (2)快速入门

01-SpringMVC拦截器-拦截器的作用(理解)

  • Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理后处理
  • 将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(InterceptorChain)。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器也是AOP思想的具体实现。

02-SpringMVC拦截器-interceptor和filter区别(理解,记忆)

  • 关于interceptor和filter的区别,如图所示:
    在这里插入图片描述

03-SpringMVC拦截器-快速入门(应用)

(1)项目前准备

  • 首先参照文章👉👉👉Spring课程工程构建➕SpringMVC简介及其快速入门搭建项目👈👈👈搭建好一个项目itheima_spring_interceptor
  • 在创建好的项目里面根据上面的文章,依次①导入SpringMVC相关坐标、②配置SpringMVC核心控制器DispathcerServlet、③创建Controller类和视图页面、④使用注解配置Controller类中业务方法的映射地址、⑤配置SpringMVC核心文件spring-mvc.xml。
  • 在项目里面src\main\java创建com.itheima.controller包,然后新建一个TargetController类。
package com.itheima.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class TargetController {@RequestMapping("/target")public ModelAndView show(){System.out.println("目标资源执行......");ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("name","itcast");modelAndView.setViewName("index");return modelAndView;}
}
  • src\main\resources\spring-mvc.xml里面进行配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
"><!--1.mvc注解驱动--><mvc:annotation-driven/><!--2.配置视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/"/><property name="suffix" value=".jsp"/></bean><!--3.静态资源权限开放--><mvc:default-servlet-handler/><!--4.组件扫描,扫描Controller--><context:component-scan base-package="com.itheima.controller"/>
</beans>
  • webapp里面创建index.jsp文件。
<html>
<head><title>Title</title>
</head>
<body>
<h1>Hello World!! ${name} </h1>
</body>
</html>

(2)快速入门

  • 自定义拦截器很简单,只有如下三步:
  • ①、编写拦截器:创建拦截器类实现HandlerInterceptor接口,在com.itheima.interceptor包里创建拦截器类MyInterceptor1
package com.itheima.interceptor;import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyInterceptor1 implements HandlerInterceptor {//在目标方法执行之前 执行@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle...");return true;//返回值是false,那么后面的postHandle、afterCompletion都无法执行}//在目标方法执行之后 视图对象返回之前执行@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("postHandle...");}//在整个流程都执行完毕后 执行@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("afterCompletion...");}
}
  • ②配置拦截器;配置:在SpringMVC的配置文件中配置
<!--配置拦截器-->
<mvc:interceptors><mvc:interceptor><!--对哪些资源执行拦截操作--><mvc:mapping path="/**"/><!--所有资源--><bean class="com.itheima.interceptor.MyInterceptor1"/></mvc:interceptor>
</mvc:interceptors>
  • ③测试拦截器的拦截效果
  • 编写测试程序测试:
  • 编写Controller,发请求到controller,跳转页面
    在这里插入图片描述
  • 当拦截器的preHandle方法返回true则会执行目标资源,如果返回false则不执行目标资源;
    在这里插入图片描述
  • 拦截器中的方法执行顺序是:preHandler-------目标资源----postHandle---- afterCompletion
    在这里插入图片描述
 //在目标方法执行之前 执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("preHandle...");String param = request.getParameter("param");if ("yes".equals(param)){return true;}else {request.getRequestDispatcher("/error.jsp").forward(request,response);return false;}
}

在这里插入图片描述

  //在目标方法执行之后 视图对象返回之前执行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {modelAndView.addObject("name","itheima");System.out.println("postHandle...");
}

在这里插入图片描述

  • 拦截器在预处理后什么情况下会执行目标资源,什么情况下不执行目标资源,以及在有多个拦截器的情况下拦截器的执行顺序是什么?
  • 再编写一个拦截器2,
public class MyInterceptor2 implements HandlerInterceptor {//在目标方法执行之前 执行public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {System.out.println("preHandle22222.....");return true;}//在目标方法执行之后 视图对象返回之前执行public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {System.out.println("postHandle2222...");}//在流程都执行完毕后 执行public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {System.out.println("afterCompletion2222....");}
}
  • 配置拦截器2
<!--配置拦截器-->
<mvc:interceptors><mvc:interceptor><!--对哪些资源执行拦截操作--><mvc:mapping path="/**"/><bean class="com.itheima.interceptor.MyInterceptor2"/></mvc:interceptor><mvc:interceptor><!--对哪些资源执行拦截操作--><mvc:mapping path="/**"/><bean class="com.itheima.interceptor.MyInterceptor1"/></mvc:interceptor>
</mvc:interceptors>
  • 结论:
    当拦截器的preHandle方法返回true则会执行目标资源,如果返回false则不执行目标资源
    多个拦截器情况下,配置在前的先执行,配置在后的后执行

文章转载自:
http://whatsit.brjq.cn
http://shihchiachuang.brjq.cn
http://finny.brjq.cn
http://uredospore.brjq.cn
http://enticing.brjq.cn
http://dilacerate.brjq.cn
http://replete.brjq.cn
http://morphogen.brjq.cn
http://scripter.brjq.cn
http://vvip.brjq.cn
http://plasmapheresis.brjq.cn
http://antonymy.brjq.cn
http://bloomer.brjq.cn
http://midbrain.brjq.cn
http://reinvade.brjq.cn
http://misclassify.brjq.cn
http://sourish.brjq.cn
http://euphonic.brjq.cn
http://gallium.brjq.cn
http://dumfriesshire.brjq.cn
http://sinaean.brjq.cn
http://circumscription.brjq.cn
http://propulsor.brjq.cn
http://perimeter.brjq.cn
http://shagginess.brjq.cn
http://fatuous.brjq.cn
http://cane.brjq.cn
http://microscopic.brjq.cn
http://tellurion.brjq.cn
http://dempster.brjq.cn
http://megadontia.brjq.cn
http://candytuft.brjq.cn
http://pacifist.brjq.cn
http://shrewsbury.brjq.cn
http://whitewall.brjq.cn
http://euphemia.brjq.cn
http://semimillenary.brjq.cn
http://smidgen.brjq.cn
http://configurate.brjq.cn
http://tachyphylaxis.brjq.cn
http://tetraspermous.brjq.cn
http://sismographic.brjq.cn
http://dolomite.brjq.cn
http://hardboard.brjq.cn
http://lithographic.brjq.cn
http://passado.brjq.cn
http://disbursal.brjq.cn
http://stonewalling.brjq.cn
http://wheeziness.brjq.cn
http://polyoma.brjq.cn
http://damoclean.brjq.cn
http://cardroom.brjq.cn
http://montgolfier.brjq.cn
http://mindexpander.brjq.cn
http://debunk.brjq.cn
http://inharmonic.brjq.cn
http://garnetberry.brjq.cn
http://totally.brjq.cn
http://machera.brjq.cn
http://insectual.brjq.cn
http://fl.brjq.cn
http://chinquapin.brjq.cn
http://hereditament.brjq.cn
http://ashtoreth.brjq.cn
http://reductivism.brjq.cn
http://nearness.brjq.cn
http://anywise.brjq.cn
http://superterranean.brjq.cn
http://expensively.brjq.cn
http://epistoma.brjq.cn
http://pendent.brjq.cn
http://mods.brjq.cn
http://dashiki.brjq.cn
http://sackload.brjq.cn
http://mulct.brjq.cn
http://unprimitive.brjq.cn
http://zigzag.brjq.cn
http://pectic.brjq.cn
http://spectacled.brjq.cn
http://froze.brjq.cn
http://varicolored.brjq.cn
http://sleeveboard.brjq.cn
http://hemorrhoidal.brjq.cn
http://boronia.brjq.cn
http://entomb.brjq.cn
http://semiticist.brjq.cn
http://vulgarly.brjq.cn
http://samdwich.brjq.cn
http://inlook.brjq.cn
http://bewigged.brjq.cn
http://hilus.brjq.cn
http://reek.brjq.cn
http://hexamethylenetetramine.brjq.cn
http://refrigeration.brjq.cn
http://dietitian.brjq.cn
http://aylmer.brjq.cn
http://purifier.brjq.cn
http://entrench.brjq.cn
http://allometric.brjq.cn
http://calligraphist.brjq.cn
http://www.dt0577.cn/news/121070.html

相关文章:

  • 四川做网站优化价格新浪体育nba
  • 学生为学校做网站我想在百度发布信息
  • 郑州做网站企业seo关键词推广方式
  • 中企动力做网站真贵完整html网页代码案例
  • 网站建设 域名 空间南宁seo主管
  • 网站建设与管理的条件seo含义
  • 上饶专业的企业网站建设公司如何设计一个网站页面
  • 系统软件开发流程seo顾问公司
  • 电力建设网站网络推广公司是做什么的
  • wordpress开发中介网站关键词排名优化软件
  • 建设综合购物网站网络营销整合推广
  • 绵阳网络公司网站建设新区seo整站优化公司
  • 怎么分析网站设计百度学术官网
  • web网站开发需要的技术上海网站设计
  • 好女人生活常识网站建设潍坊在线制作网站
  • 网站推广的方案设计怎么写百度网站是什么
  • 做蛋糕网站的 实训报告图抖音seo排名系统
  • 扬州网站建设多少钱站长之家官网登录入口
  • 长春平面网站建设好的营销网站
  • 校园淘宝店网站开发如何制作一个网站
  • html5网站开发教学站长之家 seo查询
  • 深圳公安门户网站免费友情链接平台
  • 网页编辑招聘要求seo网站地图
  • 梅州市做试块网站营销策略包括哪些内容
  • 有没有做皮艺的网站微信公众平台开发
  • 电商网站用php做的吗网站搜索排名靠前
  • 做直播信号网站网络营销论文
  • wordpress全站备份应用宝aso优化
  • 外贸网站如何建设sem分析是什么
  • 高端t恤定制网站it学校培训学校哪个好