Service、Dao命名规范
- 获取单个对象的方法用get做前缀
- 获取多个对象的方法用list做前缀
- 获取统计值的方法用count做前缀
- 插入的方法用save (推荐) 或insert做前缀
- 删除的方法用remove (推荐) 或delete做前缀
-
form文件上传 -前端
form如果要支持文件上传,必须设置2个属性
Java后台中经常使用commons-fileupload来接受客户端上传的文件
- 解析request为List


- 把tomcat的缓存资源功能关掉即可,在%TOMCAT_HOME%/conf/context.xml中增加Resources标签

登录流程

- JS的MD5库:https://blueimp.github.io/JavaScript-MD5/
MD5在线生成:https://www.cmd5.com/
验证码
CAPTCHA
- 传统的验证码、由扭曲倾斜的文字、干扰线组成
- 由服务器生成验证码图片,返回给客户端展示
- 在Java中,可以使用Kaptcha库生成验证码
Filter
- Filter:译为“过滤器”
- 用来拦截、过滤客户端的请求和响应

-
Filter -生命周期方法
init
- 将Filter添加到Web容器中时调用
- 一般用来加载资源
destroy
dispatcherTypes属性的常用值
Listener:译为“监听器”
- 比较常用的是ServletContextListener, 用来监听ServletContext的创建和销毁
- contextInitialized: ServletContext创建的时候调用
- contextDestroyed:ServletContext销毁的时候调用
- 比较常用的是ServletContextListener, 用来监听ServletContext的创建和销毁
-
ServletContext
一个ServletContext对象就代表一个Web应用,可以用来与Web容器(Tomcat)通信
- 获取ServletContext
- request.getServletContext( )
- servlet.getServletContext( )
常用方法
4个域对象:pageContext、request、session、application
Asynchronous JavaScript And XML
- 它能够以异步的方式向服务器提交请求
- 它能够在不更新整个页面的前提下维护数据
- 它的出现促进了前后端的分离,大大提高了前端工程师的地位
- 虽然AJAX的名称中包含了XML, 但是也可以使用JSON数据格式,也支持文件上传、文件下载等
AJAX的常见使用方式
- JavaScript(原生API)(参考资料https://zh.javascript.info/xmlhttprequest)
- jQuery(参考资料https://jquery.cuishifeng.cn/jQuery.Ajax.html)
原生 - GET
原生 - POST

jQuery - ajax


jQuery - getJSON

会话跟踪
HTTP是一种“无状态”(stateless)的协议
- 每次客户端访问网页时,客户端都会打开与Web服务器的单独连接
- 并且服务器不会自动保留之前客户端请求的任何记录
- 所以服务器无法识别多个请求是否来自同一个客户端(比如浏览器)
- 在很多的应用场景中,都有以下需求
- 服务器能够识别出多个请求是否来自同一个客户端
- 在来自同一个客户端的多个请求之前共享数据
以上需求可以使用会话跟踪技术来完成,在Java中,实现会话跟踪的常用方案是
Cookie是直接存储在浏览器本地的一小串数据
如果没有设置Cookie的过期时间,则当浏览器关闭时,Cookie就失效了
- expires
- 必须完全采用GMT时区的格式,可以使用date.toUTCString来获取口例如:expires=Tue,19Jan 2038 03:14:07 GMT
max-age
domain和path标识定义了Cookie的作用域,即Cookie应该发送给哪些URL
- domain
- 标识指定了哪些主机可以接受Cookie
- 如果不指定,默认为当前文档的主机(不包含子域名);如果指定了domain,则一般包含子域名
- 例如:如果设置domain=529it.com, 则Cookie也包含在子域名中(如bbs.520it.com)
path
- 标识指定了主机下的哪些路径可以接受Cookie,子路径也会被匹配
- 例如:设置path=/docs,则以下地址都会匹配
- /docs
- /docs/one/
- /docs/one/img
Cookie的参考资料
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies
https://zh.javascript.info/cookie服务器设置Cookie
Cookie通常是由Web服务器使用响应头Set-Cookie设置的
关于max-age
检查客户端是否有发送一个叫做JSESSIONID的Cookie
- 如果没有
- 创建一个新的Session对象,并且这个Session对象会有一个id
- 这个Session对象会保留在服务器的内存中
- 在响应的时候,会添加一个Cookie(JESSIONID=Session对象的id)给客户端
- 如果有
- 返回id为JSESSIONID的Session对象
- 如果没有
JSESSIONID
- 默认情况下,当用户关闭浏览器,Cookie中存储的JSESSIONID就会被销毁
- 可以通过以下代码延长JSESSIONID在客户端的寿命
Session的有效期
- Session的有效期默认是30分钟
- 可以在web.xml中配置失效时间(单位是分钟)
总结
- Cookie
- 数据存储在浏览器客户端
- 数据有大小和数量的限制
- 适合存储一些小型、不敏感的数据口默认情况下,关闭浏览器后就会销毁
- Session
- 数据存储在服务器端
- 数据没有大小和数量的限制
- 可以存储大型、敏感的数据(比如用户信息)
- 默认情况下,未使用30分钟后就会销毁

