JSP
JSP的主要作用是代替Servlet程序回传HTML页面的数据,是Java的服务端页面,动态页面技术
前端
layui
一套开源的前端框架,适合于网页的快速开发
layer弹出层
upload文件上传
form表单
table表格
carousel轮播图
laypage分页
mysql
一种关系型数据库,MySQL访问速度比较快,开源、成本低
SSM框架:
SSM框架是spring mvc加spring加mybatis框架的整合。
spring MVC负责请求转发与视图管理,spring负责业务对象管理,mybatis作为数据对象的持久化引擎。
springMVC
spring mvc框架是处理所有HTTP请求和响应的
M模型封装了应用程序的数据,
view视图负责呈现的Model数据和一般它生成的HTML的输出。
C是controller控制器,负责处理用户的请求,解析这些请求,并且为这些请求建立适当的模型。然后把模型数据返回给前端,就是响应给前端,也就是传递给视图进行渲染。
四个层次
dao层(mapper)是主要是做数据持久层的工作,就是与数据库进行交互的一些任务都封装在dao层,就是比如说对数据库表的增删改查都在dao。
Service层也就是服务层主要是负责业务模块的逻辑设计。什么是业务模块呢?简单来说就是功能模块,比如说用户的注册登录。管理员对影视信息的新增,修改,删除这些都都叫做业务模块。
contorller控制器是负责具体的业务模块的流程控制,流程控制主要是简单来说就是先做什么再做什么,最后做什么,就是对这个流程进行控制。
controller 是dao层和view层的中间键
view层主要负责前台jsp页面的渲染。 从数据库获取的结果交给controller,由controller传给前端进行展示。
spring
是一个容器的框架,各个组件之间的关系都由spring来控制
mybatis
mybatis是对jdbc的封装,数据库底层的操作都是由mybatis支持的
SSM框架优点:
成本低,扩展性强,典型的三层结构MVC,节省开发时间。
Tomcat的作用
tomcat是一个免费开源的轻量级web 应用服务器,用来开发和调试jsp程序。
maven
maven是一个包配置管理工具,可以集中管理项目所有的依赖包
Util
工具配置
AlipayConfig
支付宝支付配置
FileUtil
关于文件的工具类
MD5Utils
MD5加密工具类 对用户密码进行加密处理
session
使用session,当用户输入用户名和密码,在数据库中进行查询对比,校验通过则成功登录,然后就将用户的信息保存在session中,之后需要有登录用户权限才能进行的操作(比如本项目中的查看影视信息,订票收藏等操作)时,可以通过判断session是否为空来确定是否有用户登录,session为空则不允许操作。需要用户信息时不需要再从数据库中查询,可以直接从session中取。比如平台头部${empty sessionScope. user} 通过sessionScope获取session存放的值。
session相当于一个容器,可以存放用户信息,session会和用户会话一起存在,关闭会话时session才会消失。
jquery
jquery-seat-charts插件的使用(选座位插件)
导入jQuery,需要一个容器放置座位图
map为座位结构;naming为设置行列信息
导入jQuery,需要一个容器放置座位图
map为座位结构;naming为设置行列信息
数据库设计
数据库连接
Navicat新建数据库
在IDEA上连接数据库,database,测试连接,成功则数据库与IDEA建立建立。
数据库的链接配置在resouse下的applicationContext.xml中。配置数据库的用户名密码。
系统中的数据是如何与数据库进行交互的
采用mybatis框架,将SQL语句从代码中分离出来,写在xml文件中,降低了耦合度,便于管理,使用简单。
数据库基础知识
数据库表的作用
三范式
主键,外键
SQL基础语句
数据库表之间的关系
一对一;一对多;多对多
数据库连接方式
inner join内连接; outer join外连接; cross join交叉连接; natural join自然连接
核心业务功能
模块代码实现逻辑,功能如何实现
前后端交互 ajax
XMLHttpRrquest对象来向服务器发送异步请求,从服务器获取数据,然后用JavaScript来操作DOM来更新页面。
实现方式是利用页面部分刷新数据来给用户更好的体验。
使用ajax进行前后端交互,前端向后端发送请求,到controller层,controller调用service进行处理,最后返回数据给前端
在浏览器中向服务器发送异步请求,最大的优势就是无刷新获取数据。
Log4J
控制日志信息输出到控制台,方便项目的调试。
分页
首先创建一个分页类,分页类包括当前页号属性、每页记录数属性、总记录数属性和xx如商品集合属性,前台把当前页号传到后台sq|语句作为limit关键字的两个条件进行查询,最后把查询的总数和封装在集合容器中的查询结果返回给前台显示出来
后端使用分页插件PageHelper,在pom.xml中添加依赖,controller,mapper数据库操作
前端使用layui中的laypage组件,当前页面和一个数据量传给DAO层
如何实现模糊查询
在视图层jsp界面中进行查询,点击查询按钮,执行查询的方法,使用ajax调用后台接口,将查询字段传给controller层,controller层调用service层中的接口,在该接口的实现类中调用mapper,与数据库进行交互,在mapper.xml文件中是对mapper接口具体实现的sql语句,就是在这里使用select * from 数据库表 where 字段 like '%${value}%'语句进行模糊查询,使用%进行匹配,表示以任意多个字符开头或结尾。
SQL查询语句 www.cnblogs.com/ukimiya/p/1…
批量删除
获取到选中信息的id,放到数组中,通过ajax调用接口,在goods的controller层调用service层的删除接口,在这个接口的实现方法中对id的数据进行遍历,把id单独取出来,在service层分别调用mapper层的接口,在数据库中分别删掉这条数据。
取消收藏
cancelFavorite
取消收藏将guess中favorite设置为-1
订单类型 order_state 1 2 3 4 5
Java的三大特性:封装、继承、多态
开发过程中遇到了哪些问题
mysql安装mysqld.exe -install时报错,-----以管理员身份运行cmd再进行安装,然后在服务管理中启动MySQL之后可以使用。
Navicat上新建数据库本地连接的时候出错,重新修改用户密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
不足之处
代码健壮性不够强,逻辑性不强,只是基本完成各个功能模块,具体的功能完成不够完善,特别是关于推荐功能,没有核心过滤算法作为支撑,推荐效果不好。
创新点
难点
-
密码进行加密 MD5Utils 加密工具类
-
Navicat报错
-
在线选座 使用jquery-seat-charts插件
-
上传图片 使用layui的upload组件,上传图片,使用UUID工具生成通用唯一识别码作为评论图片的名称