1.只要是一个实体类型(javabean)都会自动封装到model
public String getDiscussPost(@PathVariable("discussPostId") int discussPostId, Model model, Page page)
2.把验证码放在session中,因为在另一个请求中需要用到,并且若在浏览器中存放有安全问题。
3.为了实现用户可以在多个请求间,服务器可以记住浏览器的用户信息,创建LoginTicket表,用户登录后,服务器生成一个ticket凭据,同时保存用户的user_id,通过user_id可以进一步查询到用户的详细信息。服务器把ticket凭据用cookie返回给浏览器,浏览器下次请求时就会带上ticket。
4.ThreadLocal可以把用户信息保存在线程中,用户发来的每一次请求启动的线程会保存用户的信息,当请求结束,保存的用户信息会被清除掉,方便我们在开发中获取用户登录信息,从而不需要每次取登录信息都需要从HttpServletRequest中取。
service中的login方法生成ticket,controller判断是否有ticket并通过生成cookie;
每次请求,拦截器prehandle从cookie获取ticket,并通过hosthodler(threadlocal代替session)持有,postholdle存入model.
6.
6.事务的传播机制
解决两个事务交叉在一起的时候以谁的事务为准的问题
–REQUIRED :支持当前事务(外部事务),比如A事务调用B事务,B事务以A事务的事务为标准,如果A不存在事务则创建一个新的事务;
–REQUIRED_NEW :创建一个新事务,按照B事务的标准执行,不管A是否有事务,如果有事务暂定当前事务(外部事务)即A事务;
–NESTED:如果当前存在事务(外部事务),则嵌套在该事务中执行,即如果A有事务,B事务有独立的提交和回滚,如果A没有事务则创建一个新的事务,和REQUIRED一样。
7.处理js
采用jquery发送异步请求
$.post(有三个参数 1、访问路径 2、 提交数据 3、 回调函数 服务器做出响应 把返回的数据传给data
把字符串转为js对象 浏览器转化为js对象处理
点击发布的时候调用方法 publish()
通过id获取标题和内容
data 保存回调函数处理服务器响应完毕后返