配色: 字号:
《Java Web 应用程序设计立体化教程》第8章综合实例+充电站管理系统
2023-05-23 | 阅:  转:  |  分享 
  
8综合实例 充电站管理系统8.1 背景知识 -- Spring简介2004年,Spring Framework 1.0正式发布Spring是
一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架Spring是Java企业版(Java Enterprise Editi
on,JEE,也称J2EE)的轻量级代替品,Spring为企业级Java开发提供了一种相对简单的方法,用简单的Java对象(Pla
in Old Java Object,POJO)实现了EJB的功能8.1 背景知识 -- Spring产生的初衷(1)JAVA E
E开发应该更加简单;(2)使用接口而不是使用类,是更好的编程习惯;(3)为JavaBean提供了一个更好的应用配置框架;(4)更多
地强调面向对象的设计;(5)尽量减少不必要的异常捕捉;(6)使应用程序更加容易测试。8.1 背景知识 -- Spring能力(1)
最完善的轻量级核心框架;(2)通用的事务管理抽象层;(3)JDBC抽象层;(4)灵活的MVC Web应用框架。8.1 背景知识 -
- SpringBoot从本质上说,Spring Boot就是SpringSpring Boot把你从复杂的配置工作中解放出来,从
而可以聚焦于项目开发本身。有了Spring Boot,可以很容易创建一个Spring框架的项目,而几乎不用进行Spring配置8.
1 背景知识 -- IntelliJ IDEA介绍 IntelliJ IDEA,是Java编程语言开发的集成环境 IntelliJ
IDEA在业界被公认为最好的Java开发工具 智能代码助手、代码自动提示、重构、J2EE支持 …8.2 创建一个Spring B
oot项目(1) 8.2 创建一个Spring Boot项目(2) 8.2 创建一个Spring Boot项目(3) Group:
组织名,对应Java包的结构Artifact:项目唯一标识,对应项目名称,要求全小写字母。由于我们实践的项目是充电站管理系统,所以
我们使用名称cdzType:项目类型,此处不需要修改,保持Maven Project即可Packaging:打包类型,默认打包成J
ar文件即可Java Version:JDK版本Language:开发语言,默认选中JAVA即可Version:初始项目版本Des
cription:项目描述,里面用一句话简短的介绍下项目Name:项目名称,我们使用名称CdzSystemPackage:包名,默
认由Group+ Artifact组合而成8.2 创建一个Spring Boot项目(4) 8.3 项目结构8.3 项目结构 --
启动类在项目中,src为项目代码目录,Spring Initializr为我们在cdz包里默认创建了一个CdzSystemApp
lication文件,这是Spring的启动执行类: @SpringBootApplicationpublic class Cdz
SystemApplication { public static void main(String[] args) {
SpringApplication.run(CdzSystemApplication.class, args);
}}8.3 项目结构 -- Spring注解 注解是JDK5.0引入的一种代码注释说明机制,注解一般有以下三类作用:格式检查:告
诉编译器信息,比如被@Override标记的方法如果不是父类的某个方法,IDE会报错;减少配置:运行时动态处理,得到注解信息,实现
代替配置文件的功能;比如@SpringBootApplication,代表被注解的类是一个Spring启动类。减少重复工作:比如@
Autowired,它可以帮我们对被注解的元素自动完成装配,我们会在后面使用时详细说明。8.4 项目设计 -- 代码层级设计res
ources目录暂时只存放配置文件application.propertieswebapp存放用jsp和js编写的前端页面代码ja
va目录存放我们用java语言写的代码,我们大多数后台逻辑代码都存放在此处。8.5 登录功能开发(1)开发一个登录功能,我们需要开
发以下三部分:数据库新增一个用户表user,用来存储用户的用户名,密码webapp目录中开发登录对应的jsp页面java目录下开发
用户表数据库设计对应的登录逻辑后台代码,用来响应用户的登录行为。8.5 登录功能开发(2) -- 用户表数据库设计user表中新增
三个字段即可满足我们需求:id作为自增主键user_name作为用户名,因为用户名一般为字符串,所以我们字段的类型设置为VARCH
AR,长度设置为32即可password作为用户密码,用户密码一般也是字符串,所以类型同样设置为VARCHAR。8.5登录功能开发
(3) --新增login.jsp创建目录page,然后在page目录下新建一个login.jsp文件。打开application
.properties配置文件,在其中添加以下几行:spring.mvc.view.prefix= /page/spring.mv
c.view.suffix= .jspspring.http.encoding.force=truespring.http.enc
oding.charset=UTF-8spring.http.encoding.enabled=trueserver.tomcat
.uri-encoding=UTF-88.5登录功能开发(4) -- Spring Controller在Spring框架中,Di
spatcherServlet负责分发请求到控制器Controller 处理。Controller负责接收用户请求,Control
ler收到用户请求后,经过一定处理后,将处理结果返回给对应View进行显示。Spring定义一个Controller非常简单,在这
个类上添加一个注解@Controller即可。8.5登录功能开发(5) --响应登录请求的Controller我们在MainCon
troller上面添加了@Controller说明这个类是一个Spring的Controller。现在MainController
就可以响应用户的请求。方法loginPage添加了一个注解@ RequestMapping。 这个被注解的方法将响应用户的logi
n请求。在方法中,我们直接返回了一个字符串login,这里的意思是说,将login.jsp页面返回给用户。 8.5登录功能开发(6
) --页面发起登录行为我们可以将loginName和loginPassword两个input的中数据传递给后台的/api/log
in 接口。一旦后台处理成功,我们可以在success函数中,根据后台返回的结果,进行相应的处理。8.5登录功能开发(7) --创
建User类User表的字段和表结构一一对应,并添加对应的getter和setter方法。8.5登录功能开发(8) -- Jdbc
TemplateJdbcTemplate是Spring提供的,为了提供访问数据库能力的类 。JdbcTemplate为我们提供了以
下方法:update方法,新增、修改、删除数据库数据queryForObject方法,读取匹配的单条数据query方法,读取匹配到
的数据库的一组数据8.5登录功能开发(9) --创建UserService UserService添加了@Service注解,这个
注解的意思是,UserService是一个业务层组件,用于提供具体的业务功能,比如我们这里新增的login函数。 8.5登录功能开
发(10) --后台处理登录行为两个参数:name和password,而且这两个参数上都添加了注解@RequestParam。这个
注解的含义是说明这两个参数是由前端接口传递来的。也就是跟我们在页面传递的name和password两个参数是一一对应的。8.6 注
册页面开发(1)8.6注册页面开发(2) -- 注册接口开发8.7 上传下载文件(1)8.7上传下载文件(2) – 下载接口get
ParameterMap函数可以获取传递来的参数,我们从中取出name参数,作为文件名,然后直接打开files目录下对应的文件并返
回即可。8.7上传下载文件(3) – 上传接口函数的参数类型为MultipartFile,是因为我们在页面上传时,指定了提交类型为
"multipart/form-data" 。8.8 发送邮件(1)Sun 公司提供了 JavaMail 用来实现邮件发送,但是配
置烦琐。Spring 中提供了 JavaMailsender 用来简化邮件配置Spring Boot 则提供了 MailSende
rAutoConfiguration 对邮件的发送做了进一步简化。8.8发送邮件(2) – 参数配置8.8发送邮件(3) – 后台
接口8.8发送邮件(4) – 发送页面8.9 绘制图表(1)ECharts是百度开源的纯 Javascript 图表库支持折线图(
区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏
斗图、事件河流图等12类图表同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和
混搭展现。8.9 绘制图表(2)8.10导出Excel(1)Java解析、生成Excel比较有名的框架有Apache poi、jx
l他们都存在一个严重的问题就是非常的耗内存poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺
陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大EasyExcel是一个基于Java的简单、省内存
的读写Excel的开源项目。8.10导出Excel(2)使用EasyExcel生成Excel十分简单,我们下面只使用一行代码就可以
实现该功能: EasyExcel.write("users.xlsx", User.class).sheet("用户列表").do
Write(userService.getUsers());小结通过本章的学习,我们依次介绍了:如何将用户在浏览器的请求映射到JS
P页面中如何将页面中的ajax请求传递到后台java代码中如何通过JDBC对数据库进行增删改查文件的上传下载发送邮件绘制图表导出E
xcel。后续的开发习题(1)为用户增加上次登录时间、登录次数属性,在每次用户登录后记录。为用户增加姓名属性,要求注册时填入。为用
户增加邮箱属性,要求注册时填入。在注册时,检查邮箱未被使用,如已经被使用,报错提醒用户。在登录页面增加找回密码功能。点击找回密码,
跳转到新页面,用户输入自己的邮箱后,系统将用户密码发送到用户的邮箱。参考8.7文件列表代码,自己实现一个用户列表的页面,展示每个用户的用户名,姓名,邮箱,上次登录时间,登录次数。增加查询输入框,可以根据姓名筛选用户列表。习题(2)5.为文件列表增加删除文件的功能:在文件列表表格增加删除按钮,点击按钮,系统将对应文件删除。6.使用echarts,绘制用户登录次数柱形图,X轴为用户名,Y轴为每个用户的登录次数。7.自学EasyExcel的文件读取功能。为用户列表增加导入功能,用户可上传一个包含用户名、密码、邮箱的Excel,系统自动将excel中的用户列表导入系统。
献花(0)
+1
(本文系昵称1689447...首藏)