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

网站开发入那个科目中国网站建设哪家公司好

网站开发入那个科目,中国网站建设哪家公司好,商业空间设计概述,扁平风格网站 模板整合监听器/过滤器和拦截器 在实际开发过程中#xff0c;经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏/高词汇、访问权限控制(URL级别)等业务需求。实现以上的功能#xff0c;都会或多或少的用到过滤器、监听器、拦截器。 一.SpringBoot整合过…整合监听器/过滤器和拦截器 在实际开发过程中经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏/高词汇、访问权限控制(URL级别)等业务需求。实现以上的功能都会或多或少的用到过滤器、监听器、拦截器。 一.SpringBoot整合过滤器Filter 过滤器Filter是Servlet的的一个实用技术了。可以通过过滤器对请求进行拦截处理。 1.编写Filter过滤器 编写普通Java类实现接口Filter。 使用注解WebFilter标注过滤器类并配置过滤url。 WebFilter(/*)// 当前配置拦截所有请求 public class TestFilter implements Filter {Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {System.out.println(过滤器Filter测试执行…………);chain.doFilter(request, response);// 放行}}说明WebFilter时Servlet3.0新增的注解原先实现过滤器需要在web.xml中进行配置而现在通过此注解启动启动时会自动扫描自动注册。 在启动类加入ServletComponentScan注解 使用ServletComponentScan注解后Servlet、Filter、Listener可以直接通过WebServlet、WebFilter、WebListener注解自动注册。 开启启动类访问测试查看控制台结果 当注册多个过滤器时无法指定执行顺序早期使用web.xml配置过滤器时是可指定执行顺序但使用注解WebFilter时没有顺序这个配置属性。通常情况下如果对过滤器有特定顺序要求的我们推荐采用原始方式配置或者参考测试结果执行顺序和类名字符排序有关。另外SpringBoot也为解决这个问题单独提供了一个类FilterRegistrationBean此类提供setOrder方法可以为filter设置排序值让Spring在注册Filter之前排序后再依次注册。 2.解决多过滤器执行顺序问题 编写两个/以上Filter修改Filter的实现去除注解WebFilter即可其他代码无需改动 编写一个config配置类利用FilterRegistrationBean实现注册过滤器。 FilterRegistrationBean是SpringBoot提供的用于注册和 解决Filter执行顺序问题 的类。注意在类上使用注解Configuration在方法上使用注解Bean。 Configuration // 标注为Spring配置beans组件 public class FilterConfig {// 注册第一个FilterBean // 标注为Spring配置bean组件public FilterRegistrationBeanFilter registerFilter1() {//通过FilterRegistrationBean实例设置优先级可以生效FilterRegistrationBeanFilter registrationBean new FilterRegistrationBean();// 注册自定义过滤器registrationBean.setFilter(new TestFilter1());// 设置过滤器的名字filter-nameregistrationBean.setName(filter01);// 设置过滤器的名字过滤路径url-parttenregistrationBean.addUrlPatterns(/*);// 设置过滤器优先级最顶级registrationBean.setOrder(1);return registrationBean;}Beanpublic FilterRegistrationBeanFilter registerFilter2() {FilterRegistrationBeanFilter registrationBean new FilterRegistrationBean();// 注册第二个自定义过滤器TestFilter2registrationBean.setFilter(new TestFilter2());registrationBean.setName(filter02);registrationBean.addUrlPatterns(/*);registrationBean.setOrder(5);return registrationBean;}}开启启动类访问测试查看控制台结果 说明这种方式可以不使用注解ServletComponentScan 二.SpringBoot整合监听器Listnner Listnner是servlet规范中定义的一种特殊类。用于监听ServletContext、HttpSession和servletRequest等域对象的创建和销毁事件。监听域对象的属性发生修改的事件。用于在事件发生前、发生后做一些必要的处理。一般是获取在线人数等业务需求。 创建普通类实现监听器接口比较多我就不一一列出了 本次案例创建了 ServletRequest 监听器实现接口 ServletRequestListnner WebListener Slf4j  // 该注解等价于Logger log new Logger(。。。。) public class TestListnner implements ServletRequestListener {Overridepublic void requestInitialized(ServletRequestEvent sre) {log.info(ServletRequest出生…………);}Overridepublic void requestDestroyed(ServletRequestEvent sre) {log.info(ServletRequest销毁…………);} }在启动类加入ServletComponentScan注解 使用ServletComponentScan注解后Servlet、Filter、Listener可以直接通过WebServlet、WebFilter、WebListener注解自动注册。 开启启动类访问测试查看控制台结果 三.SpringBoot整合拦截器HandlerInterceptor 以上的过滤器、监听器都属于Servlet的API我们在开发中过滤web请求时还可以使用Spring提供的拦截器(HandlerInterceptor)进行更加精细的控制。 编写普通类实现接口HandlerInterceptor。 Slf4j public class TestHandlerInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {log.info(preHandle请求访问前拦截执行……);// 返回 false 则请求中断return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {log.info(postHandle请求访问后执行……);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {log.info(afterCompletion请求调用完成后回调方法即在视图渲染完成后回调……);}}编写普通类继承 WebMvcConfigurerAdapter配置类是spring提供的一种配置方式采用JavaBean的方式替代传统的基于xml的配置来对spring框架进行自定义的配置,可以自定义一些HandlerInterceptorViewResolverMessageConverter。因此在spring boot提倡的基于注解的配置采用“约定大于配置”的风格下当需要进行自定义的配置时便可以继承WebMvcConfigurerAdapter这个抽象类通过JavaBean来实现需要的配置。   WebMvcConfigurerAdapter是一个抽象类它只提供了一些空的接口让用户去重写比如如果想添加拦截器的时候需要去重写一下addInterceptors()这个方法去配置自定义的拦截器。我们可以看一下WebMvcConfigurerAdapter提供了哪些接口来供我们使用。 public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {/*配置路径匹配参数*/public void configurePathMatch(PathMatchConfigurer configurer) {}/*配置Web Service或REST API设计中内容协商,即根据客户端的支持内容格式情况来封装响应消息体如xml,json*/public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {}/*配置路径匹配参数*/public void configureAsyncSupport(AsyncSupportConfigurer configurer) {}/* 使得springmvc在接口层支持异步*/public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {}/* 注册参数转换和格式化器*/public void addFormatters(FormatterRegistry registry) {}/* 注册配置的拦截器*/public void addInterceptors(InterceptorRegistry registry) {}/* 自定义静态资源映射*/public void addResourceHandlers(ResourceHandlerRegistry registry) {}/* cors跨域访问*/public void addCorsMappings(CorsRegistry registry) {}/* 配置页面直接访问不走接口*/public void addViewControllers(ViewControllerRegistry registry) {}/* 注册自定义的视图解析器*/public void configureViewResolvers(ViewResolverRegistry registry) {}/* 注册自定义控制器(controller)方法参数类型*/public void addArgumentResolvers(ListHandlerMethodArgumentResolver argumentResolvers) {}/* 注册自定义控制器(controller)方法返回类型*/public void addReturnValueHandlers(ListHandlerMethodReturnValueHandler returnValueHandlers) {}/* 重载会覆盖掉spring mvc默认注册的多个HttpMessageConverter*/public void configureMessageConverters(ListHttpMessageConverter? converters) {}/* 仅添加一个自定义的HttpMessageConverter,不覆盖默认注册的HttpMessageConverter*/public void extendMessageConverters(ListHttpMessageConverter? converters) {}/* 注册异常处理*/public void configureHandlerExceptionResolvers(ListHandlerExceptionResolver exceptionResolvers) {}/* 多个异常处理可以重写次方法指定处理顺序等*/public void extendHandlerExceptionResolvers(ListHandlerExceptionResolver exceptionResolvers) {} }Spring 5.0/SpringBoot 2.0 后WebMvcConfigurerAdapter被废弃取代的方法有两种 ①implements WebMvcConfigurer官方推荐 ②extends WebMvcConfigurationSupport Configuration // 标注为Spring组件 public class HandlerInterceptorConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {// 添加一个实现HandlerInterceptor接口的拦截器实例registry.addInterceptor(new TestHandlerInterceptor())// 用于设置拦截器的过滤路径规则.addPathPatterns(/**)// 用于设置不需要拦截的过滤规则.excludePathPatterns(/emp/toLogin,/emp/login, /js/**, /css/**, /images/**);} }注意在类上添加注解Configuration标注为Spring组件 开启启动类访问测试查看控制台结果 一张图理解过滤器拦截器执行 目前互联网上很多大佬都有SpringBoot系列教程如有雷同请多多包涵了。画图太费事了图片来源于网络。 原文地址https://www.cnblogs.com/xsge/p/13915775.html https://www.cnblogs.com/xsge/
http://www.pierceye.com/news/568626/

相关文章:

  • 网站流量提升方案软件公司名称大全查询
  • 怎么做淘客专属网站济南公司网站推广优化最大的
  • 苏州网站建设极简幕枫织梦模板网站源码
  • 青岛网站设计定制2023传奇手游排行榜
  • 商务酒店网站建设淮南网备案查询
  • 菏泽炫佑网站建设中国城乡建设部网站
  • 网站开发与移动互联自助建站的优点与缺点
  • 公司做网站的好处上海网站设计找哪家
  • 个人如果做网站赚钱吗WordPress 聊天小工具
  • 商城网站建设哪家便宜网络架构师和网络工程师区别
  • p2p网站建设 深圳广东手机网站建设品牌
  • 亚马逊网上商城是正品吗长沙seo计费管理
  • 东莞品牌网站建设多少钱网站设计有限公司怎么样
  • dedecms新网站 上传到万网的空间浦口区网站建站公司
  • 龙岗在线网站建设西安房产信息网
  • 如何建立公司企业网站大朗做网站的
  • 怎么做整蛊网站wordpress系统的特点
  • php网站开发视频教程浙江建设局网站
  • 温州seo顾问温州网站优化排名推广
  • qq空间怎么做网站wordpress 分类名
  • 外贸国际网站推广重庆律师网站
  • 唐山建设信息网站wordpress 首页显示产品
  • 建设网站的公司哪个济南兴田德润怎么联系重庆短视频培训
  • 营销型网站的建设方案企业网页设计作品分析
  • 网站建设的费用报价做网站销售这几天你有什么想法
  • 做箱包关注哪个网站类似建站之星网站
  • 口碑好网站建设报价wordpress 微博侧边栏
  • 长沙 建站优化花都区手机版网站建设
  • 网站自动弹窗代码国外哪些网站可以兼职做任务
  • 怎么查看网站服务器位置wordpress 数据表结构