DBCP
DataBaseConnectionPool: 数据库连接池
作用: 可以将数据库连接重用,避免频繁开关连接导致的资源浪费
如何使用数据库连接池? 从苍老师文档服务器中找到连接池的依赖
注册功能:
创建user表
use empdb; create table user(id int primary key auto_increment,username varchar(20),password varchar(20),nick varchar(20));
登录的SQL语句:
select count(*) from user where username=‘tom’ and password=‘123456’;
SQL注入
select count(*) from user where username=‘abcd’ and password=’’ or ‘1’=‘1’
什么是SQL注入?
用户往传值的地方传递进来了SQL语句导致原有SQL语句的逻辑发生改变,从而达到一些非法目的.这个过程叫做SQL注入.
PreparedStatement
带有预编译效果的执行SQL语句的对象
通过此对象可以解决SQL注入的问题:将编译SQL语句的时间点从执行时提前到了创建时, 在创建PreparedStatement对象时将SQL语句进行编译,此时用户输入的内容还没有放到SQL语句里面, 这时编译的好处是将SQL语句业务逻辑锁死, 之后再将用户输入的内容添加进去,这样原有SQL语句的逻辑就不会被用户输入的内容改动,从而避免了SQL注入的问题.
404状态码
意思是客户端找不到服务器的资源,服务器资源包括静态资源和动态资源
静态资源404:
检查请求的路径拼写是否正确
检查静态资源文件是否在static下的正确位置
如果路径和文件位置都没有问题,重新编译工程: Build->ReBuild 然后重启工程再测试
动态资源404:
检查请求的路径拼写是否正确
检查Controller类是否创建在了cn.tedu.工程名这个包下面
检查@RequestMapping注解里面的路径是否正确,这里的路径必须以/开头
如果路径和文件位置都没有问题,重新编译工程: Build->ReBuild 然后重启工程再测试
客户端发出请求的几种方式
1.在浏览器地址栏中输入请求地址 回车发出请求
2.在html页面中通过超链接发出请求
3.在html页面中通过form表单发出请求
4.通过前端框架发出异步请求
通过@ResponseBody注解简化响应代码
端口被占用
1.检查是不是有其它正在运行的工程, 将其关闭后再运行新工程
2.如果没有正在运行的工程,可通过以下几种方式:
a.重启电脑
b.修改工程的端口号
c.在命令行中 执行以下指令找到占用8080端口的进程,然后执行杀掉该进程的指令, 释放出8080端口
如何获取客户端传递过来的请求参数
三种接收参数的方式:
1.通过HTTPServletRequest对象挨个获取参数
2.直接在方法的参数列表中声明的方式 接收参数
3.通过自定对象直接将多个参数封装
BMI身体指数测试练习
1.在static静态资源文件夹中 创建一个bmi.html页面
2.创建BmiController,添加bmi方法处理/bmi请求, 接收传递过来的很高和体重, 计算出bmi的值, 通过bmi的取值范围给客户端返回不同的提示信息