项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给在家介绍一篇基于移动应用的城市公共气象服务平台的设计与实现。

功能需求

当前主流移动气象信息服务系统的服务器端主要采用GCD技术来构建,在这种结构中客户端对于数据的查询请求都是通过执行Objective-C代码来实现的。Objective-C虽然简单容易开发,但是存在两方面的缺陷,其一是在处理大量并发请求时资源开销大,执行速度慢。其二是允许用户直接访问数据库,安全性差。为了充分发挥服务器端性能,提高系统安全性。系统改进了服务器端架构,通过引入MVC技术优化执行效率 ,增加监控系统提高了管理效率。系统主要由五部分组成。

APP客户端,负责与用户的交互,发送用户请求到服务器端。天气APP应用主要是通过手机客户端为用户提供详细的未来目的城市天气信息以及与天气信息内容相关的提示。天气APP应用包括选择城市、添加多个城市、删除所选城市、查看所选城市当日天气详情、查看所选城市未来一周天气状况趋势图、查看所选城市生活指数等六个主要功能。

(1)选择城市,初次使用APP时选择一个城市进行查看相应模块。
(2)添加多个城市 ,如果想查看除了当前所选城市以外的其他城市天气信息,可点击主页里的加号进行添加城市操作。
(3)删除所选城市 ,如果不想查看某个城市的天气信息,则可进入主页点击右上角的编辑图标进行删除相关城市,以停止查看所选城市信息。
(4)查看所选城市当日天气详情, 点击屏幕下方“天气”按钮可查看所选城市的实时温度、风向、湿度及当前日期。
(5) 查看所选城市未来一周天气状况趋势图,点击屏幕下方“趋势”按钮可查看所选城市的未来几天的天气趋势图。
(6)查看所选城市生活指数。

服务器端
负责接收用户请求并对请求作出响应。

内容管理子系统
WEB式的用户和产品信息管理平台。

内容发布子系统
将各种气象资料自动加T并推送到后台服务器

监控子系统
负责收集各种状态信息,并通过消息机制把信息发送给管理员。这种设计有如下优点:①服务器端采用MVC设计模式,采用这种架构的服务器端避免了用户直接访问数据库,提高了安全性。②由于把数据计 算与产品处理任务交给了分布式的内容发布子系统,客户端不需要大量的计算处理与存 储需求。降低了客户端的实现难度和硬件要求。③使用MVC设计模式实现了基于规范标准的开放性,实现了跨平台的数据交换,系统还使用了特定的用户校验方式来保障数据安全。④采用分布式的架构便于功能与处理能力的扩展,业务流程在管理员监控下运行,系统稳定性好。

具备以下功能:

通过对系统概况的描述和分析,已经对气象服务平台开发技术要点,气象预报业务关系分析。本节对平台各个菜单功能模块系统设计,进行详细的展示和描述,是系统的基础。
系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:管理员管理、城市天气信息、用户信息、预警信息、退出等功能。用户进入系统可以进行天气预报等。

系统功能模块框架图

部分效果图

登录注册界面:

管理界面

前端效果

数据库设计

系统中用到了5张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表

(2)气象信息表

(3)未来天气信息表

部分代码

package cn.weather.config;import cn.weather.controller.*;
import cn.weather.entity.User;
import cn.weather.entity.Yj;
import cn.weather.entity._MappingKit;
import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;import org.beetl.core.GroupTemplate;
import org.beetl.ext.jfinal3.JFinal3BeetlRenderFactory;import java.util.HashMap;
import java.util.Map;/*** api 引导配置*/
public class DemoConfig extends JFinalConfig {/*** 运行此 main 方法可以启动项目,此main方法可以放置在任意的Class类定义中,不一定要放于此* <p>* 使用本方法启动过第一次以后,会在开发工具的 debug、run config 中自动生成* 一条启动配置,可对该自动生成的配置再添加额外的配置项,例如 VM argument 可配置为:* -XX:PermSize=64M -XX:MaxPermSize=256M*/public static void main(String[] args) {/*** 特别注意:Eclipse 之下建议的启动方式*/
//        JFinal.start("WebRoot", 80, "/", 5);/*** 特别注意:IDEA 之下建议的启动方式,仅比 eclipse 之下少了最后一个参数*/JFinal.start("src/main/webapp", 8088, "/");}/*** 配置常量*/public void configConstant(Constants me) {// 加载少量必要配置,随后可用PropKit.get(...)获取值PropKit.use("config.properties");me.setDevMode(PropKit.getBoolean("devMode", false));JFinal3BeetlRenderFactory rf = new JFinal3BeetlRenderFactory();rf.config();me.setRenderFactory(rf);GroupTemplate gt = rf.groupTemplate;Map<String, Object> shard = new HashMap<String, Object>();// 共享变量shard.put("ctx", JFinal.me().getContextPath());// 添加共享变量上下文路�?gt.setSharedVars(shard);// 设置共享变量me.setMaxPostSize(1200000000);}/*** 配置路由*/public void configRoute(Routes me) {// me.add("/", IndexController.class);me.add("/ww", AddController.class);me.add("/", IndexController.class);me.add("/manager", ManagerController.class);me.add("/addmg", AddManagerController.class);me.add("/weather", WeatherController.class);me.add("/yj", YjController.class);me.add("/user", UserController.class);}public void configEngine(Engine me) {}public static DruidPlugin createDruidPlugin() {return new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());}/*** 配置插件*/public void configPlugin(Plugins me) {// 配置C3p0数据库连接池插件DruidPlugin druidPlugin = createDruidPlugin();me.add(druidPlugin);// 配置ActiveRecord插件ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);// 所有映射在 MappingKit 中自动化搞定arp.setShowSql(true);_MappingKit.mapping(arp);me.add(arp);}/*** 配置全局拦截器*/public void configInterceptor(Interceptors me) {}/*** 配置处理器*/public void configHandler(Handlers me) {}
}
安装部署需求

eclipse、idea运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在IDEA中编辑进行打包;
下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:jsp+servlet+JDBC

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、jsp、CSS、servlet、Android
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;

基于移动应用的城市公共气象服务平台的设计与实现相关推荐

  1. (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133

    springboot厨到家服务系统 摘  要 在社会快速发展的影响下,餐饮迅速发展,大大增加了餐饮服务信息管理的数量.多样性.质量等等的要求,使餐饮的管理和运营比过去十年更加困难.依照这一现实为基础, ...

  2. 干货!住建“一网统管”《城市运行管理服务平台技术标准》

    为指导构建"横向到边.纵向到底"的城市运行管理服务工作体系,规范国家.省级和市级城市运行管理服务平台建设和运行,住建设部发布了<城市运行管理服务平台技术标准(征求意见稿)&g ...

  3. (附源码)mysql+ssm芜湖公共书房服务平台 毕业设计 250859

    SSM芜湖公共书房服务平台 摘 要 一座有底蕴的城市,应该是一个阅读的城市:一个有魅力的城市,应该是一个散发着书香的城市,而全民阅读量逐年增加,是社会进步.文明程度提高的重要标志.各大城市启动&quo ...

  4. 一种基于物联网技术的能源物联网数据服务平台

    摘要:随着物联网技术的快速发展,同时考虑到能源互联网的重要性以及传统电力通信技术的不足,本文提出了一种基于物联网技术的能源物联网数据服务平台,可为分布广泛的互联网用户提供PAAS服务.用户完成安科瑞物 ...

  5. 住房和城乡建设部正式印发《城市运行管理服务平台技术标准》(附下载)

    近日,新<城市运行管理服务平台技术标准>(编号为CJJ/T312-2021)行业标准完成修订,由住房和城乡建设部批准发布,即将于2022年1月1日正式实施.同时,原行业标准<城市综合 ...

  6. 金融科技大数据产品推荐:蜜蜂+蜜罐报告——基于互联网大数据的风控技术服务平台

    1.产品名称 蜜蜂+蜜罐报告 2.所属分类 金融科技·风控反欺诈 3.产品介绍 蜜蜂报告通过用户授权后,对借款人基本信息通过海量的数据交叉验证,对借款人进行身份核实.验真.通过借款人授权后的电商信息, ...

  7. 智慧城管—城市综合管理服务平台解决方案

    智慧城管-城市综合管理服务平台解决方案 资料来源:https://t.zsxq.com/0azzBnjEK

  8. 西门子S7-200组态王基于PLC与组态的公共楼道智能照明系统的设计与研究

    西门子S7-200组态王基于PLC与组态的公共楼道智能照明系统的设计与研究 要 I ABSTRACT I 1 绪 论 1 1.1系统研究的背景及意义 1 1.1.1 背景 1 1.1.2 意义 1 1 ...

  9. 城市运行管理服务平台架构

    一.基本规定 城市运行管理服务平台分为三级,即国家.省级和市级城市运行管理服务平台. 省级平台和市级平台应共用国家平台的业务指导系统. 各级平台应按现行行业标准<城市运行管理服务平台数据标准&g ...

最新文章

  1. pandas使用groupby函数和describe函数计算不同分组的描述性统计(descriptive statistics of each group in dataframe)
  2. Spring boot 注解 ConfigurationProperties 的使用
  3. python实现文件下载-Python+django实现文件下载
  4. tableview 的小 点点,
  5. Python中的traceback模块
  6. 碧蓝航线8.20服务器维护,碧蓝航线半人马来袭 8.20更新公告
  7. Python—开始编程
  8. C++ 虚函数表解析 继承
  9. oracle-关于分组函数的小细节
  10. 【重装Windows的十大理由】
  11. BDTC2016: 中航信 昆仑数据 兮易控股 宝信议题公布
  12. 数理统计:方差分析与正交试验设计
  13. 助力数字化转型,华为“铁三角”落地
  14. matlab下载实录:matlab2022a好用吗
  15. 恒压板框过滤实验数据处理_求购二手板框压滤机现金回收 回收二手板框压滤机回收价格...
  16. 微软放弃收购雅虎 | 历史上的今天
  17. 10016---ConcurrentHashMap原理分析
  18. mysql远程服务器返回错误404_网站服务器经常性出现404错误了怎么办?
  19. s6 edge编译android,三星在为S6和S6 edge开发Android 5.1升级包
  20. docker官方文档翻译3

热门文章

  1. ICEM-自底向上划分网格
  2. 胜者的诅咒与double DQN
  3. 字符串数组转整型数组
  4. TypeScript 高级用法总结
  5. Django2实现word文件的下载功能(docx文件)
  6. 企业微信php成员管理,管理成员
  7. 临时停车自动拨号发短信源码(新增背景版)
  8. eclipse下快捷键总结【永久更新】
  9. 学习笔记(02):ZStack 带你0基础搭建私有云平台|ZCCT实战培训视频|-ZStack产品与解决方案介绍...
  10. 如何让APP不在settings/Notifications/Recently sent中显示(MTK6757 Android9.0)