浏览器: 用户从jsp页面发送请求 进入三层架构
WEB层:用servlet拦截jsp发送的请求, servlet获取请求参数并封装成实体类对象, 创建service层对象,
Service层:
将实体类对象传入service层进行业务逻辑判断。 service层调用dao层提供的真实数据判断。
DAO层:
dao层【开始执行JDBC五个铁定步骤或者使用MyBatis】从数据库获取真实数据。 然后将结果集封装并响应给service。
重点关注session
项目中使用到了哪些技术:
**1、**MD5加密:两处
① 注册在CustomerServiceImpl中用getPwd()取到密码,使用MD5.getMD5Str()进行加密结果返回给setPwd()。
②登录用户输入的密码用MD5方法加密后与数据库中密文对比的业务逻辑判断。
2、MyBatis框架:
修改dao层,将原先dao层的实现类全部替换成***Mapper.xml存放在resources的文件目录下。
-
原先的JDBC:可配置性低,可维护性差(SQL命令以Java代码形式定义),
-
使用MyBatis:SQL命令封装在XML映射文件中,减少了很多冗余代码。
自动解析结果集并封装Java对象。
提供Spring框架集成支持。
3、WEB层三大组件:
**1、 servlet :**生命周期 init 、service、doget,dopost、destroy
作用域:session 数据存储在服务器的内存中【提高安全性,高速存取】,
2、 filter :
字节编码的过滤,确定用户的登录状态,防止SQL注入【其中的SQLFilter如果用户传来’ 字符会用JS脚本window.history.back()在原地】
3、listener:
监听着书籍的销量,销量前三的书籍会被展示在首页。
4、支付宝对接:
可以用手机中的支付宝(沙箱版)扫码付款,与项目中的支付环节进行互动。
5、JSTL标签库&EL表达式:
在JSP页面中例如遍历一个类型的图书使用c:forEach标签遍历所有书籍使得代码灵活。
<c:forEach>
6、阿里Druid连接池:
使用连接池技术的好处:
1、资源重用:
避免了频繁创建、释放连接引起的大量性能开销,在减少系统消耗的基础上,增进了系统运行环境的平稳性。
2、更快的系统相应速度
3、新的资源分配手段:可以通过配置文件修改参数。最大连接数量等。
4、避免了数据库连接泄露。
7、dom4j解析:
待续···