厦门php商城网站建设,网站首页设计收费,免费wordpress模板下载地址,驻马店网站制作文章目录零、本节学习目标一、Spring MVC概述1、MVC架构2、Spring MVC3、使用Spring MVC的两种方式二、基于XML配置与注解的方式使用Spring MVC#xff08;一#xff09;创建Spring项目【SpringMVCDemo01】#xff08;二#xff09;在pom文件里添加相关依赖#xff08;三一创建Spring项目【SpringMVCDemo01】二在pom文件里添加相关依赖三给项目添加Web功能四创建三个页面1、登录页面 - login.jsp2、登录成功页面 - success.jsp3、登录失败页面 - failure.jsp五创建登录控制器 - LoginController六创建Spring配置文件 - spring-config.xml七创建Spring MVC配置文件 - spring-mvc-config.xml八在web.xml里加载Spring配置文件与Spring MVC配置文件九配置Tomcat服务器十添加项目对Tomcat的依赖十一启动Tomcat服务器十二测试登录功能三、实战练习任务1、设置项目首页 - index.jsp1、修改web.xml文件2、在views目录里创建首页文件index.jsp3、修改登录控制器 - LoginController4、启动服务器查看效果任务2、首页添加登录链接单击可跳转到登录页面1、修改首页文件 - index.jsp2、修改登录控制器 - LoginController3、启动服务器查看效果任务3、利用Spring MVC配置文件实现快捷页面跳转1、修改登录控制器 - LoginController2、修改Spring MVC配置文件 - spring-mvc-config.xml3、启动服务器查看效果任务4、添加静态资源让Spring MVC正确处理1、添加一张图片2、修改首页文件增加显示图片的元素3、启动服务器查看效果4、修改Spring MVC配置文件单独处理静态资源5、修改首页文件图片源采用虚拟路径由配置文件负责映射到真实路径6、重启服务器查看效果课堂练习添加CSS样式表和JavaScript脚本文件任务5、请求服务器端返回的简单字符串1、创建获取字符串控制器 - GetStringController2、启动服务器查看效果3、修改获取字符串控制器 - GetStringController4、重启服务器查看效果思考题能否让返回的字符串变大一点显示任务6、请求服务器端返回的JSON数据1、创建用户实体类 - User2、创建获取JSON控制器 - GetJsonController3、在pom.xml文件里添加对json的支持4、启动服务器查看结果任务7、请求服务器端返回的XML数据1、创建获取XML控制器 - GetXmlController2、在pom.xml文件里添加对xml的支持3、在项目结构窗口将依赖添加到输出目录4、启动服务器查看效果零、本节学习目标
了解Spring MVC的基本原理会基于XML配置方式使用Spring MVC
一、Spring MVC概述
1、MVC架构
MVC 是 Model、View 和 Controller 的缩写分别代表 Web 应用程序中的 3 种职责。
模型用于存储数据以及处理用户请求的业务逻辑。视图向控制器提交数据显示模型中的数据。控制器根据视图提出的请求判断将请求和数据交给哪个模型处理将处理后的有关结果交给哪个视图更新显示。
三层架构Presentation Tier Application Tier Data Tier 展现层应用层数据访问层
2、Spring MVC
Spring MVC 是 Spring 提供给 Web 应用的框架设计。Spring MVC 是一个典型的教科书式的 MVC 构架不像 Struts 等都是变种或者不是完全基于 MVC 系统的框架。Spring MVC 角色划分清晰分工明细并且和 Spring 框架无缝结合。作为当今业界最主流的 Web 开发框架Spring MVC 已经成为当前最热门的开发技能同时也广泛用于桌面开发领域。实际上MVC只存在于三层架构的展现层M实际上是数据模型是包含数据的对象在Spring MVC里有一个专门的类交Model用于和V之间的数据交互和传值V指的是视图页面包含JSP、FreeMarker、Velocity、Thymeleaf、Tile等C当然就是控制器Spring MVC的注解Controller的类。Spring MVC工作流程
客户端请求提交到 DispatcherServlet。由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping找到处理请求的 Controller。DispatcherServlet 将请求提交到 Controller。Controller 调用业务逻辑处理后返回 ModelAndView。DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器找到 ModelAndView 指定的视图。视图负责将结果显示到客户端。
Spring框架文档网址https://docs.spring.io/spring-framework/docs/current/reference/html/
3、使用Spring MVC的两种方式
基于XML配置与注解的方式使用Spring MVC基于Java配置与注解的方式使用Spring MVC
二、基于XML配置与注解的方式使用Spring MVC
一创建Spring项目【SpringMVCDemo01】 二在pom文件里添加相关依赖 ?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/modelVersiongroupIdnet.hw.spring/groupIdartifactIdSpringMVCDemo01/artifactIdversion1.0-SNAPSHOT/versionproperties!-- spring.version --spring.version5.3.4/spring.version/propertiesdependencies!--Spring核心--dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependency!--Spring Bean--dependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependency!--Spring容器--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency!--Spring测试--dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependency!--Spring Web--dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependency!--Spring MVC--dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency!--JSP标准标签库--dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependency!--Servlet --dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope/dependency!--日志框架--dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency!--单元测试--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13/versionscopetest/scope/dependency/dependencies
/project 三给项目添加Web功能
打开项目结构窗口在列表里选择【Modules】 单击【】按钮添加Web功能 单击【Create Artifact】按钮将名称改为“SpringMVCDemo01” 单击【OK】按钮可以看到项目多了一个web目录
四创建三个页面
在WEB-INF里创建views子目录
1、登录页面 - login.jsp % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle用户登录/titlemeta http-equivContent-Type contenttext/html; charsetutf-8
/head
body
h3 styletext-align: center用户登录/h3
form idfrmLogin actionlogin methodposttable classtb border1 cellpadding10 stylemargin: 0px autotrtd aligncenter账号/tdtdinput idusername typetext nameusername//td/trtrtd aligncenter密码/tdtdinput idpassword typepassword namepassword//td/trtr aligncentertd colspan2input typesubmit value登录/input typereset value重置//td/tr/table
/form
/body
/html2、登录成功页面 - success.jsp % page contentTypetext/html;charsetUTF-8 languagejava %
%taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
html
headtitle登录成功/title
/head
body
h1${username}登录成功/h1
/body
/html3、登录失败页面 - failure.jsp % page contentTypetext/html;charsetUTF-8 languagejava %
%taglib prefixc urihttp://java.sun.com/jsp/jstl/core %
html
headtitle登录失败/title
/head
body
h1${username}登录失败/h1
/body
/html五创建登录控制器 - LoginController
创建net.hw.spring.controller子包然后在包里创建LoginController类 package net.hw.spring.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpSession;/*** 功能登录控制器* 作者华卫* 日期2021年04月07日*/
Controller
public class LoginController {RequestMapping(/login)public String login(RequestParam(username) String username,RequestParam(password) String password,HttpSession session) {// 将从登录表单获取的用户名写入会话session.setAttribute(username, username);// 判断是否登录成功if (username.equals(admin) password.equals(12345)) {// 返回逻辑视图名return success;} else {// 返回逻辑视图名return failure;}}
}六创建Spring配置文件 - spring-config.xml
在resources里创建mvc子目录然后在子目录里创建spring-config.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!--组件扫描--context:component-scan base-packagenet.hw.spring.controller /
/beans七创建Spring MVC配置文件 - spring-mvc-config.xml
在resources/mvc目录里创建spring-mvc-config.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:mvchttp://www.springframework.org/schema/cachexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd!--采用注解驱动--mvc:annotation-driven/!--扫描控制器--context:component-scan base-packagenet.hw.spring.controller/!--定义内部资源视图解析器--bean classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameviewClass valueorg.springframework.web.servlet.view.JstlView/property nameprefix value/WEB-INF/views//property namesuffix value.jsp//bean
/beans八在web.xml里加载Spring配置文件与Spring MVC配置文件
在web/WEB-INF目录里打开web.xml文件 ?xml version1.0 encodingUTF-8?
web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsdversion4.0!--设置启动首页--welcome-file-listwelcome-file/WEB-INF/views/login.jsp/welcome-file/welcome-file-list!--Spring容器加载监听器让Spring随着Web项目启动而初始化--listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener!--指定Spring配置文件位置--context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:mvc/spring-config.xml/param-value/context-param!--配置Spring前段控制器加载Spring MVC配置文件--servletservlet-nameDispatcherServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:mvc/spring-mvc-config.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-nameDispatcherServlet/servlet-nameurl-pattern//url-pattern !--“/”表明拦截一切请求--/servlet-mapping!--设置字符编码过滤器--filterfilter-nameCharacter Encoding/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueutf-8/param-value/init-param/filterfilter-mappingfilter-nameCharacter Encoding/filter-nameurl-pattern/*/url-pattern/filter-mapping
/web-app九配置Tomcat服务器
单击工具栏上的【Add Configuration】弹出【Run/Debug Configurations】窗口 添加本地的Tomcat服务器 对服务器进行设置配置应用服务器 单击【Fix】按钮 单击【OK】按钮
十添加项目对Tomcat的依赖
打开【Project Structure】窗口 单击【Dependencies】选项卡 单击【】按钮选择【Library】 单击【Add Selected】按钮 单击【OK】按钮
十一启动Tomcat服务器 启动失败输出目录没有项目运行所需的jar包 配置Artifacts添加项目正常运行所需的jar包 选在项目依赖的全部jar包单击右键选择【Put into /WEB-INF/lib】 单击【OK】按钮 重启服务器查看结果 修改Spring MVC配置文件 添加xmlns:mvchttp://www.springframework.org/schema/mvc 重启服务器查看结果
十二测试登录功能 三、实战练习
任务1、设置项目首页 - index.jsp
页面显示内容Hello, Spring MVC World!
1、修改web.xml文件
注释掉“设置启动首页”元素
2、在views目录里创建首页文件index.jsp % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle首页/title
/head
body
h1Hello, Spring MVC World!/h1
/body
/html此时启动服务器查看效果
3、修改登录控制器 - LoginController 4、启动服务器查看效果 任务2、首页添加登录链接单击可跳转到登录页面
1、修改首页文件 - index.jsp 2、修改登录控制器 - LoginController 3、启动服务器查看效果 说明项目启动后跳转到首页然后从首页跳转到登录页面都是通过登录控制器里的跳转方法实现的跳转方法里没有任何业务逻辑只是一条return语句负责页面跳转我们有更为简单的方法来取代即利用利用Spring MVC配置文件实现快捷页面跳转。
任务3、利用Spring MVC配置文件实现快捷页面跳转
1、修改登录控制器 - LoginController
注释掉两个负责页面跳转的方法index()、toLogin()
2、修改Spring MVC配置文件 - spring-mvc-config.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/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd!--采用注解驱动--mvc:annotation-driven/!--扫描控制器--context:component-scan base-packagenet.hw.spring.controller/!--定义内部资源视图解析器--bean classorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameviewClass valueorg.springframework.web.servlet.view.JstlView/property nameprefix value/WEB-INF/views//property namesuffix value.jsp//bean!--定义视图控制器--mvc:view-controller path/ view-nameindex/mvc:view-controller path/toLogin view-namelogin/
/beans3、启动服务器查看效果 任务4、添加静态资源让Spring MVC正确处理
静态资源包括图片、样式表、脚本下面以图片为例进行说明
1、添加一张图片
在WEB-INF里创建images目录将图片bear.jpg拷贝进来当然你们可以拷贝其它图片
2、修改首页文件增加显示图片的元素 3、启动服务器查看效果 4、修改Spring MVC配置文件单独处理静态资源 5、修改首页文件图片源采用虚拟路径由配置文件负责映射到真实路径 6、重启服务器查看效果 课堂练习添加CSS样式表和JavaScript脚本文件
在WEB-INF里创建css目录在里面创建样式文件index.css负责首页的样式元素全部居中设置页面背景颜色去掉超链接的下划线…… 在WEB-INF里创建js目录在里面创建脚本文件check.js负责登录页面的非空校验先进行用户名非空校验后进行密码非空校验
任务5、请求服务器端返回的简单字符串
1、创建获取字符串控制器 - GetStringController 2、启动服务器查看效果
访问http://localhost:8080/SpringMVCDemo01/getString
3、修改获取字符串控制器 - GetStringController 4、重启服务器查看效果
访问http://localhost:8080/SpringMVCDemo01/getString
思考题能否让返回的字符串变大一点显示 任务6、请求服务器端返回的JSON数据
1、创建用户实体类 - User
创建net.hw.spring.bean包然后在包里创建User类
package net.hw.spring.lesson07.bean;import java.util.Date;/*** 功能用户实体类* 作者华卫* 日期2021年04月12日*/
public class User {private int id;private String username;private String password;private String telephone;private Date registerTime;private int popedom;public int getId() {return id;}public void setId(int id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone telephone;}public Date getRegisterTime() {return registerTime;}public void setRegisterTime(Date registerTime) {this.registerTime registerTime;}public int getPopedom() {return popedom;}public void setPopedom(int popedom) {this.popedom popedom;}Overridepublic String toString() {return User{ id id , username username \ , password password \ , telephone telephone \ , registerTime registerTime , popedom popedom };}
}2、创建获取JSON控制器 - GetJsonController package net.hw.spring.controller;import net.hw.spring.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 功能获取JSON控制器* 作者华卫* 日期2021年04月12日*/
Controller
public class GetJsonController {RequestMapping(value /getJson, produces application/json; charsetutf-8)ResponseBody // 响应正文注解public User getJson() {User user new User();user.setId(1);user.setUsername(萌萌哒);user.setPassword(902345);user.setTelephone(15834345678);user.setRegisterTime(new Date());user.setPopedom(1);return user;}RequestMapping(value /getJsonArray, produces application/json; charsetutf-8)ResponseBody // 响应正文注解public ListUser getJsonArray() {ListUser users new ArrayList();// 创建第1个用户User user new User();user.setId(1);user.setUsername(萌萌哒);user.setPassword(902345);user.setTelephone(15834345678);user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);// 创建第2个用户user new User();user.setId(2);user.setUsername(康科德);user.setPassword(12345);user.setTelephone(13856567890);user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);// 创建第3个用户user new User();user.setId(3);user.setUsername(娃哈哈);user.setPassword(54321);user.setTelephone(15890905678);user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);return users;}
}3、在pom.xml文件里添加对json的支持 !--对json的支持--
dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-core/artifactId version2.9.7/version
/dependency
dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-databind/artifactId version2.9.7/version
/dependency
dependency groupIdcom.fasterxml.jackson.core/groupId artifactIdjackson-annotations/artifactId version2.9.7/version
/dependency 4、启动服务器查看结果 访问http://localhost:8080/SpringMVCDemo01/getJson 重启服务器再次访问查看效果 访问http://localhost:8080/SpringMVCDemo01/getJsonArray
任务7、请求服务器端返回的XML数据
1、创建获取XML控制器 - GetXmlController package net.hw.spring.controller;import net.hw.spring.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 功能获取XML控制器* 作者华卫* 日期2021年04月12日*/
Controller
public class GetXmlController {RequestMapping(value /getXml, produces application/xml; charsetutf-8)public ResponseBodyListUser getXml() {ListUser users new ArrayListUser();User user new User();user.setId(1);user.setUsername(萌萌哒);user.setPassword(12345);user.setTelephone(15889895678);user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);user new User();user.setId(2);user.setUsername(李文霞);user.setPassword(45678);user.setTelephone(13978783456);user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);user new User();user.setId(3);user.setUsername(郑智化);user.setPassword(88888);user.setTelephone(15890903456);user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);return users;}
}2、在pom.xml文件里添加对xml的支持 !--对xml的支持--
dependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-xml/artifactIdversion2.5.3/version
/dependency3、在项目结构窗口将依赖添加到输出目录 4、启动服务器查看效果
访问http://localhost:8080/SpringMVCDemo01/getXml 文章转载自: http://www.morning.gtbjf.cn.gov.cn.gtbjf.cn http://www.morning.csnmd.cn.gov.cn.csnmd.cn http://www.morning.gktds.cn.gov.cn.gktds.cn http://www.morning.trwkz.cn.gov.cn.trwkz.cn http://www.morning.zztmk.cn.gov.cn.zztmk.cn http://www.morning.yskhj.cn.gov.cn.yskhj.cn http://www.morning.kmqwp.cn.gov.cn.kmqwp.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.kxsnp.cn.gov.cn.kxsnp.cn http://www.morning.dktyc.cn.gov.cn.dktyc.cn http://www.morning.ndltr.cn.gov.cn.ndltr.cn http://www.morning.pqktp.cn.gov.cn.pqktp.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.kwdfn.cn.gov.cn.kwdfn.cn http://www.morning.nlrxh.cn.gov.cn.nlrxh.cn http://www.morning.cnqff.cn.gov.cn.cnqff.cn http://www.morning.dqwykj.com.gov.cn.dqwykj.com http://www.morning.gcqs.cn.gov.cn.gcqs.cn http://www.morning.jtrqn.cn.gov.cn.jtrqn.cn http://www.morning.gqdsm.cn.gov.cn.gqdsm.cn http://www.morning.bgpb.cn.gov.cn.bgpb.cn http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn http://www.morning.ljmbd.cn.gov.cn.ljmbd.cn http://www.morning.rykmf.cn.gov.cn.rykmf.cn http://www.morning.skrcn.cn.gov.cn.skrcn.cn http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.cfccp.cn.gov.cn.cfccp.cn http://www.morning.nrddx.com.gov.cn.nrddx.com http://www.morning.nj-ruike.cn.gov.cn.nj-ruike.cn http://www.morning.dwncg.cn.gov.cn.dwncg.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.gtqws.cn.gov.cn.gtqws.cn http://www.morning.kjnfs.cn.gov.cn.kjnfs.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.jlmrx.cn.gov.cn.jlmrx.cn http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn http://www.morning.qlck.cn.gov.cn.qlck.cn http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn http://www.morning.qbfqb.cn.gov.cn.qbfqb.cn http://www.morning.mdmxf.cn.gov.cn.mdmxf.cn http://www.morning.lqytk.cn.gov.cn.lqytk.cn http://www.morning.egmux.cn.gov.cn.egmux.cn http://www.morning.plfrk.cn.gov.cn.plfrk.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.znpyw.cn.gov.cn.znpyw.cn http://www.morning.cylbs.cn.gov.cn.cylbs.cn http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.prprz.cn.gov.cn.prprz.cn http://www.morning.rwmft.cn.gov.cn.rwmft.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.kzrg.cn.gov.cn.kzrg.cn http://www.morning.bpmtg.cn.gov.cn.bpmtg.cn http://www.morning.rlqqy.cn.gov.cn.rlqqy.cn http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn http://www.morning.xplng.cn.gov.cn.xplng.cn http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn http://www.morning.yzygj.cn.gov.cn.yzygj.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.xfxnq.cn.gov.cn.xfxnq.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.wpjst.cn.gov.cn.wpjst.cn http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn http://www.morning.pfntr.cn.gov.cn.pfntr.cn http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn http://www.morning.aa1585.com.gov.cn.aa1585.com http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.przc.cn.gov.cn.przc.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.jrwbl.cn.gov.cn.jrwbl.cn http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn http://www.morning.rxfbf.cn.gov.cn.rxfbf.cn