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

网站建设合同验收标准长沙seo免费诊断

网站建设合同验收标准,长沙seo免费诊断,seo如何根据网站数据做报表,宝安设计网站建设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://www.yidumall.com/news/50574.html

相关文章:

  • 做网站的主要作用怎么投稿各大媒体网站
  • 做网站开发需要学什么福州seo网站管理
  • 昆明大型网页开发企业最彻底的手机优化软件
  • 做影视网站侵权如何做电商 个人
  • 网站底部友情链接怎么做的中国大数据平台官网
  • 企业门户网站开发代码百度seo和谷歌seo有什么区别
  • 网站建设和使用情况全球十大网站排名
  • 智能网站建设武汉网站seo德升
  • 网站群的建设策略网络营销的认识与理解
  • 拆分盘的网站开发费用seo软件优化工具软件
  • 西安企业网站建设价格广州google推广
  • 怎样做信息收费网站网站建设报价单
  • 网站建设寻找可以途径谷歌浏览器在线打开
  • 关键词推广是什么意思seo实战密码
  • 织梦怎么做中英文网站网站建立
  • 网站扩展性公司的网站制作
  • 网站整站下载带数据库后台的方法简单网页制作
  • 网络推广有哪些免费渠道南宁排名seo公司
  • wordpress导入html文件seo优化网站推广全域营销获客公司
  • 网站后台有什么用矿坛器材友情交换
  • 合优网站建设营业推广名词解释
  • 全景网站建设网站怎么优化推广
  • 深圳网络做网站seo优化总结
  • 传奇手游大型网站网站外贸推广
  • 网站建设新闻发布注意百度免费下载安装百度
  • 上海企业网站优化企业网站管理
  • 如何建立p2p网站什么叫seo优化
  • 深圳设计公司上海酒店vi设计优化网站seo
  • 用ps怎么做网站步骤湖南网站建设营销推广
  • 厦门海沧网站建设南京seo招聘