目录
当浏览量发生改变时,发布时间跟着变
-
大部分的MySQL软件的timestamp类型默认设置的为任何数据改变都会导致此类型的时间跟着发生改变。
-
关闭自动更新:
use cs;
alter table product change created created timestamp not null default current_timestamp;
-
打开自动更新
alter table product change created created timestamp not null default current_timestamp on update current_timestamp;
会话管理
-
客户端和服务器之间进行数据交互遵循的是HTTP协议,此协议属于无状态协议(一次请求对应一次响应)响应完之后则断开连接, 服务器无法跟踪客户端的请求, 通过Cookie技术可以给客户端发送一个标识,这个标识里面可以保存数据,之后客户端发出的每次请求都会带上这个标识,从而服务器就能识别此客户端,但是由于这种方式数据是保存在客户端的存在被篡改的风险,Session的作用就是为了提高数据安全性, 因为Session数据是保存在服务器里面的,客户端是无法进行篡改的.
-
Cookie:类似打孔式会员卡,数据保存在客户端
-
cookie的数据默认保存在浏览器的内存中,当会话结束时cookie会被清除,cookie可以设置保存时长,如果设置了时长数据则保存在磁盘中,当时间到之后从磁盘中清除
-
只能保存字符串类型的数据
-
由于Cookie会随着客户端发出请求,在请求头中保存,只能保存几k的数据
-
应用场景: 记住用户名和密码
-
-
Session:类似银行卡,数据保存在服务器
-
Session数据是保存在服务器的内存中, 由于服务器内存资源紧张 Session保存时长只有半个小时左右
-
Session可以保存任意对象类型的数据
-
没有大小限制,但是也不推荐保存大量数据
-
应用场景: 对安全性要求较高的数据, 比如记住登录状态
-
通过Cookie实现记住用户名和密码功能
-
在登录成功时创建Cookie对象并将用户名和密码保存到Cookie里面,然后下发给客户端
-
在登录页面中,取出cookie里面的用户名和密码显示到页面中
通过Session记住登录状态
过滤器Filter
-
作用: 过滤器中的代码可以在客户端请求到服务器资源之前或之后执行, 可以将请求某些资源重复性的代码写作过滤器中,达到重用的作用, 这样只需要写一次即可, 从而提高开发效率
-
如何使用过滤器?
-
创建Filter类文件
-
在XXXApplication.java中添加组件扫描注解
-
-
urlPatterns的几种配置方式
-
精确匹配: /admin.html /insertProduct.html /delete
-
后缀匹配: *.jpg *.html
-
路径匹配: /product/* /user/*
-
全部匹配: /* (匹配网站中所有资源)
-
监听器Listener
-
作用: Web应用程序从启动到停止会有很多时间点, 如果需要在某些特定的时间点做某些操作的话可以通过监听器监听这些时间点
-
监听器可以监听工程启动/停止, 会话对象创建/销毁, 会话对象中属性的添加/删除/替换
读取配置文件中的数据
-
在application.properties配置文件中写自定义的配置信息
-
通过${xxx} 访问配置文件中的数据
常见错误列表
404状态码
-
404代表找不到资源
-
静态资源: /index.html /a.jpg /web/reg.html
-
检查请求的地址拼写是否正确
-
检查文件的位置是否正确
-
如果以上都没问题,Build->ReBuild后再重启工程
-
-
动态资源: /hello /reg /showAllUser
-
检查请求的地址拼写是否正确
-
检查RequestMapping注解中的路径是否正确
-
检查controller包是否在工程自带的包里面
-
如果以上都没问题,Build->ReBuild后再重启工程
-
-
400状态码
-
代表客户端发请求时传递参数类型和服务器接收参数的类型不匹配导致
500状态码
-
代表客户端发出的请求已经被服务器处理到,执行服务器业务代码时出错,此时需要看idea控制台的错误提示,再根据错误提示找具体错误的原因
端口被占用
-
找到之前运行的工程关闭
-
重启电脑
-
修改工程的端口号
-
杀进程