Java基础_相关question

Q 1:Mybatis没有实现类,为什么可以直接使用

A:那是因为mybatis使用了JDK动态代理机制生成了代理类。
Dao接口的工作原理是JDK动态代理,mybatis运行时会使用JDK动态代理为dao接口生成代理对象(proxy),代理对象会拦截接口方法,转而执行mapperstatement所代表的sql,然后将sql执行结果返回。代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户端不能直接引用另外一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。

Q 2:验证码的原理与用到的技术

A:验证码是为了防止恶意破解密码的刷票,注册,论坛灌水等恶意行为而设计对计算机无法识别的数字或者字符,是由计算机程序生成和对比是否一致,但是计算机程序无法识别。
图文验证码的原理,在servlet中随机生成一个制定位置的验证码,一般为4位,然后把该验证码保存到session中,通过java的绘图类以图片的形式输出该验证码。为了增加验证码的安全级别,可以输出的同时输出干扰线,最后用户输入到前段,在服务器将获取到的用户输入和session保存的验证码进行比较。
用到的技术:
1.随机生成数;
2.如果验证码中包含汉字生成技术
3.用ajax技术实现局部刷新;
4.使用图片的缩放和旋转技术;
5.随机绘制干扰线;
6.如果考虑到验证码的安全性,可以使用MDS加密

Q 3:如何解决登陆验证码缓存的问题

A:为了每次更换一张,实现局部刷新,除了使用ajax之外,还要用”src ?a= “或其他”src?b=”来执行servlet这个地址,但是不完全相等就可以清除缓存。

猜你喜欢

转载自blog.csdn.net/weixin_40197494/article/details/80711530