SSM框架02

SSM项目书写顺序

前提:
在main文件夹下创建一个java的蓝色文件夹和一个resourse的资源文件夹

1、pojo层

book.java里面填写实体

2、Dao层(Mapper层)

写一个BookMapper.java的接口
resource里面写一个BookMapper.xml,里面写入SQL语句

3、Service层

先写一个BookService.java的接口文件
再写一个BookServiceiml.java的接口实现文件

4、添加Controller层

写一个BookController.java文件

jsp: add.jsp
controller:跳转添加页面
页面通用跳转方法

我们在mapper层的配置文件中填写添加的sql语句,添加的具体字段需要获取前端的参数,我们使用的格式为#{} 在传统的jdbc的获取方式中也可以使用 获取,但是不推荐。因为 {}获取,但是不推荐。 因为 获取,但是不推荐。因为{}的取值方式有可能引起sql的注入。
Jdbc的获取数据的方式:
1.加载驱动
2.创建链接对象
3.使用链接对象获取statment对象 利用statement对象向数据库发送sql
4.定义sql
5.调用statement的查询方法,参数传递定义的sql
6.得到查询结果,处理结果
我们可以通过字符串的拼接改变原有的sql语义。
例如:
登录的sql
Select * from user where username=参数1 and password =参数2

假如前端页面如下
用户名:
密码:

用户名:admin 密码:111 or 1=1
最终的sql拼接为Select * from user where username=admin and password =111 or 1=1
那么就可以跳过登录验证,直接进入后续的操作
Jdbc是使用了statement对象的子对象prepareStatement来解决sql注入的问题

使用prepareStatement对象的流程是:

  1. 加载驱动
    2.创建链接对象
    3.应该定义sql 模板 select * from user where username=? And password=?
    4.使用链接对象获取prepareStatement对象参数中必须传入sql模板
    5.给?赋值
    6.得到结果 处理结果

了解以上,KaTeX parse error: Expected 'EOF', got '#' at position 4: {}与#̲{}的区别就是{}的取值方式是第一种使用的statement对象
而#{}的取值方式是第二种防止了sql的注入。

后台跳转分为两种方式:
1.转发
2.重定向

转发示意图:

转发会共享request作用域,里面的数据是可以获取的,是服务器的行为,而重定向是浏览器行为,并没有共享request作用域。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值