当前位置: 首页 > news >正文 建设银行中国网站首页aso如何优化 news 2025/10/20 18:13:47 建设银行中国网站首页,aso如何优化,何为响应式网站,wordpress 移动模板目录 1、简介 2、SpringMVC与Servlet的关系 3、struc2 4、RESTful 编程风格 5、工作流程 6、代码示例 6.1、导入坐标 provide 6.2、DispathcerServlet #x1f53a;配置web.xml 初始化 优先级 ⭐ 6.3、Controller类及视图页面 6.4、配置注解 6.5、spring-mvc.xm…目录 1、简介 2、SpringMVC与Servlet的关系 3、struc2 4、RESTful 编程风格 5、工作流程 6、代码示例 6.1、导入坐标 provide 6.2、DispathcerServlet 配置web.xml 初始化 优先级 ⭐ 6.3、Controller类及视图页面 6.4、配置注解 6.5、spring-mvc.xml 6.6、客户端发请求 7、组件解析 7.1、执行流程 7.2、解析 8、注解解析 8.1、RequestMapping 8.2、xml 8.3、知识要点 ⭐作者介绍大二本科网络工程专业在读持续学习Java努力输出优质文章 ⭐作者主页逐梦苍穹 ⭐所属专栏JavaEE、Spring 1、简介 SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架属于 SpringFrameWork 的后续产品已经融合在 Spring Web Flow 中。 SpringMVC 已经成为目前最主流的MVC框架之一并且随着Spring3.0 的发布全面超越 Struts2成为最优 秀的 MVC 框架。它通过一套注解让一个简单的 Java 类成为处理请求的控制器而无须实现任何接口。同时 它还支持 RESTful 编程风格的请求。 Spring MVC 是 Spring 框架中用于构建 Web 应用程序的模块。它是一个基于 MVCModel-View-Controller设计模式的轻量级框架旨在简化 Web 应用程序的开发并提供灵活性和可扩展性。 下面是 Spring MVC 的主要特点和组件 MVC 设计模式Spring MVC 遵循经典的 MVC 设计模式将应用程序分为模型Model、视图View和控制器Controller。这种分层架构使代码更加清晰和易于维护。前端控制器Spring MVC 使用前端控制器DispatcherServlet作为入口点负责接收所有的客户端请求并将其分发给合适的处理器Controller进行处理。HandlerMappingHandlerMapping 用于将 URL 映射到相应的处理器Controller。Spring MVC 提供了多种 HandlerMapping 实现如 BeanNameUrlHandlerMapping、RequestMappingHandlerMapping 等。ControllerController 是处理客户端请求的组件它负责处理请求并生成相应的响应数据。Controller 可以是普通的 Java 类使用 Controller 注解标记。HandlerAdapterHandlerAdapter 用于调用处理器Controller来处理客户端请求并将处理结果封装成 ModelAndView 或 ResponseEntity 返回给前端控制器。ViewResolverViewResolver 用于将逻辑视图名解析为具体的视图对象。Spring MVC 支持多种视图技术如 JSP、Thymeleaf、Freemarker 等。ViewView 是用于渲染数据并生成响应的组件。它可以是 JSP、HTML 模板或其他模板引擎。数据绑定Spring MVC 支持数据绑定可以将客户端请求的参数绑定到方法参数、JavaBean 或命令对象中。拦截器拦截器Interceptor用于在请求处理的不同阶段插入自定义的处理逻辑。它可以用于执行权限检查、日志记录等操作。异常处理Spring MVC 提供了全局异常处理机制可以通过 ControllerAdvice 注解来统一处理应用程序中的异常。国际化支持Spring MVC 提供了国际化和本地化支持可以轻松实现多语言应用程序。RESTful Web ServicesSpring MVC 提供了对 RESTful Web 服务的支持通过 RestController 注解可以创建 REST 风格的控制器。 使用 Spring MVC开发人员可以快速构建灵活、可维护和可扩展的 Web 应用程序。 它与其他 Spring 模块如 Spring Boot集成良好为开发现代 Web 应用提供了强大的基础。 2、SpringMVC与Servlet的关系 Spring MVC 是基于 Servlet 技术的框架它实际上是在 Servlet 的基础上进行了封装和扩展以简化 Web 应用程序的开发。下面是 Spring MVC 和 Servlet 的关系和区别 关系 Spring MVC 是 Spring 框架的一部分它是 Spring 提供的用于构建 Web 应用程序的模块。Servlet 是 Java EE 规范的一部分它定义了用于处理客户端请求和生成响应的标准 API。 区别 抽象层次Servlet 是 Java EE 规范的一部分提供了底层的 Web 编程接口开发者需要直接使用 Servlet 接口来处理请求和响应。而 Spring MVC 是在 Servlet API 的基础上进行了高级封装提供了更方便的编程模型和更强大的功能使得开发者可以更快速地构建 Web 应用。设计思想Servlet 的设计思想是基于前端控制器模式其中 Servlet 容器如 Tomcat负责接收所有的请求并将其分发给相应的 Servlet 进行处理。而 Spring MVC 的设计思想是基于 MVC 模式它将应用程序分为模型Model、视图View和控制器Controller从而使代码结构更加清晰和易于维护。功能和特性Spring MVC 提供了许多额外的功能和特性如拦截器、数据绑定、国际化支持、异常处理、RESTful Web Services 等这些功能在原生的 Servlet 中是没有的。依赖关系使用原生的 Servlet开发者需要手动配置和管理 Servlet 和 URL 的映射关系而使用 Spring MVC开发者可以通过注解和配置来实现自动的 URL 映射和请求处理。 综上所述Spring MVC 是对 Servlet 的封装和扩展它提供了更高级的编程模型和更丰富的功能使得 Web 应用程序的开发更加简便和高效。使用 Spring MVC 可以更好地实现松耦合、可维护和可扩展的 Web 应用。 3、struc2 Struts2 是一个基于 Java 的开源 Web 应用程序框架用于构建 Web 应用程序。它是 Struts 框架的后续版本但在设计和功能上有很大的改进。Struts2 使用了经典的 MVC 设计模式将应用程序分为模型Model、视图View和控制器Controller以提高代码的可维护性和可扩展性。 主要特点 提供了强大的拦截器机制可以在请求处理过程中插入自定义逻辑如登录验证、权限控制等。支持数据绑定和验证能够方便地处理表单数据的提交和校验。支持国际化和本地化方便构建多语言应用。内置标签库和表达式语言简化页面开发。可以集成各种视图技术如 JSP、FreeMarker 等。使用配置文件和注解来配置应用程序的行为。 4、RESTful 编程风格 RESTRepresentational State Transfer是一种软件架构风格用于构建分布式系统和 Web 服务。RESTful 是一种基于 REST 架构风格的 Web 服务设计风格它遵循一组约定和原则使得 Web 服务更加简单、灵活和易于扩展。 主要特点 资源RESTful 服务将所有的数据和功能视为资源每个资源都有唯一的标识符URI。表现层资源可以有多种表现形式如 JSON、XML 等客户端可以根据需要选择适合的表现形式。状态转移RESTful 服务通过 HTTP 方法GET、POST、PUT、DELETE 等来表示资源的状态转移和操作。无状态每个请求都包含足够的信息使得服务器可以处理请求而无需维护会话状态。可缓存服务器可以将响应进行缓存以提高性能和可伸缩性。 在 RESTful 编程风格中资源的标识符URI是关键它代表了资源的唯一性并且客户端通过 HTTP 方法来执行 CRUD创建、读取、更新和删除操作。RESTful 服务通常使用 JSON 或 XML 格式来传输数据使得客户端和服务器之间的通信更加简单和灵活。 Struts2 是一个用于构建 Web 应用程序的 Java 框架而 RESTful 编程风格是一种用于构建 Web 服务的设计风格它们都有各自的优点和用途。在 Web 开发中可以使用 Struts2 框架来构建整个 Web 应用程序同时采用 RESTful 编程风格来设计和实现 Web 服务接口使得应用程序更加模块化和灵活。 5、工作流程 Spring MVC 的工作流程可以简单概括为以下几个步骤 请求的到达 首先当客户端发送一个 HTTP 请求时请求会被 Web 服务器接收并传递给 DispatcherServlet前端控制器。前端控制器 DispatcherServlet 是 Spring MVC 的核心组件之一它充当前端控制器的角色。它负责接收所有的请求并将请求交给后续的处理组件进行处理。处理器映射器Handler Mapping DispatcherServlet 通过处理器映射器根据请求的 URL 找到对应的处理器Controller。处理器适配器Handler Adapter 处理器适配器负责将请求传递给对应的处理器Controller进行处理并返回一个 ModelAndView 对象。控制器处理 处理器Controller是用户定义的组件负责处理请求并生成响应。它会根据请求的内容进行业务逻辑处理然后将处理结果封装在 ModelAndView 对象中返回。视图解析器View Resolver 视图解析器负责根据 ModelAndView 对象中的视图名称解析出具体的视图JSP 页面、HTML 页面等。视图渲染 通过视图解析器解析得到视图后DispatcherServlet 将 Model 数据传递给视图视图使用这些数据生成最终的响应内容。响应返回 DispatcherServlet 将响应内容发送给客户端完成请求处理过程。 整个 Spring MVC 的工作流程是由 DispatcherServlet 负责协调和调度的。它根据请求的 URL 找到对应的处理器Controller进行处理并将处理结果传递给适合的视图进行渲染最终将响应返回给客户端。 在此过程中Spring MVC 提供了很多可插拔的组件如处理器映射器、处理器适配器、视图解析器等这些组件可以根据实际需求进行配置和定制使得 Spring MVC 可以灵活适应各种不同的业务场景。 6、代码示例 需求是客户端发起请求服务器端接收请求执行逻辑并进行视图跳转。 实现步骤 ① 导入SpringMVC相关坐标 ② 配置SpringMVC核心控制器DispathcerServlet ③ 创建Controller类和视图页面 ④ 使用注解配置Controller类中业务方法的映射地址 ⑤ 配置SpringMVC核心文件 spring-mvc.xml ⑥ 客户端发起请求测试 6.1、导入坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdSpring/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingbuildpluginsplugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.2/versionconfigurationport8080/port!--访问端口号 --!-- path/ServletComprehensivePractice/path--uriEncodingUTF-8/uriEncoding/configuration/plugin/plugins/buildpropertiesmaven.compiler.source11/maven.compiler.sourcemaven.compiler.target11/maven.compiler.target/propertiesdependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.32/version/dependencydependencygroupIdc3p0/groupIdartifactIdc3p0/artifactIdversion0.9.1.2/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.10/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependencydependency!--Spring框架基本坐标--groupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.0.5.RELEASE/version/dependencydependency!--Spring集成Junit--groupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.0.5.RELEASE/version/dependencydependency!--Spring集成Web--groupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion5.0.5.RELEASE/version/dependencydependency!--Spring集成MVC模式--groupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.0.5.RELEASE/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopeprovided/scope/dependencydependencygroupIdjavax.servlet.jsp/groupIdartifactIdjavax.servlet.jsp-api/artifactIdversion2.2.1/versionscopeprovided/scope/dependencydependencygroupIdjavax.annotation/groupIdartifactIdjavax.annotation-api/artifactIdversion1.3.2/version/dependency/dependencies /project provide 在 Maven 中设置 scopeprovided/scope 的作用是告诉 Maven 编译器和构建工具在编译和打包时不要将该依赖包javax.servlet.jsp-api包含到最终的构建结果中而是假设这个依赖在目标环境中已经存在。 具体来说provided 作用域适用于那些在运行时由容器或其他外部环境提供的依赖项例如 Servlet 和 JSP API。在 Java Web 应用中这些 API 是由 Web 容器如 Tomcat、Jetty 等提供的因此在构建项目时无需将这些 API 打包进 WAR 文件中。当你部署项目时Web 容器会负责提供这些 API。 使用 provided 作用域的好处是减少构建结果的大小因为不会将这些已经存在于目标环境的依赖项包含进去。这样可以避免冲突和版本问题同时也减少了不必要的重复。 总结使用 provided 作用域适用于那些在目标运行环境中已经存在的依赖项例如 Java Web 应用中的 Servlet 和 JSP API告诉 Maven 在构建时不要将这些依赖包含进去。 6.2、DispathcerServlet SpringMVC的核心控制器是DispatcherServlet它是整个SpringMVC框架的前端控制器Front Controller。当客户端发送请求时请求首先会被DispatcherServlet接收然后DispatcherServlet会根据请求的信息进行处理和分发。 DispatcherServlet的主要职责包括 请求分发根据请求的URL路径DispatcherServlet会将请求分发给不同的控制器进行处理。这些控制器由开发者定义并负责处理不同的请求逻辑。处理器映射DispatcherServlet维护了一个处理器映射表用于将请求映射到对应的处理器控制器上。视图解析在处理完请求后DispatcherServlet会根据处理结果选择对应的视图进行渲染并返回给客户端。统一异常处理DispatcherServlet还负责统一处理控制器抛出的异常可以通过配置异常处理器来处理不同类型的异常。本地化DispatcherServlet可以根据客户端请求的语言环境Locale选择对应的本地化消息实现国际化。拦截器DispatcherServlet支持拦截器Interceptor拦截器可以在请求处理前后进行预处理和后处理。 总体上DispatcherServlet起到了框架的总调度中心负责将请求与相应的控制器进行匹配然后将处理结果返回给客户端。通过配置DispatcherServlet的不同属性和参数我们可以实现自定义的请求处理逻辑和视图渲染方式。 配置web.xml 在web.xml配置SpringMVC的核心控制器 url-pattern指定URL的匹配模式这里是/表示将所有请求都交给名为DispatcherServlet的Servlet进行处理。 初始化 SpringMVC的初始化发生在Web应用启动时当容器例如Tomcat加载Web应用时会寻找web.xml文件并根据其中的配置初始化SpringMVC框架。 具体地说SpringMVC的初始化是通过配置在web.xml中的DispatcherServlet来完成的。在web.xml中配置DispatcherServlet时使用了load-on-startup标签并设置为一个非负整数例如load-on-startup1/load-on-startup。这个参数的值表示容器启动时加载DispatcherServlet的顺序数值越小优先级越高。 当容器启动时会按照load-on-startup的数值顺序逐个加载配置了load-on-startup的Servlet。因此DispatcherServlet配置了load-on-startup它将在容器启动时被加载。随后DispatcherServlet会根据配置的contextConfigLocation参数指定的位置加载SpringMVC的配置文件通常是一个XML文件用于初始化SpringMVC框架。 一旦SpringMVC初始化完成它就能够拦截并处理Web应用中的请求并根据配置的处理器映射和控制器进行相应的业务处理和视图返回。 url-pattern url-pattern用于配置Servlet的映射路径指定哪些请求能够被该Servlet处理。在SpringMVC中DispatcherServlet是用于处理所有请求的核心控制器因此url-pattern的配置方式决定了哪些请求会交给DispatcherServlet进行处理。 在web.xml中url-pattern可以按照以下几种方式进行配置 精确路径匹配url-pattern/path/url-pattern 表示只有请求路径为/path的请求会被该Servlet处理其他路径的请求将被其他Servlet或处理。通配符匹配url-pattern*.do/url-pattern 表示以.do结尾的请求路径都会被该Servlet处理例如/example.do、/test.do等。目录匹配url-pattern/dir/*/url-pattern 表示以/dir/开头的所有请求路径都会被该Servlet处理例如/dir/test、/dir/subdir/file等。默认匹配url-pattern//url-pattern 表示所有请求路径都会被该Servlet处理相当于将该Servlet设置为Web应用的默认Servlet用于处理所有请求。 需要注意的是url-pattern的配置会影响Servlet的处理优先级如果有多个Servlet配置了相同的url-pattern容器会按照它们在web.xml中的顺序进行匹配找到最先匹配的Servlet来处理请求。因此如果存在多个Servlet配置了相同的url-pattern应确保它们的配置顺序是符合要求的。在SpringMVC中通常将url-pattern配置为/使DispatcherServlet成为默认的Servlet来处理所有请求。 优先级 在启动web应用时容器会先加载监听器如ContextLoaderListener然后再加载SpringMVCDispatcherServlet。这是因为在web.xml中配置了监听器的listener标签其中定义了监听器的listener-class容器会根据这个类名实例化并初始化监听器从而在应用启动时执行监听器的contextInitialized()方法。 在SpringMVC中DispatcherServlet是用于处理所有请求的核心控制器需要在web.xml中配置servlet和servlet-mapping来将其与请求路径关联起来。通常servlet的load-on-startup配置为一个非负整数如1表示容器在启动时会优先加载并初始化这个Servlet。这样在应用启动时监听器会先被加载并执行然后再加载并初始化DispatcherServlet确保整个Spring容器以及MVC配置都准备好处理请求。 总结起来web应用启动时的加载顺序通常是 加载监听器执行监听器的contextInitialized()方法初始化Spring容器。加载DispatcherServlet准备处理请求。 ⭐load-on-startup load-on-startup是web.xml中servlet元素的一个子元素用于指定Servlet在应用启动时的加载顺序。它的取值可以是一个正整数或者负整数或者也可以不设置。 设置为正整数表示该Servlet在容器启动时会被立即加载和初始化。数值越小的Servlet会先被加载和初始化数值相同的Servlet按照它们在web.xml中的顺序依次加载和初始化。设置为负整数或不设置表示该Servlet在第一次接收到请求时才会被加载和初始化。这种情况下Servlet会延迟加载只有在实际需要时才会被初始化。 通常情况下对于在应用启动时需要进行初始化的Servlet将load-on-startup设置为正整数以确保在应用启动时立即加载和初始化。 6.3、Controller类及视图页面 这里渲染的视图是JSP想要渲染HTML是springBoot部分的内容。 6.4、配置注解 6.5、spring-mvc.xml ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://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.xsd!--Controller的组件扫描--context:component-scan base-packagecom.xzlcontext:include-filter typeannotation expressionorg.springframework.stereotype.Controller//context:component-scan!--配置内部资源视图解析器--bean idviewResolver classorg.springframework.web.servlet.view.InternalResourceViewResolver!-- /jsp/success.jsp --property nameprefix value/JSP//property namesuffix value.jsp//bean /beans 6.6、客户端发请求 7、组件解析 7.1、执行流程 SpringMVC的执行流程 ① 用户发送请求至前端控制器DispatcherServlet。 ② DispatcherServlet收到请求调用HandlerMapping处理器映射器。 ③ 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)生成处理器对象及处理器拦截器(如果 有则生成)一并返回给DispatcherServlet。 ④ DispatcherServlet调用HandlerAdapter处理器适配器。 ⑤ HandlerAdapter经过适配调用具体的处理器(Controller也叫后端控制器)。 ⑥ Controller执行完成返回ModelAndView。 ⑦ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。 ⑧ DispatcherServlet将ModelAndView传给ViewReslover视图解析器。 ⑨ ViewReslover解析后返回具体View。 ⑩ DispatcherServlet根据View进行渲染视图即将模型数据填充至视图中。DispatcherServlet响应用户 7.2、解析 SpringMVC组件解析 1. 前端控制器DispatcherServlet 用户请求到达前端控制器它就相当于 MVC 模式中的 CDispatcherServlet 是整个流程控制的中心由 它调用其它组件处理用户的请求DispatcherServlet 的存在降低了组件之间的耦合性。 2. 处理器映射器HandlerMapping HandlerMapping 负责根据用户请求找到 Handler 即处理器SpringMVC 提供了不同的映射器实现不同的 映射方式例如配置文件方式实现接口方式注解方式等。 3. 处理器适配器HandlerAdapter 通过 HandlerAdapter 对处理器进行执行这是适配器模式的应用通过扩展适配器可以对更多类型的处理 器进行执行。 4. 处理器Handler 它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由 Handler 对具体的用户请求进行处理。 5. 视图解析器View Resolver View Resolver 负责将处理结果生成 View 视图View Resolver 首先根据逻辑视图名解析成物理视图名即 具体的页面地址再生成 View 视图对象最后对 View 进行渲染将处理结果通过页面展示给用户。 6. 视图View SpringMVC 框架提供了很多的 View 视图类型的支持包括jstlView、freemarkerView、pdfView等。最 常用的视图就是 jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户需要由程序员根据业务需求开发具体的页面 8、注解解析 8.1、RequestMapping 作用用于建立请求 URL 和处理请求方法之间的对应关系 位置 类上请求URL 的第一级访问目录。此处不写的话就相当于应用的根目录 方法上请求 URL 的第二级访问目录与类上的使用ReqquestMapping标注的一级目录一起组成访问虚拟路径 属性 value用于指定请求的URL。它和path属性的作用是一样的 method用于指定请求的方式 params用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样 例如 params {accountName}表示请求参数必须有accountName params {moeny!100}表示请求参数中money不能是100 8.2、xml 8.3、知识要点 SpringMVC的相关组件 前端控制器DispatcherServlet处理器映射器HandlerMapping处理器适配器HandlerAdapter处理器Handler视图解析器View Resolver视图View SpringMVC的注解和配置 请求映射注解RequestMapping视图解析器配置 REDIRECT_URL_PREFIX redirect: FORWARD_URL_PREFIX forward: prefix ; suffix ; 文章转载自: http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.trsdm.cn.gov.cn.trsdm.cn http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn http://www.morning.psxcr.cn.gov.cn.psxcr.cn http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn http://www.morning.qqbw.cn.gov.cn.qqbw.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.xhrws.cn.gov.cn.xhrws.cn http://www.morning.wtwhj.cn.gov.cn.wtwhj.cn http://www.morning.jfgmx.cn.gov.cn.jfgmx.cn http://www.morning.iqcge.com.gov.cn.iqcge.com http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.hpggl.cn.gov.cn.hpggl.cn http://www.morning.ymmjx.cn.gov.cn.ymmjx.cn http://www.morning.qnbck.cn.gov.cn.qnbck.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.lpmjr.cn.gov.cn.lpmjr.cn http://www.morning.kmqjx.cn.gov.cn.kmqjx.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn http://www.morning.dansj.com.gov.cn.dansj.com http://www.morning.gbsfs.com.gov.cn.gbsfs.com http://www.morning.pkggl.cn.gov.cn.pkggl.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn http://www.morning.ndzhl.cn.gov.cn.ndzhl.cn http://www.morning.rnht.cn.gov.cn.rnht.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.ktlxk.cn.gov.cn.ktlxk.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.huarma.com.gov.cn.huarma.com http://www.morning.rblqk.cn.gov.cn.rblqk.cn http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.kwqwp.cn.gov.cn.kwqwp.cn http://www.morning.yptwn.cn.gov.cn.yptwn.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn http://www.morning.ftntr.cn.gov.cn.ftntr.cn http://www.morning.tpwrm.cn.gov.cn.tpwrm.cn http://www.morning.htsrm.cn.gov.cn.htsrm.cn http://www.morning.sryhp.cn.gov.cn.sryhp.cn http://www.morning.rqrh.cn.gov.cn.rqrh.cn http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.gqryh.cn.gov.cn.gqryh.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.smry.cn.gov.cn.smry.cn http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.qgdsd.cn.gov.cn.qgdsd.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.pszw.cn.gov.cn.pszw.cn http://www.morning.chmkt.cn.gov.cn.chmkt.cn http://www.morning.yfphk.cn.gov.cn.yfphk.cn http://www.morning.jtszm.cn.gov.cn.jtszm.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.smfbw.cn.gov.cn.smfbw.cn http://www.morning.pjqxk.cn.gov.cn.pjqxk.cn http://www.morning.qkrz.cn.gov.cn.qkrz.cn http://www.morning.fhddr.cn.gov.cn.fhddr.cn http://www.morning.xrwtk.cn.gov.cn.xrwtk.cn http://www.morning.bchfp.cn.gov.cn.bchfp.cn http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn http://www.morning.rgzc.cn.gov.cn.rgzc.cn http://www.morning.nknt.cn.gov.cn.nknt.cn http://www.morning.plhyc.cn.gov.cn.plhyc.cn 查看全文 http://www.tj-hxxt.cn/news/234678.html 相关文章: 湖南网站建设公司排名中国建设银行网站多少 网站做优化效果怎样代码编辑器 谈谈设计和建设网站体会沈阳做网站的公司有哪些 我的网站百度找不到网站布局优化 如何用工控做网站网站页面优化技巧 移动网站开发与维护公司网站建设沈阳 安徽天筑建设集团网站五金加工厂怎么做网站 宇宙企画网站网站续费申请 网站流量和带宽html的seo搜索优化 招商加盟网站大全做网页设计网站有哪些 济南个人网站建设每天能赚30 50元的 网站建设费用高贸易平台有哪些 怎么从建设部网站下载规范如何创立个人网站 酷家乐网站做墙裙教程沈阳网站建设专业公司 英文网站建设报价录播教育系统网站建设费用 建设美团网站商务网站创建经费预算 建设工程 质量 协会网站网站制作哪里做得好 重庆网站定制公司wordpress 新建用户 潍坊网站建设团队品牌推广策划方案案例 金花站长工具上海自聊自做网站 2017网站设计趋势简单网页源代码 太原网站建设开发公司qq降龙是哪个公司开发的 网站建设业务提成廊坊学校网站建设 公关网站建设前端开发好学吗 给女朋友做网站 知乎wordpress电视直播代码 网站完整模板大都会app最新版本下载 甘南网站建设在线教育网站开发 长治一般做一个网站需要多少钱互联网保险下架 网站行高电子商务网站分类 凯里小程序开发公司seo工作内容有哪些