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

域名申请通过了网站怎么做php wordpress 模版

域名申请通过了网站怎么做,php wordpress 模版,8网站建设做网站,推广网站建设目录 1️⃣JSON 一、什么是json#xff1f; 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六#xff0c;使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试#xff1a; …目录 1️⃣JSON 一、什么是json 二、与javascript的关系 三、语法格式 四、注意事项 五、总结 六使用json 1导入pom.xml依赖 2.配置spring-mvc.xml 3. ResponseBody注解使用 创建一个web层控制器 编写ClazzBiz 实现接口 测试 2.异常处理机制 1.为什么要全局异常处理 2.异常处理思路 3.SpringMVC异常分类 4.异常处理方法 方法一 方法二 方法三 1️⃣JSON 一、什么是json json的全称为JavaScript Object Notation是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集采用完全独立于编程语言的文本格式来存储和表示数据。【以上来自于百度百科】 简单来说json就是一种在各个编程语言中流通的数据格式负责不同编程语言中的数据传递和交互。 类似于 国际通用语言-英语中国56个民族不同地区的通用语言-普通话。 但真要说json到底是什么以及json的作用我们总是难以描述下面我将从各个方面来进行说明 二、与javascript的关系 相信很多程序员只要一提到json总会想到js因为json不仅含有js的名字其格式也与js中对象object的格式并无一二。 这里我们要进行一个说明首先json是基于ECMAScript语法但这并不意味着json必须在js中使用或者必须要产生什么联系json在js中的处理也并没有比其他语言占有更多优势。只是因为语法相似而使得js开发者能更快的上手json而已。 事实上几乎所有编程语言中都有对json数据转换的支持 js中json与对象的转换JSON.parse()/JSON.stringify(); php中json与数组的转换json_encode()/json_decode(); java中json与对象的转换fromJson()/toJson(); python中json与对象的转换json.dumps()/json.loads(); 三、语法格式 那么json的语法格式到底是怎样的呢我们先来看一段json数据{name:admin,age:18} 这就是一种最简单的json如果有学过js的开发者是不是发现json的语法与js中object的语法几乎相同。 但是注意 json是一种纯字符数据不属于编程语言json的语法与js中object的语法几乎一致下一部分说明不同json数据以键值对形式存在多个键值对之间用逗号,隔开键值对的键和值之间用冒号:连接json数据在js对象的基础上做了严格化json数据中的键值对可以使用编程语言中所谓的关键字*见注意事项json的数据可以用花括号{}或中括号[]包裹对应js中的object和array 四、注意事项 为什么说几乎相同而不是完全相同呢接下来我们要说的就是json与js中对象的不同点也是json严格要求的部分 json的键值对的键部分必须用双引号包裹单引号都不行所以如果在键中出现了关键字也被字符化了而js中对象没有强制要求所以在键中不允许出现关键字json的键值对的值部分不允许出现函数functionundefinedNaN但是可以有nulljs中对象的值中可以出现json数据结束后不允许出现没有意义的逗号,如{name:admin,age:18,}注意看数据结尾部分18的后面的逗号不允许出现 五、总结 所以json数据的格式可以是{name:admin,age:18} 也可以是[hello,3.1415,json] 还可以是[{name:admin,age:18},{name:root,age:16},{name:张三,age:20}] 不能是key没有双引号{name:admin,age:18} 不能是无意义的逗号{name:admin,age:18,} 不能是不允许出现函数{name:admin,age:18,show:function()()} 不能是不允许出现undefined{name:admin,age:18,show:undefined} 不能是不允许出现NaN{name:admin,age:18,strong:NaN} 不能是无意义的逗号[hello,3.1415,json,] 不能是无意义的逗号[{name:admin,age:18},{name:root,age:16},{name:张三,age:20},] 以上内容希望能对以后使用json有所帮助简单来说json处理的是 对象数值[ ] , 混合 rows: [ ]以及 json转换的注解 其实作为通用数据xml也是一种不错的选择但是随着json的出现xml的使用场景正慢慢被json蚕食相对来说json在某些方面下的体现还是比xml稍具优势后期可再开一篇文档说明json和xml的区别。 六使用json 1导入pom.xml依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.3/version /dependency dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.9.3/version /dependency dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion2.9.3/version /dependency 2.配置spring-mvc.xml bean classorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapterproperty namemessageConverterslistref beanmappingJackson2HttpMessageConverter//list/property/beanbean idmappingJackson2HttpMessageConverterclassorg.springframework.http.converter.json.MappingJackson2HttpMessageConverter!--处理中文乱码以及避免IE执行AJAX时返回JSON出现下载文件--property namesupportedMediaTypeslistvaluetext/html;charsetUTF-8/valuevaluetext/json;charsetUTF-8/valuevalueapplication/json;charsetUTF-8/value/list/property/bean 3. ResponseBody注解使用 ResponseBody注解的作用是将Controller的方法返回的对象通过适当的转换器转换为指定的格式之后写入到response对象的body区通常用来返回JSON数据或者是XML数据。 注意在使用此注解之后不会再走视图解析器而是直接将数据写入到输入流中他的效果等同于通过response对象输出指定格式的数据。 创建一个web层控制器 package com.xzs.web;import com.xzs.Biz.ClazzBiz; import com.xzs.model.Clazz; import com.xzs.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map;Controller RequestMapping(/clz/json) public class JsonController {Autowiredprivate ClazzBiz clazzBiz;/*** 返回ListT* param req* param clazz* return*/ResponseBodyRequestMapping(/list)public ListClazz list(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);return lst;}/*** 返回T* param req* param clazz* return*/ResponseBodyRequestMapping(/load)public Clazz load(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListClazz lst this.clazzBiz.listPager(clazz, null);return lst.get(0);}return null;}/*** 返回ListMap* param req* param clazz* return*/ResponseBodyRequestMapping(/mapList)public ListMap mapList(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListMap lst this.clazzBiz.mapListPager(clazz, pageBean);return lst;}/*** 返回Map* param req* param clazz* return*/ResponseBodyRequestMapping(/mapLoad)public Map mapLoad(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListMap lst this.clazzBiz.mapListPager(clazz, null);return lst.get(0);}return null;}ResponseBodyRequestMapping(/all)public Map all(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);Map map new HashMap();map.put(lst,lst);map.put(pageBean,pageBean);return map;}ResponseBodyRequestMapping(/jsonStr)public String jsonStr(HttpServletRequest req, Clazz clazz){return clzEdit;}}在ClazzMapper.xml中创建 select idmapListPager resultTypejava.util.Map parameterTypejava.lang.Integer selectinclude refidBase_Column_List /from t_struts_classwhereif testcname !nulland cname like concat(%,#{cname},%)/if/where /select 注意这里方法返回的是map值所以resultType中的属性值要填java.util.Map 在ClazzMapper中实现该方法 package com.xzs.mapper;import com.xzs.model.Clazz; import com.xzs.utils.PageBean;import java.util.List; import java.util.Map;public interface ClazzMapper {int deleteByPrimaryKey(Integer cid);int insert(Clazz record);int insertSelective(Clazz record);Clazz selectByPrimaryKey(Integer cid);int updateByPrimaryKeySelective(Clazz record);int updateByPrimaryKey(Clazz record);ListClazz listPger(Clazz clazz);ListMap mapListPager(Clazz clazz); } 编写ClazzBiz package com.xzs.Biz;import com.xzs.model.Clazz; import com.xzs.utils.PageBean; import org.springframework.stereotype.Repository;import java.util.List; import java.util.Map;Repository public interface ClazzBiz {int deleteByPrimaryKey(Integer cid);int insert(Clazz record);int insertSelective(Clazz record);Clazz selectByPrimaryKey(Integer cid);int updateByPrimaryKeySelective(Clazz record);int updateByPrimaryKey(Clazz record);ListClazz listPager(Clazz clazz, PageBean page);ListMap mapListPager(Clazz clazz, PageBean page); } 实现接口 package com.xzs.Impl;import com.xzs.Biz.ClazzBiz; import com.xzs.mapper.ClazzMapper; import com.xzs.model.Clazz; import com.xzs.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List; import java.util.Map;Service public class ClazzBizImpl implements ClazzBiz { Autowiredprivate ClazzMapper clazzMapper;Overridepublic int deleteByPrimaryKey(Integer cid) {return clazzMapper.deleteByPrimaryKey(cid);}Overridepublic int insert(Clazz record) {return clazzMapper.insert(record);}Overridepublic int insertSelective(Clazz record) {return clazzMapper.insertSelective(record);}Overridepublic Clazz selectByPrimaryKey(Integer cid) {return clazzMapper.selectByPrimaryKey(cid);}Overridepublic int updateByPrimaryKeySelective(Clazz record) {return clazzMapper.updateByPrimaryKeySelective(record);}Overridepublic int updateByPrimaryKey(Clazz record) {return clazzMapper.updateByPrimaryKey(record);}Overridepublic ListClazz listPager(Clazz clazz, PageBean pageBean) {return clazzMapper.listPger(clazz);}Overridepublic ListMap mapListPager(Clazz clazz, PageBean pageBean) {return clazzMapper.mapListPager(clazz);}}测试 public ListClazz list方法 public Clazz load 方法 public ListMap mapList方法 public Map mapLoad方法 public Map all方法 public String jsonStr方法 注意当我们的方法全部都是返SON对象时 ResponseBody可以放在只写一个但是必须得是上述JsonController中Controller的上方并且 ResponseBodyController等于RestController如果在JsonController中将 public String jsonStr方法上的ResponseBody给注释掉那么将不再返回json数据而是进行页面跳转 证明 import com.xzs.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map;Controller RequestMapping(/clz/json) public class JsonController {Autowiredprivate ClazzBiz clazzBiz;/*** 返回ListT* param req* param clazz* return*/ResponseBodyRequestMapping(/list)public ListClazz list(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);return lst;}/*** 返回T* param req* param clazz* return*/ResponseBodyRequestMapping(/load)public Clazz load(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListClazz lst this.clazzBiz.listPager(clazz, null);return lst.get(0);}return null;}/*** 返回ListMap* param req* param clazz* return*/ResponseBodyRequestMapping(/mapList)public ListMap mapList(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListMap lst this.clazzBiz.mapListPager(clazz, pageBean);return lst;}/*** 返回Map* param req* param clazz* return*/ResponseBodyRequestMapping(/mapLoad)public Map mapLoad(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListMap lst this.clazzBiz.mapListPager(clazz, null);return lst.get(0);}return null;}ResponseBodyRequestMapping(/all)public Map all(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);Map map new HashMap();map.put(lst,lst);map.put(pageBean,pageBean);return map;}// ResponseBodyRequestMapping(/jsonStr)public String jsonStr(HttpServletRequest req, Clazz clazz){return clzEdit;}} package com.xzs.web;import com.xzs.Biz.ClazzBiz; import com.xzs.model.Clazz; import com.xzs.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; ResponseBody Controller RequestMapping(/clz/json) public class JsonController {Autowiredprivate ClazzBiz clazzBiz;/*** 返回ListT* param req* param clazz* return*/ // ResponseBodyRequestMapping(/list)public ListClazz list(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);return lst;}/*** 返回T* param req* param clazz* return*/ // ResponseBodyRequestMapping(/load)public Clazz load(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListClazz lst this.clazzBiz.listPager(clazz, null);return lst.get(0);}return null;}/*** 返回ListMap* param req* param clazz* return*/ // ResponseBodyRequestMapping(/mapList)public ListMap mapList(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListMap lst this.clazzBiz.mapListPager(clazz, pageBean);return lst;}/*** 返回Map* param req* param clazz* return*/ResponseBodyRequestMapping(/mapLoad)public Map mapLoad(HttpServletRequest req, Clazz clazz){if(clazz.getCid() ! null){ListMap lst this.clazzBiz.mapListPager(clazz, null);return lst.get(0);}return null;}ResponseBodyRequestMapping(/all)public Map all(HttpServletRequest req, Clazz clazz){PageBean pageBean new PageBean();pageBean.setRequest(req);ListClazz lst this.clazzBiz.listPager(clazz, pageBean);Map map new HashMap();map.put(lst,lst);map.put(pageBean,pageBean);return map;}// ResponseBodyRequestMapping(/jsonStr)public String jsonStr(HttpServletRequest req, Clazz clazz){return clzEdit;}}隐藏数据 在实体类中在要隐藏的属性上添加JsonIgnore即可 package com.xzs.model;import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.validator.constraints.NotBlank;import javax.validation.constraints.NotNull;Data//相当于set get toString方法 AllArgsConstructor //有参构造器 NoArgsConstructor public class Clazz {NotNull(message 班级编号不能为空) // Size(max 100,min 10,message 大小必须在10至100之间)protected Integer cid;NotBlank(message 班级名不能为空)protected String cname;NotBlank(message 班级教员老师不能为空)protected String cteacher; JsonIgnoreprivate String pic暂无图片;} 2.异常处理机制 1.为什么要全局异常处理 我们知道系统中异常包括编译时异常和运行时异常RuntimeException前者通过捕获异常从而获取异常信息后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中不管是dao层、service层还是controller层都有可能抛出异常在springmvc中能将所有类型的异常处理从各处理过程解耦出来既保证了相关处理过程的功能较单一也实现了异常信息的统一处理和维护。 2.异常处理思路 系统的dao、service、controller出现异常都通过throws Exception向上抛出最后由springmvc前端控制器交由异常处理器进行异常处理。springmvc提供全局异常处理器一个系统只有一个异常处理器进行统一异常处理。 3.SpringMVC异常分类 使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver 实现Spring的异常处理接口HandlerExceptionResolver自定义自己的异常处理器 使用ControllerAdvice ExceptionHandler 4.异常处理方法 RequestMapping(/mapList)public ListMap mapList(HttpServletRequest req, Clazz clazz){System.out.println((1 / 0));PageBean pageBean new PageBean();pageBean.setRequest(req);ListMap lst this.clazzBiz.mapListPager(clazz, pageBean);return lst;} 方法一 !-- springmvc提供的简单异常处理器 -- bean classorg.springframework.web.servlet.handler.SimpleMappingExceptionResolver!-- 定义默认的异常处理页面 --property namedefaultErrorView valueerror/!-- 定义异常处理页面用来获取异常信息的变量名也可不定义默认名为exception -- property nameexceptionAttribute valueex/!-- 定义需要特殊处理的异常这是重要点 -- property nameexceptionMappingspropsprop keyjava.lang.RuntimeExceptionerror/prop/props!-- 还可以定义其他的自定义异常 --/property /bean 编写错误界面error.jsp %--Created by IntelliJ IDEA.User: xzsDate: 2023/9/13Time: 16:48To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleTitle/title /head body 网络异常 /body /html方法二 package com.xzs.exception;public class GlobalException extends RuntimeException {public GlobalException() {}public GlobalException(String message) {super(message);}public GlobalException(String message, Throwable cause) {super(message, cause);}public GlobalException(Throwable cause) {super(cause);}public GlobalException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {super(message, cause, enableSuppression, writableStackTrace);} } package com.xzs.component;import com.xzs.exception.GlobalException; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;Component public class GlobalExceptionHandler implements HandlerExceptionResolver {Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse,Object o, Exception e) {ModelAndView mv new ModelAndView();mv.setViewName(error);if (e instanceof GlobalException){GlobalException globalException (GlobalException) e;mv.addObject(ex,globalException.getMessage());mv.addObject(msg,全局异常....);}else if (e instanceof RuntimeException){RuntimeException runtimeException (RuntimeException) e;mv.addObject(ex,runtimeException.getMessage());mv.addObject(msg,运行时异常....);}else {RuntimeException runtimeException (RuntimeException) e;mv.addObject(ex,runtimeException.getMessage());mv.addObject(msg,其他时异常....);}return mv;} } 编写错误界面 %--Created by IntelliJ IDEA.User: xzsDate: 2023/9/13Time: 16:48To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % html headtitleTitle/title /head body 网络异常 ${msg} /body /html运行结果 方法三 package com.xzs.component;import com.xzs.exception.GlobalException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap; import java.util.Map;ControllerAdvice public class GlobalExceptionResolver {// 跳转错误页面 // ExceptionHandler // public ModelAndView handler(Exception e){ // ModelAndView mv new ModelAndView(); // mv.setViewName(error); // if (e instanceof GlobalException){ // GlobalException globalException (GlobalException) e; // mv.addObject(ex,globalException.getMessage()); // mv.addObject(msg,全局异常....); // }else if (e instanceof RuntimeException){ // RuntimeException runtimeException (RuntimeException) e; // mv.addObject(ex,runtimeException.getMessage()); // mv.addObject(msg,运行时异常....); // } // return mv; // }// 返回错误json数据ResponseBodyExceptionHandlerpublic Map handler(Exception e){Map map new HashMap();if (e instanceof GlobalException){GlobalException globalException (GlobalException) e;map.put(ex,globalException.getMessage());map.put(msg,全局异常....);}else if (e instanceof RuntimeException){RuntimeException runtimeException (RuntimeException) e;map.put(ex,runtimeException.getMessage());map.put(msg,运行时异常....);}else {map.put(ex,e.getMessage());map.put(msg,其它异常....);}return map;} } 返回json数据 package com.xzs.component;import com.xzs.exception.GlobalException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView;import java.util.HashMap; import java.util.Map;ControllerAdvice public class GlobalExceptionResolver {//跳转错误页面ExceptionHandlerpublic ModelAndView handler(Exception e){ModelAndView mv new ModelAndView();mv.setViewName(error);if (e instanceof GlobalException){GlobalException globalException (GlobalException) e;mv.addObject(ex,globalException.getMessage());mv.addObject(msg,全局异常....);}else if (e instanceof RuntimeException){RuntimeException runtimeException (RuntimeException) e;mv.addObject(ex,runtimeException.getMessage());mv.addObject(msg,运行时异常....);}return mv;}// 返回错误json数据 // ResponseBody // ExceptionHandler // public Map handler(Exception e){ // Map map new HashMap(); // if (e instanceof GlobalException){ // GlobalException globalException (GlobalException) e; // map.put(ex,globalException.getMessage()); // map.put(msg,全局异常....); // }else if (e instanceof RuntimeException){ // RuntimeException runtimeException (RuntimeException) e; // map.put(ex,runtimeException.getMessage()); // map.put(msg,运行时异常....); // }else { // map.put(ex,e.getMessage()); // map.put(msg,其它异常....); // } // return map; // } }
http://www.hkea.cn/news/14370578/

相关文章:

  • 有哪些网站可以做pptjquery 单页网站
  • 网站建设免费国外怎样套用wordpress模板
  • 江苏网站建设包括哪些四川省工程造价总站官网
  • 公司网站设计平台网站建设工厂
  • 网站建设兆金手指科杰网站开发市场分析
  • 烟台网站建设力荐企汇互联见效付款门户网站建设的好处
  • 外贸网站零基础建站电子商务物流网站建设规划方案
  • 门户网站制作需要多少钱wordpress内容页标题
  • 网站建设认知与理解怎么做网站的排名优化
  • 工信部网站备案平台win2012 wordpress
  • wordpress改固定链接青岛网站关键字优化
  • 定制开发网站的公司石景山网站制作建设公司
  • 黑龙江省农业网站建设情况利用qq 群做网站推广
  • 天津网站建设培训班在海南注册公司需要什么条件
  • 杭州网站建设推广规模以上工业企业名单
  • 在线做交互网站网站免费建站的方法
  • php网站开发最新需求网站营销推广公司
  • 北京网页设计公司兴田德润简介单页面网站如何优化引流
  • 什么的网站策划有哪些做平面设计好素材网站有哪些
  • 上海网站建设方案托管南昌p2p网站建设
  • 2017三五互联做网站怎么样建站城
  • 新蔡县住房和城乡建设局网站wordpress手机评论框
  • 网站可信认证对企业有哪些优势电子商务网站建设复习题
  • 如何自己学做网站为什么自己做的网站老是404错误
  • 示范校建设验收网站个人可以做社区网站有哪些
  • 都匀经济开发区建设局网站大连招标网
  • 高大上公司网站快站心动小程序官网
  • 网站开发系统计划书海南论坛网站建设
  • 湖南做网站 x磐石网络自己可以自己做公司的网站吗
  • 网站整套模板中国临海门户网站工程建设