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

哈尔滨网站建设网络优化东莞网络推广策略

哈尔滨网站建设网络优化,东莞网络推广策略,加盟企业网站建设目的,广告设计制作图片servlet3.0规范后#xff0c;允许servlet#xff0c;filter#xff0c;listener不必声明在web.xml中#xff0c;而是以硬编码的方式存在#xff0c;实现容器的零配置。 ServletContainerInitializer#xff1a;启动容器时负责加载相关配置 Java代码 package javax.servl… servlet3.0规范后允许servletfilterlistener不必声明在web.xml中而是以硬编码的方式存在实现容器的零配置。 ServletContainerInitializer启动容器时负责加载相关配置 Java代码   package javax.servlet;  import java.util.Set;  public interface ServletContainerInitializer {   public void onStartup(SetClass? c, ServletContext ctx)          throws ServletException;   }    容器启动时会自动扫描当前服务中ServletContainerInitializer的实现类并调用其onStartup方法其参数SetClass? c可通过在实现类上声明注解javax.servlet.annotation.HandlesTypes(xxx.class)注解自动注入HandlesTypes会自动扫描项目中所有的xxx.class的实现类并将其全部注入Set。   Spring为其提供了一个实现类 SpringServletContainerInitializer   Java代码   package org.springframework.web;  import java.lang.reflect.Modifier;  import java.util.LinkedList;  import java.util.List;  import java.util.ServiceLoader;  import java.util.Set;  import javax.servlet.ServletContainerInitializer;  import javax.servlet.ServletContext;  import javax.servlet.ServletException;  import javax.servlet.annotation.HandlesTypes;  import org.springframework.core.annotation.AnnotationAwareOrderComparator;  HandlesTypes(WebApplicationInitializer.class)  public class SpringServletContainerInitializer implements ServletContainerInitializer {          Override      public void onStartup(SetClass? webAppInitializerClasses, ServletContext servletContext)              throws ServletException {            ListWebApplicationInitializer initializers  new LinkedListWebApplicationInitializer();            if (webAppInitializerClasses ! null) {              for (Class? waiClass : webAppInitializerClasses) {                  // Be defensive: Some servlet containers provide us with invalid classes,                  // no matter what HandlesTypes says...                  if (!waiClass.isInterface()  !Modifier.isAbstract(waiClass.getModifiers())                           WebApplicationInitializer.class.isAssignableFrom(waiClass)) {                      try {                          initializers.add((WebApplicationInitializer) waiClass.newInstance());                      }                      catch (Throwable ex) {                          throw new ServletException(Failed to instantiate WebApplicationInitializer class, ex);                      }                  }              }          }            if (initializers.isEmpty()) {              servletContext.log(No Spring WebApplicationInitializer types detected on classpath);              return;          }            AnnotationAwareOrderComparator.sort(initializers);          servletContext.log(Spring WebApplicationInitializers detected on classpath:   initializers);            for (WebApplicationInitializer initializer : initializers) {              initializer.onStartup(servletContext);          }      }    }      从中可以看出WebApplicationInitializer才是我们需要关心的接口我们只需要将相应的servletfilterlistener等硬编码到该接口的实现类中即可。比如   xml配置   Xml代码          !-- Log4jConfigListener --         context-param      param-namelog4jConfigLocation/param-name      param-valueclasspath:config/properties/log4j.properties/param-value         /context-param         listener      listener-classorg.springframework.web.util.Log4jConfigListener/listener-class         /listener           !-- OpenSessionInViewFilter --         filter      filter-namehibernateFilter/filter-name      filter-class          org.springframework.orm.hibernate4.support.OpenSessionInViewFilter      /filter-class                /filter         filter-mapping      filter-namehibernateFilter/filter-name      url-pattern/*/url-pattern         /filter-mapping           !-- DemoServlet --         servlet      servlet-namedemoServlet/servlet-name      servlet-classweb.function.servlet.DemoServlet/servlet-class      load-on-startup2/load-on-startup         /servlet  servlet-mapping      servlet-namedemoServlet/servlet-name      url-pattern/demo_servlet/url-pattern  /servlet-mapping    编码配置     Java代码   Order(1)  public class CommonInitializer implements WebApplicationInitializer{        Override      public void onStartup(ServletContext servletContext)              throws ServletException {                    //Log4jConfigListener          servletContext.setInitParameter(log4jConfigLocation, classpath:config/properties/log4j.properties);          servletContext.addListener(Log4jConfigListener.class);                              //OpenSessionInViewFilter          OpenSessionInViewFilter hibernateSessionInViewFilter  new OpenSessionInViewFilter();          FilterRegistration.Dynamic filterRegistration  servletContext.addFilter(                  hibernateFilter, hibernateSessionInViewFilter);          filterRegistration.addMappingForUrlPatterns(                  EnumSet.of(DispatcherType.REQUEST, DispatcherType.FORWARD, DispatcherType.INCLUDE), false, /);                              //DemoServlet          DemoServlet demoServlet  new DemoServlet();          ServletRegistration.Dynamic dynamic  servletContext.addServlet(                  demoServlet, demoServlet);          dynamic.setLoadOnStartup(2);          dynamic.addMapping(/demo_servlet);                                  }          }     Spring为我们提供了一些WebApplicationInitializer的抽象类我们只需要继承并按需修改即可比如 1org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer SpringSecurity相关配置   xml配置   Xml代码          listener      listener-classorg.springframework.security.web.session.HttpSessionEventPublisher/listener-class  /listener           filter      filter-namespringSecurityFilterChain/filter-name      filter-classorg.springframework.web.filter.DelegatingFilterProxy/filter-class  /filter           filter-mapping      filter-namespringSecurityFilterChain/filter-name      url-pattern/*/url-pattern  /filter-mapping       编码配置   Java代码   Order(2)  public class WebAppSecurityInitializer  extends AbstractSecurityWebApplicationInitializer   {      //servletContext.addListener(org.springframework.security.web.session.HttpSessionEventPublisher);      //session监听器      Override      protected boolean enableHttpSessionEventPublisher() {          return true;      }  }     2org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializerMVC相关配置比如加载spring配置文件声明DispatcherServlet等等参看下面的对比 xml配置   Xml代码          context-param      param-namecontextConfigLocation/param-name      param-value      classpath:config/context/applicationContext-AppConfig.xml,      classpath:config/context/applicationContext-SpringSecurityConfig.xml          /param-value  /context-param           listener      listener-classorg.springframework.web.context.ContextLoaderListener/listener-class  /listener           filter      filter-nameSet Character Encoding/filter-name      filter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-class      init-param          param-nameencoding/param-name          param-valueUTF-8/param-value      /init-param      init-param          param-nameforceEncoding/param-name          param-valuetrue/param-value      /init-param  /filter           filter-mapping      filter-nameSet Character Encoding/filter-name      url-pattern/*/url-pattern  /filter-mapping           servlet      servlet-namewebmvc/servlet-name      servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class      init-param          param-namecontextConfigLocation/param-name          param-valueclasspath:config/context/applicationContext-MvcConfig.xml/param-value      /init-param      load-on-startup1/load-on-startup  /servlet    servlet-mapping      servlet-namewebmvc/servlet-name      url-pattern//url-pattern  /servlet-mapping   编码方式     Java代码   Order(3)  //spring DispatcherServlet的配置,其它servlet和监听器等需要额外声明用Order注解设定启动顺序  public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {      /*       * DispatcherServlet的映射路径       */      Override      protected String[] getServletMappings() {          return new String[]{/};      }         /*       * 应用上下文除web部分       */      SuppressWarnings({ unchecked, rawtypes })      Override      protected Class[] getRootConfigClasses() {          //加载配置文件类这里与上面的xml配置是对应的需要使用Configuration注解进行标注稍后介绍          return new Class[] {AppConfig.class, SpringSecurityConfig.class};      }         /*       * web上下文       */      SuppressWarnings({ unchecked, rawtypes })      Override      protected Class[] getServletConfigClasses() {          return new Class[] {MvcConfig.class};      }         /*       * 注册过滤器映射路径与DispatcherServlet一致路径不一致的过滤器需要注册到另外的WebApplicationInitializer中       */      Override      protected Filter[] getServletFilters() {          CharacterEncodingFilter characterEncodingFilter  new CharacterEncodingFilter();          characterEncodingFilter.setEncoding(UTF-8);          characterEncodingFilter.setForceEncoding(true);          return new Filter[] {characterEncodingFilter};      }       }         SpringMVC4零配置 代码下载 SpringMVC4零配置--web.xml SpringMVC4零配置--应用上下文配置【AppConfig】 SpringMVC4零配置--SpringSecurity相关配置【SpringSecurityConfig】 SpringMVC4零配置--Web上下文配置【MvcConfig】   转载于:https://www.cnblogs.com/hyl8218/p/6128191.html
http://www.sadfv.cn/news/37436/

相关文章:

  • 惠州市建设规划局网站做网站语言学什么
  • 网站建设不完整南京城乡住房建设厅网站
  • 无锡网站制作价格多少哪个网站做简历免费下载
  • 和网站建设相关的行业网站开发中视屏怎样编辑到网页上
  • 南宁网站建设加王道下拉免费网站建设塔山双喜
  • 天津 交友 网站建设修改wordpress评论
  • 开发帮官方网站微信浏览为网站的缓存怎么清理
  • 做女装的网站有哪些深圳 企业 网站建设哪家好
  • 中英文网站建设 pdf网站子站怎么做的
  • 青岛安装建设股份有限公司网站seo搜索是什么
  • 网上销售怎样做网站广告在线制作
  • 百度手机端推广网站优化关键词排名自己怎么做
  • 小视频网站哪个可以推广新沂微网站开发
  • 深圳建立企业网站临沂网站设计价格
  • 那里做网站比较好wordpress怎么做伪静态
  • j2ee网站开发参考文献html网站开发事例教程
  • 商品展示类网站网站浏览器兼容性
  • 高端网站设计报价表学大教育一对一收费价格表
  • 好单库如何做网站上海找做网站公司哪家好
  • 华侨城网站建设用ps怎么做网站背景
  • 一建 建设网站帮别人做网站如何备案
  • 无锡网站制作厂家地址公司企业简介范文
  • 网站建设服务哪家舞台灯光网站建设
  • 镇江城乡建设网站首页网站排名工具
  • 电子商务网站建设策划书的流程网站关键词优化怎么做的
  • 龙华建设网站沈阳互联网公司排名
  • 网站策划设计建设免费招聘人才网站
  • 网站地图怎么上传html网页制作平台
  • 上海市建设工程招标造价网站做网站的一般尺寸
  • 公司产品网站应该怎么做平面设计零基础难学吗