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

视频网站建设应该注意什么上海有哪些做网站的公司

视频网站建设应该注意什么,上海有哪些做网站的公司,条形码生成器在线制作图片,昆山做网站的kamese1、拦截器&#xff1a; 1、拦截器的配置: SpringMVC中的拦截器用于拦截控制器方法的执行 SpringMVC中的拦截器需要实现HandlerInterceptor <!--配置拦截器--><mvc:interceptors><!--对所有的请求进行拦截--><!--<bean class"com.songzhishu.m…

1、拦截器:

1、拦截器的配置:

SpringMVC中的拦截器用于拦截控制器方法的执行

SpringMVC中的拦截器需要实现HandlerInterceptor

<!--配置拦截器--><mvc:interceptors><!--对所有的请求进行拦截--><!--<bean class="com.songzhishu.mvc.interceptors.FirstInterceptor" id="firstInterceptor"></bean>--><!-- <ref bean="firstInterceptor"></ref>--><!--上面的是可以拦截所有的请求路径--><mvc:interceptor><!--拦截指定的路径  /* 是只拦截一层目录 而/** 是可以拦截所有的路径--><mvc:mapping path="/**"/><!--排除要拦截的路径(就是不拦截)--><mvc:exclude-mapping path="/"/><!--指定拦截器--><ref bean="firstInterceptor"/></mvc:interceptor></mvc:interceptors>

2、拦截器中的三个抽象方法:

  • preHandle:控制器方法执行之前执行preHandle(),其boolean类型的返回值表示是否拦截或放行,返回true为放行,即调用控制器方法;返回false表示拦截,即不调用控制器方法
  • postHandle:控制器方法执行之后执行postHandle()
  • afterComplation:处理完视图和模型数据,渲染视图完毕之后执行afterComplation()
@Component
public class FirstInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//在控制器之前执行System.out.println("前");/*返回值是true的话是拦截后放行 为false的话是不放行*/return HandlerInterceptor.super.preHandle(request, response, handler);}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println("后");//在控制器之后执行HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("视图");//视图渲染后HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

3、拦截器的执行顺序:

 <!--测试拦截器的顺序--><ref bean="firstInterceptor"/><ref bean="secondInterceptor"/>

若每个拦截器的preHandle()都返回true

        此时多个拦截器的执行顺序和拦截器在SpringMVC的配置文件的配置顺序有关:

preHandle()会按照配置的顺序执行,而postHandle()和afterComplation()会按照配置的反序执行

若某个拦截器的preHandle()返回了false

        preHandle()返回false和它之前的拦截器的preHandle()都会执行,postHandle()都不执行,返回false的拦截器之前的拦截器的afterComplation()会执行

2、异常处理器:

1、基于配置的异常处理器:

        SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver

        HandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver和SimpleMappingExceptionResolver

        SpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver,使用方式:

<!--异常处理器--><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><!--key表示处理器执行过程中出现的异常值表示出现指定异常时,设置一个新的视图名称,跳转到指定的页面--><prop key="java.lang.ArithmeticException">error</prop></props></property><!--将异常的信息共享在请求域中的键--><property name="exceptionAttribute" value="ex"></property></bean>

测试:

    @RequestMapping(value = "/testException")public  String testException(){System.out.println(1/0);return "success";}

 自定义的异常会自动捕捉异常

2、基于注解的异常处理器:

@ControllerAdvice //将类标记成组件,进行扫描 其次就是异常捕获
public class ExceptionController {@ExceptionHandler(value = {ArithmeticException.class, NullPointerException.class})public String testEx(Exception exception, Model model){model.addAttribute("ex" ,exception);return "error";}
}

3、注解配置SpringMVC:

1、创建初始化类,代替web.xml:

        在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。 Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成。Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了        AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自动发现它,并用它来配置Servlet上下文。

public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 指定spring的配置类* @return*/@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}/*** 指定SpringMVC的配置类* @return*/@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{WebConfig.class};}/*** 指定DispatcherServlet的映射规则,即url-pattern* @return*/@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}/*** 添加过滤器* @return*/@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();encodingFilter.setEncoding("UTF-8");encodingFilter.setForceRequestEncoding(true);HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();return new Filter[]{encodingFilter, hiddenHttpMethodFilter};}
}

2、创建SpringConfig配置类,代替spring的配置文件

@Configuration
public class SpringConfig {//ssm整合之后,spring的配置信息写在此类中
}

3、创建WebConfig配置类,代替SpringMVC的配置文件

@Configuration
//扫描组件
@ComponentScan("com.atguigu.mvc.controller")
//开启MVC注解驱动
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {//使用默认的servlet处理静态资源@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}//配置文件上传解析器@Beanpublic CommonsMultipartResolver multipartResolver(){return new CommonsMultipartResolver();}//配置拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {FirstInterceptor firstInterceptor = new FirstInterceptor();registry.addInterceptor(firstInterceptor).addPathPatterns("/**");}//配置视图控制/*@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("index");}*///配置异常映射/*@Overridepublic void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver();Properties prop = new Properties();prop.setProperty("java.lang.ArithmeticException", "error");//设置异常映射exceptionResolver.setExceptionMappings(prop);//设置共享异常信息的键exceptionResolver.setExceptionAttribute("ex");resolvers.add(exceptionResolver);}*///配置生成模板解析器@Beanpublic ITemplateResolver templateResolver() {WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();// ServletContextTemplateResolver需要一个ServletContext作为构造参数,可通过WebApplicationContext 的方法获得ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(webApplicationContext.getServletContext());templateResolver.setPrefix("/WEB-INF/templates/");templateResolver.setSuffix(".html");templateResolver.setCharacterEncoding("UTF-8");templateResolver.setTemplateMode(TemplateMode.HTML);return templateResolver;}//生成模板引擎并为模板引擎注入模板解析器@Beanpublic SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver);return templateEngine;}//生成视图解析器并未解析器注入模板引擎@Beanpublic ViewResolver viewResolver(SpringTemplateEngine templateEngine) {ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();viewResolver.setCharacterEncoding("UTF-8");viewResolver.setTemplateEngine(templateEngine);return viewResolver;}}

3、SpringMVC执行流程

1、SpringMVC常用组件

  • DispatcherServlet:前端控制器,不需要工程师开发,由框架提供

作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求

  • HandlerMapping:处理器映射器,不需要工程师开发,由框架提供

作用:根据请求的url、method等信息查找Handler,即控制器方法

  • Handler:处理器,需要工程师开发

作用:在DispatcherServlet的控制下Handler对具体的用户请求进行处理

  • HandlerAdapter:处理器适配器,不需要工程师开发,由框架提供

作用:通过HandlerAdapter对处理器(控制器方法)进行执行

  • ViewResolver:视图解析器,不需要工程师开发,由框架提供

作用:进行视图解析,得到相应的视图,例如:ThymeleafView、InternalResourceView、RedirectView

  • View:视图

作用:将模型数据通过页面展示给用户

http://www.yayakq.cn/news/456588/

相关文章:

  • 网站建设新手教程视频wordpress 主题页脚
  • 浙江网站建设公司排名3d建站
  • 备案 网站内容网站缩略图存哪里好
  • 做网销的网站课程分销平台
  • 资源网站都是在哪找的久就建筑网
  • 南昌集团网站建设灯塔建设网站
  • 基于php的网站开发流程图wordpress 运行代码
  • 创建一个购物网站免费店铺logo
  • 手机访问网站自动跳转怎么在百度创建网站
  • 做游戏难吗比做网站绘画网站建设
  • 网站建设中的主要功能如何做强一个网站的品牌
  • 网站pc开发上海wordpress好还是dz好
  • 选择做印象绍兴网站的原因小型手机网站建设企业
  • 黄做网站国内永久免费crm系统破解
  • 返佣网站都是自己做的产品报价网
  • 织梦仿站时怎么取俩个网站的页面整合网站关键词数量
  • 2014个人网站备案做手机网站尺寸大小
  • 网站建设方案及报价单网站系统的运营和维护
  • 毕节做网站的公司专业单位网站设计企业
  • 一站式做网站平台东莞手机网站建设
  • 湖南建设人力资源网是正规网站吗南京网站开发南京乐识专心
  • 建设公司怎么做网站运营网站策划的知识
  • 怎么学会建自己网站的方法湖北建站中心
  • 最好的ppt模板网站wordpress防止机器评论
  • wordpress站点迁移展厅设计公司首选
  • 东阿网站建设合肥做网站的公司
  • 网站开发有哪些方式wordpress数据库引擎
  • seo网站优化推广教程汉中网站建设
  • 龙岩做网站价格网站自动优化怎么样
  • 企业网站建设广州怎么制作自己的网页网站