在生成验证码的servlet里面获取后 将文字保存到request 然后进行转发 不也一样可以实现。转发不会更改浏览器地址,这样用户也感觉不到差别啊?求解
你根本没搞清楚验证码是干嘛的。
验证码的作用是防止机器人程序模拟用户访问网页(比如刷帖、批量购买、爬取大量数据)。验证码对于人来说,识别是简单的,对机器是复杂的。所以机器人编写的难度大大增加。
如果验证码的正确答案放在request里,也就是发给客户端。那么机器人等于得到正确答案了,他还有什么困难去识别正确的验证码呢。
一个不能阻止机器人的验证码,还不如干脆没有验证码。
你以为验证码是装饰网站的摆设?
request域的内容也能到客户端吗!之所以用session域是因为验证码本身就需要请求一次servlet 然后登录页面的登录也有一个servlet,这是两次请求,request的作用域没法在两次请求内共享,
但是session可以的,它作用在一次会话,浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止,这就是会话。所以两个请求的request域不行,也做不到共享数据!
然后在议
在生成验证码的servlet里面获取后 将文字保存到request 然后进行转发 不也一样可以实现。转发不会更改浏览器地址,这样用户也感觉不到差别啊?
不知道发帖人实现了吗?首先你也说了验证码的servlet里面获取后 将文字保存到request 然后进行转发,但是我想问你获取验证码也是一次请求啊,这次请求转发到别的地方,可是谁又来调取呢
登录本身也是请求啊!
我本来和楼主想的一样,转发一下,然后我试了试,就比如
<form action="/VerfiyCodeServlet" method="post">
用户名:<input type="text" name="Uname"><br/>
<img src="/JavaWebBiliBili/VerfiyCodeServlet"><br/>
</form>
然后当你去访问这个jsp的时候,有一个挺长的时间去反应,并且没有结果,如图
然后把转发的代码注释掉,结果如图
这个对比是明显的,所以不应该转发,不转发的话,那么用request就不好了,用session就不错了